File size: 904 Bytes
4fdc679 |
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 |
# rag/app.py
from contextlib import asynccontextmanager
from fastapi import FastAPI, Request, Form
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from api.endpoints import router
from rag.db.initializer import initialize
from rag.service.search import search
templates = Jinja2Templates(directory="templates")
@asynccontextmanager
async def lifespan(_app: FastAPI):
initialize()
yield
app = FastAPI(lifespan=lifespan)
app.include_router(router)
@app.get("/", response_class=HTMLResponse)
def index(request: Request):
return templates.TemplateResponse("index.html", {"request": request, "results": None})
@app.post("/demo", response_class=HTMLResponse)
def demo(request: Request, query: str = Form(...)):
results = search(query)
return templates.TemplateResponse("index.html", {"request": request, "results": results, "query": query})
|