Spaces:
Sleeping
Sleeping
File size: 1,522 Bytes
6194f24 49ff28a 85f130c 794ef54 deedb7f 85f130c da2bdd7 476a890 da2bdd7 fa81f98 85f130c fa81f98 85f130c 6194f24 da2bdd7 85f130c 49ff28a fa81f98 49ff28a 794ef54 ea70f1d 85f130c 49ff28a | 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | from fastapi import FastAPI, Request, Form
from fastapi.responses import HTMLResponse, JSONResponse
from fastapi.staticfiles import StaticFiles
from fastapi.templating import Jinja2Templates
from app.llm import generate_answer
from app.rag import load_data, retrieve_chunks
app = FastAPI()
# Static files and templates
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
# Load your RAG data once
# documents, embeddings= load_data()
documents = None
embeddings = None
@app.on_event("startup")
def startup_event():
global documents, embeddings
documents, embeddings = load_data()
@app.get("/", response_class=HTMLResponse)
async def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request, "answer": ""})
# @app.post("/ask", response_class=HTMLResponse)
# async def ask(request: Request, query: str = Form(...)):
# # Retrieve relevant chunks
# retrieved = retrieve_chunks(query, documents, embeddings)
# context = "\n\n".join(retrieved)
# # Ask the model
# answer = generate_answer(context, query)
# return templates.TemplateResponse(
# "index.html",
# {"request": request, "answer": answer, "query": query}
# )
@app.post("/ask")
async def ask(query: str = Form(...)):
retrieved = retrieve_chunks(query, documents, embeddings)
context = "\n\n".join(retrieved)
answer = generate_answer(context, query)
return {"answer": answer}
|