Spaces:
Sleeping
Sleeping
File size: 1,195 Bytes
abf3abd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
from fastapi import FastAPI, UploadFile, File
from pydantic import BaseModel
from utils import *
from io import BytesIO
document_data = {}
app = FastAPI()
class Q(BaseModel):
question: str
from utils import *
@app.post("/uploaddoc")
async def upload_document(file: UploadFile = File()):
content = await file.read()
file = BytesIO(content)
text, tables = textprocessing(file)
text_embds = embed_query(text)
table_texts = ["-".join(["|".join(row) for row in table]) for table in tables]
table_embds = embed_query(table_texts)
vectordb = setvecdb(text_embds, table_embds, text, table_texts)
document_data["vectordb"] = vectordb
return {"message": "Document uploaded and processed successfully"}
@app.post("/question")
async def processquestion(question: Q):
query_text = question.question
vectordb = document_data.get("vectordb")
if vectordb is None:
return {"error": "No document uploaded"}
search_results = retriever(vectordb, query_text)
context = "\n".join(search_results['content'].sum())
answer = generate_answer(query_text, context)
return {"answer": answer} |