ishmeet-yo commited on
Commit
da2bdd7
·
verified ·
1 Parent(s): 794ef54

Update app/main.py

Browse files
Files changed (1) hide show
  1. app/main.py +14 -16
app/main.py CHANGED
@@ -1,37 +1,35 @@
1
- # app/main.py
2
  from fastapi import FastAPI, Request, Form
3
  from fastapi.responses import HTMLResponse
4
  from fastapi.staticfiles import StaticFiles
5
  from fastapi.templating import Jinja2Templates
6
- import os
7
 
8
- from app.rag import load_data, retrieve_chunks
9
- from app.llm import generate_answer
10
 
11
  app = FastAPI()
12
 
13
- app.mount("/static", StaticFiles(directory="static"), name="static")
14
- templates = Jinja2Templates(directory="templates")
 
 
 
 
15
 
16
- documents, embeddings = load_data()
17
 
18
  @app.get("/", response_class=HTMLResponse)
19
- async def home(request: Request):
20
- return templates.TemplateResponse("index.html", {"request": request, "question": "", "answer": ""})
 
21
 
22
  @app.post("/ask", response_class=HTMLResponse)
23
  async def ask(request: Request, query: str = Form(...)):
24
- # 1️⃣ Retrieve relevant chunks
25
  retrieved = retrieve_chunks(query, documents, embeddings)
26
  context = "\n\n".join(retrieved)
27
 
28
- answer = generate_answer(context, query)
 
29
 
30
  return templates.TemplateResponse(
31
  "index.html",
32
- {
33
- "request": request,
34
- "question": query,
35
- "answer": answer
36
- }
37
  )
 
 
1
  from fastapi import FastAPI, Request, Form
2
  from fastapi.responses import HTMLResponse
3
  from fastapi.staticfiles import StaticFiles
4
  from fastapi.templating import Jinja2Templates
 
5
 
6
+ from rag import load_data, retrieve_chunks, ask_model # your RAG functions
 
7
 
8
  app = FastAPI()
9
 
10
+ # Static files and templates
11
+ app.mount("/static", StaticFiles(directory="app/static"), name="static")
12
+ templates = Jinja2Templates(directory="app/templates")
13
+
14
+ # Load your RAG data once
15
+ documents, embeddings, model = load_data()
16
 
 
17
 
18
  @app.get("/", response_class=HTMLResponse)
19
+ async def index(request: Request):
20
+ return templates.TemplateResponse("index.html", {"request": request, "answer": ""})
21
+
22
 
23
  @app.post("/ask", response_class=HTMLResponse)
24
  async def ask(request: Request, query: str = Form(...)):
25
+ # Retrieve relevant chunks
26
  retrieved = retrieve_chunks(query, documents, embeddings)
27
  context = "\n\n".join(retrieved)
28
 
29
+ # Ask the model
30
+ answer = ask_model(context, query)
31
 
32
  return templates.TemplateResponse(
33
  "index.html",
34
+ {"request": request, "answer": answer, "query": query}
 
 
 
 
35
  )