Files
agent-video-summarizer/main.py
ALIHAN DIKEL 65b5496a6b auto deploy
2024-06-10 02:54:48 +03:00

40 lines
1.4 KiB
Python

from fastapi import FastAPI, Request, Form
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from loguru import logger
import uvicorn
import services
app = FastAPI()
templates = Jinja2Templates(directory="templates")
cache = {}
@app.get("/", response_class=HTMLResponse)
def summarize_get(root: Request):
return templates.TemplateResponse("index.html", {"request": root})
@app.post("/", response_class=HTMLResponse)
def summarize_post(summarize: Request, url: str = Form(...)):
file_name, summary = services.generate_summary(url)
#summary = "test summary"
cache["current"] = {url: {"summary": summary, "file_name": file_name}}
logger.debug(f"state of the cache is:\n{cache}")
return templates.TemplateResponse("index.html", {"request": summarize, "summary": summary, "url": url})
@app.post("/ragqa", response_class=HTMLResponse)
def ask_post(request: Request, question: str = Form(...), url: str = Form(...)):
file_name = cache["current"][url]["file_name"]
answer = services.answer_using_rag(
query=question,
file_name=file_name
)
cache["current"][url]["answer"] = answer
summary = cache["current"][url]["summary"]
return templates.TemplateResponse("index.html", {"request": request, "summary": summary, "url": url, "answer": answer})
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=8000)