21thang4 / main.py
userlele's picture
Update main.py
cb1d653 verified
from fastapi import FastAPI, UploadFile, File, Form, Request
from fastapi.responses import JSONResponse
import tempfile, shutil, os
from llm import load_and_process_pdf, create_vectorstore, create_rag_chain, get_response
app = FastAPI(
title="PDF Q&A Chatbot",
description="Ask questions about a PDF file using RAG.",
version="1.0"
)
# Global in-memory state
global_state = {
"vectorstore": create_vectorstore(),
"rag_chain": create_rag_chain()
}
@app.get("/")
def home():
return {"message": "Visit link https://userlele-21thang4.hf.space/docs"}
@app.get("/ask")
def ask(prompt: str):
"""Ask a question using the uploaded and processed PDF."""
if not global_state["vectorstore"] or not global_state["rag_chain"]:
return JSONResponse(status_code=400, content={"error": "Please upload and process a PDF first."})
answer = get_response(global_state["rag_chain"], global_state["vectorstore"], prompt)
return {"question": prompt, "answer": answer}