vip11017's picture
Updated root path for backend
542f881
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from pydantic import BaseModel
from app.rag import get_response
from datetime import datetime
app = FastAPI(root_path="/aurochat")
@app.get("/")
def root():
return {"message": "Wellness Chatbot API is live."}
# CORS setup (so React can call API)
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_methods=["*"],
allow_headers=["*"],
)
class ChatInput(BaseModel):
question: str
session_id: str
name: str
email: str
@app.post("/chat")
async def chat(input: ChatInput):
print("Got question:", input.question)
print("Session ID:", input.session_id)
config = {
'configurable': {
'thread_id': input.session_id
}
}
response = await get_response(input.question, name=input.name, email=input.email, config=config)
return {"answer": response['response']}
#FAQ logging endpoint
class FAQInput(BaseModel):
session_id: str
question: str
answer: str
name: str
email: str
#Log FAQ in conversation History even though RAG not being called so future RAG calls have access to info
@app.post("/faq")
async def log_faq(faq: FAQInput):
session_id = faq.session_id
question = faq.question
answer = faq.answer
name=faq.name
email=faq.email
from app.rag import session_histories, HumanMessage, AIMessage, log_chat
if session_id not in session_histories:
session_histories[session_id] = []
session_histories[session_id].append(HumanMessage(content=question))
session_histories[session_id].append(AIMessage(content=answer))
log_chat(session_id=session_id, name=name, email=email, query=question, answer=answer, metadata={"source": "FAQ"})
return {"status": "success"}