File size: 979 Bytes
4fdc679
 
 
 
 
 
2aa7bf4
 
809768b
4fdc679
 
 
 
2aa7bf4
 
 
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
31
32
# 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 db.initializer import initialize_dbs
from models.initializer import initialize_models
from service.search import search

templates = Jinja2Templates(directory="templates")

@asynccontextmanager
async def lifespan(app: FastAPI):
    initialize_dbs()
    initialize_models(app)
    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})