Insurance-RAG / api /main.py
DeltaVenom's picture
Update app code and initialize runtime databases
72bff80
from fastapi import FastAPI, HTTPException, Body
from pydantic import BaseModel
from typing import List, Dict, Optional, Any
from agents.graph import app as agent_app
# from ingestion.pipeline import IngestionPipeline # Optional: Trigger via API
from api.plans import router as plans_router
app = FastAPI(title="Insurance Advisory AI Agent", version="1.0.0")
app.include_router(plans_router)
class ChatRequest(BaseModel):
message: str
chat_history: Optional[List[str]] = []
class ChatResponse(BaseModel):
answer: str
intent: str
context_used: Optional[List[str]] = None
@app.get("/")
def health_check():
return {"status": "active", "system": "Insurance Advisory Agent"}
@app.post("/chat", response_model=ChatResponse)
async def chat_endpoint(request: ChatRequest):
"""
Main chat endpoint. Routes query through the Multi-Agent Graph.
"""
try:
# Initial state
initial_state = {
"input": request.message,
"chat_history": request.chat_history or [],
"intent": "",
"context": [],
"answer": "",
"metadata_filters": {}
}
# Invoke Graph
result = agent_app.invoke(initial_state)
return ChatResponse(
answer=result.get("answer", "No response generated."),
intent=result.get("intent", "unknown"),
context_used=result.get("context", [])
)
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)