UniversityAI / co.py
Alsmwal's picture
Upload 28 files
18ad9a9 verified
raw
history blame
1.31 kB
import sys
import os
from fastapi.middleware.cors import CORSMiddleware
from fastapi import FastAPI, HTTPException
from fastapi.responses import StreamingResponse
from pydantic import BaseModel
from rag import rag_answer, rag_answer_stream
from typing import Optional
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
class Question(BaseModel):
question: str
conversation_id: Optional[int] = None
@app.post("/ask")
async def ask_question(data: Question):
"""
Handle question, get RAG answer, and return it.
"""
try:
# 1. Get answer from RAG
answer = rag_answer(data.question)
return {
"answer": answer,
"conversation_id": data.conversation_id
}
except Exception as e:
print(f"Error in ask_question: {e}")
return {
"answer": "Error processing your question.",
"conversation_id": data.conversation_id,
}
@app.post("/ask_stream")
async def ask_question_stream(data: Question):
"""Stream the answer from RAG."""
return StreamingResponse(rag_answer_stream(data.question), media_type="text/plain")