Spaces:
Sleeping
Sleeping
fixed imports and back to multistaging
Browse files- Dockerfile +29 -28
- api/service_manager.py +1 -2
- api/web_server.py +16 -3
- core/__pycache__/initialization.cpython-39.pyc +0 -0
- core/__pycache__/search_engine.cpython-39.pyc +0 -0
- core/initialization.py +3 -3
- core/requirements.txt +1 -0
- core/search_engine.py +1 -1
- requirements.txt +1 -0
Dockerfile
CHANGED
@@ -1,37 +1,38 @@
|
|
1 |
-
|
2 |
-
#
|
3 |
-
# COPY ./core/requirements.txt ./requirements.txt
|
4 |
-
# RUN pip install -r requirements.txt
|
5 |
-
#
|
6 |
-
# WORKDIR /app
|
7 |
-
#
|
8 |
-
# COPY ./core .
|
9 |
-
# RUN python ./initialization.py
|
10 |
-
#
|
11 |
-
# FROM python:3.9
|
12 |
-
#
|
13 |
-
# COPY ./api/requirements.txt ./requirements.txt
|
14 |
-
# RUN pip install -r requirements.txt
|
15 |
-
#
|
16 |
-
# WORKDIR /app
|
17 |
-
# COPY ./api .
|
18 |
-
#
|
19 |
-
# COPY --from=core /app/engine.pickle /app/engine.pickle
|
20 |
-
#
|
21 |
-
# EXPOSE 9999
|
22 |
-
# ENTRYPOINT ["python", "service_manager.py"]
|
23 |
-
FROM python:3.9 as build
|
24 |
|
25 |
-
COPY ./requirements.txt ./requirements.txt
|
26 |
RUN pip install -r requirements.txt
|
27 |
|
28 |
WORKDIR /app
|
29 |
|
30 |
-
COPY
|
|
|
31 |
|
32 |
-
|
33 |
|
34 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
35 |
|
36 |
EXPOSE 9999
|
37 |
-
ENTRYPOINT ["python", "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
FROM python:3.9 as core
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
+
COPY ./core/requirements.txt ./requirements.txt
|
4 |
RUN pip install -r requirements.txt
|
5 |
|
6 |
WORKDIR /app
|
7 |
|
8 |
+
COPY ./core .
|
9 |
+
RUN python ./initialization.py
|
10 |
|
11 |
+
FROM python:3.9
|
12 |
|
13 |
+
COPY ./api/requirements.txt ./requirements.txt
|
14 |
+
RUN pip install -r requirements.txt
|
15 |
+
|
16 |
+
WORKDIR /app
|
17 |
+
COPY ./api .
|
18 |
+
|
19 |
+
COPY --from=core /app/engine.pickle /app/engine.pickle
|
20 |
|
21 |
EXPOSE 9999
|
22 |
+
ENTRYPOINT ["python", "service_manager.py"]
|
23 |
+
|
24 |
+
# FROM python:3.9 as build
|
25 |
+
#
|
26 |
+
# COPY ./requirements.txt ./requirements.txt
|
27 |
+
# RUN pip install -r requirements.txt
|
28 |
+
#
|
29 |
+
# WORKDIR /app
|
30 |
+
#
|
31 |
+
# COPY . .
|
32 |
+
#
|
33 |
+
# RUN mkdir -p /app/cache && chmod -R 777 /app/cache
|
34 |
+
#
|
35 |
+
# ENV TRANSFORMERS_CACHE=/app/cache
|
36 |
+
#
|
37 |
+
# EXPOSE 9999
|
38 |
+
# ENTRYPOINT ["python", "run.py"]
|
api/service_manager.py
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
from web_server import app
|
2 |
import uvicorn
|
3 |
|
4 |
|
@@ -9,5 +9,4 @@ def run():
|
|
9 |
|
10 |
uvicorn.run(app, host="0.0.0.0", port=8000)
|
11 |
|
12 |
-
run()
|
13 |
|
|
|
1 |
+
from .web_server import app
|
2 |
import uvicorn
|
3 |
|
4 |
|
|
|
9 |
|
10 |
uvicorn.run(app, host="0.0.0.0", port=8000)
|
11 |
|
|
|
12 |
|
api/web_server.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
import dill
|
2 |
from fastapi import FastAPI, HTTPException
|
3 |
from pydantic import BaseModel
|
4 |
-
from core.search_engine import PromptSearchEngine
|
5 |
|
6 |
|
7 |
class Query(BaseModel):
|
@@ -11,7 +11,7 @@ class Query(BaseModel):
|
|
11 |
|
12 |
app = FastAPI()
|
13 |
|
14 |
-
with open('
|
15 |
serialized_engine = file.read()
|
16 |
|
17 |
prompt_search_engine = dill.loads(serialized_engine)
|
@@ -19,8 +19,21 @@ prompt_search_engine = dill.loads(serialized_engine)
|
|
19 |
|
20 |
@app.post("/search/")
|
21 |
async def search(query: Query):
|
|
|
|
|
|
|
|
|
22 |
try:
|
|
|
|
|
|
|
|
|
|
|
|
|
23 |
results = prompt_search_engine.most_similar(query.prompt, query.n)
|
24 |
-
|
|
|
|
|
|
|
25 |
except Exception as e:
|
26 |
raise HTTPException(status_code=500, detail=str(e))
|
|
|
1 |
import dill
|
2 |
from fastapi import FastAPI, HTTPException
|
3 |
from pydantic import BaseModel
|
4 |
+
# from ..core.search_engine import PromptSearchEngine
|
5 |
|
6 |
|
7 |
class Query(BaseModel):
|
|
|
11 |
|
12 |
app = FastAPI()
|
13 |
|
14 |
+
with open('./engine.pickle', 'rb') as file:
|
15 |
serialized_engine = file.read()
|
16 |
|
17 |
prompt_search_engine = dill.loads(serialized_engine)
|
|
|
19 |
|
20 |
@app.post("/search/")
|
21 |
async def search(query: Query):
|
22 |
+
"""
|
23 |
+
TODO
|
24 |
+
"""
|
25 |
+
|
26 |
try:
|
27 |
+
if not isinstance(query.prompt, str):
|
28 |
+
raise ValueError("Prompt must be a string")
|
29 |
+
|
30 |
+
if not isinstance(query.n, int):
|
31 |
+
raise ValueError("Prompt must be a string")
|
32 |
+
|
33 |
results = prompt_search_engine.most_similar(query.prompt, query.n)
|
34 |
+
formatted_results = [{"score": float(score), "description": desc} for score, desc in results]
|
35 |
+
|
36 |
+
return formatted_results
|
37 |
+
|
38 |
except Exception as e:
|
39 |
raise HTTPException(status_code=500, detail=str(e))
|
core/__pycache__/initialization.cpython-39.pyc
ADDED
Binary file (699 Bytes). View file
|
|
core/__pycache__/search_engine.cpython-39.pyc
CHANGED
Binary files a/core/__pycache__/search_engine.cpython-39.pyc and b/core/__pycache__/search_engine.cpython-39.pyc differ
|
|
core/initialization.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
import dill
|
2 |
-
from
|
3 |
-
from
|
4 |
|
5 |
|
6 |
def run():
|
@@ -18,4 +18,4 @@ def run():
|
|
18 |
with open("engine.pickle", "wb") as file:
|
19 |
file.write(serialized_engine)
|
20 |
|
21 |
-
run()
|
|
|
1 |
import dill
|
2 |
+
from .search_engine import PromptSearchEngine
|
3 |
+
from .data.dataset import PromptDataset
|
4 |
|
5 |
|
6 |
def run():
|
|
|
18 |
with open("engine.pickle", "wb") as file:
|
19 |
file.write(serialized_engine)
|
20 |
|
21 |
+
run()
|
core/requirements.txt
CHANGED
@@ -1,4 +1,5 @@
|
|
1 |
datasets==2.20.0
|
2 |
dill==0.3.8
|
3 |
faiss_cpu==1.8.0.post1
|
|
|
4 |
sentence_transformers==3.0.1
|
|
|
1 |
datasets==2.20.0
|
2 |
dill==0.3.8
|
3 |
faiss_cpu==1.8.0.post1
|
4 |
+
numpy==1.23.5
|
5 |
sentence_transformers==3.0.1
|
core/search_engine.py
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
from typing import List, Sequence, Tuple
|
2 |
import numpy as np
|
3 |
import faiss
|
4 |
-
from
|
5 |
|
6 |
|
7 |
class PromptSearchEngine(object):
|
|
|
1 |
from typing import List, Sequence, Tuple
|
2 |
import numpy as np
|
3 |
import faiss
|
4 |
+
from .vectorizer import Vectorizer
|
5 |
|
6 |
|
7 |
class PromptSearchEngine(object):
|
requirements.txt
CHANGED
@@ -5,3 +5,4 @@ fastapi==0.111.1
|
|
5 |
pydantic==2.8.2
|
6 |
sentence_transformers==3.0.1
|
7 |
uvicorn==0.30.3
|
|
|
|
5 |
pydantic==2.8.2
|
6 |
sentence_transformers==3.0.1
|
7 |
uvicorn==0.30.3
|
8 |
+
numpy==1.23.5
|