from fastapi import FastAPI, Form
from fastapi.responses import HTMLResponse
import time
from ingest import ingest
from query import retrieve, rerank, answer
app = FastAPI()
@app.get("/", response_class=HTMLResponse)
def home():
return """
Back"
context_text = "\n\n".join([d["text"] for d in reranked_docs])
ans = answer(question, context_text)
elapsed = round(time.time() - start_time, 2)
html = f"""
Answer
{ans}
Sources
"""
for i, d in enumerate(reranked_docs):
html += f"""
[{i+1}] {d['metadata'].get('source', 'unknown')} | position {d['metadata'].get('position')}
"""
html += f"""
Time taken: {elapsed} seconds
Ask another question
"""
return html
if __name__=="__main__":
import uvicorn
uvicorn.run("app:app", host="0.0.0.0", port=7860)