add documentation
Browse files- api/routes/admin.py +3 -0
- api/routes/search.py +13 -3
api/routes/admin.py
CHANGED
@@ -10,6 +10,9 @@ router = APIRouter()
|
|
10 |
|
11 |
@router.put("/admin/v1/db")
|
12 |
async def recreate_collection(name: Annotated[str, Body(embed=True)]):
|
|
|
|
|
|
|
13 |
print(f"creating collection {name} in db")
|
14 |
return vector_store.client.recreate_collection(collection_name=name,
|
15 |
vectors_config=VectorParams(size=1536, distance=Distance.COSINE))
|
|
|
10 |
|
11 |
@router.put("/admin/v1/db")
|
12 |
async def recreate_collection(name: Annotated[str, Body(embed=True)]):
|
13 |
+
""" `name` of the collection to be created.
|
14 |
+
If one exits, delete and recreate.
|
15 |
+
"""
|
16 |
print(f"creating collection {name} in db")
|
17 |
return vector_store.client.recreate_collection(collection_name=name,
|
18 |
vectors_config=VectorParams(size=1536, distance=Distance.COSINE))
|
api/routes/search.py
CHANGED
@@ -17,7 +17,13 @@ router = APIRouter()
|
|
17 |
_chain = load_qa_chain(OpenAI(temperature=0), chain_type="stuff")
|
18 |
|
19 |
@router.post("/v1/docs")
|
20 |
-
async def
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
_db = vector_store.get_instance(name)
|
22 |
if not _db:
|
23 |
return JSONResponse(status_code=404, content={})
|
@@ -27,8 +33,12 @@ async def index_doc(name: Annotated[str, Body()], fileName: Annotated[str, Body(
|
|
27 |
#todo return something sensible
|
28 |
return JSONResponse(status_code=200, content={"name": name})
|
29 |
|
30 |
-
@router.get("/v1/
|
31 |
-
async def
|
|
|
|
|
|
|
|
|
32 |
_db = vector_store.get_instance(name)
|
33 |
print(query)
|
34 |
docs = _db.similarity_search(query=query)
|
|
|
17 |
_chain = load_qa_chain(OpenAI(temperature=0), chain_type="stuff")
|
18 |
|
19 |
@router.post("/v1/docs")
|
20 |
+
async def create_or_update(name: Annotated[str, Body()], fileName: Annotated[str, Body()], file: UploadFile = File(...)):
|
21 |
+
"""create or update a collection
|
22 |
+
`name` of the collection
|
23 |
+
`file` to upload.
|
24 |
+
`fileName` name of the file.
|
25 |
+
"""
|
26 |
+
|
27 |
_db = vector_store.get_instance(name)
|
28 |
if not _db:
|
29 |
return JSONResponse(status_code=404, content={})
|
|
|
33 |
#todo return something sensible
|
34 |
return JSONResponse(status_code=200, content={"name": name})
|
35 |
|
36 |
+
@router.get("/v1/doc/{name}/answer")
|
37 |
+
async def answer(name: str, query: str):
|
38 |
+
""" Answer a question from the collection
|
39 |
+
`name` of the collection.
|
40 |
+
`query` to be answered.
|
41 |
+
"""
|
42 |
_db = vector_store.get_instance(name)
|
43 |
print(query)
|
44 |
docs = _db.similarity_search(query=query)
|