anam_code / anam /main.py
Vaibhav Kathait
Initial deploy
6754826
Raw History Blame Contribute Delete
1.5 kB
from pathlib import Path
import httpx
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.staticfiles import StaticFiles
from config import BASE, RAG_SYSTEM_PROMPT
from helpers import auth_headers
from rag import rag_state, router as rag_router
from routers import clinical, frontend, llm, local_rag as local_rag_router, personas, sessions, telemetry as telemetry_router
app = FastAPI(title="Anam AI Demo with RAG")
app.add_middleware(CORSMiddleware, allow_origins=["*"], allow_methods=["*"], allow_headers=["*"])
app.mount("/static", StaticFiles(directory=Path(__file__).parent / "static"), name="static")
for router in (frontend.router, personas.router, sessions.router, llm.router, clinical.router, telemetry_router.router):
app.include_router(router)
app.include_router(rag_router)
app.include_router(local_rag_router.router)
@app.on_event("startup")
async def sync_persona_prompt():
"""Push the current RAG_SYSTEM_PROMPT to the existing persona on every server start."""
if not rag_state.get("persona_id"):
return
try:
async with httpx.AsyncClient(timeout=15) as c:
await c.put(
f"{BASE}/personas/{rag_state['persona_id']}",
headers=auth_headers(),
json={"systemPrompt": RAG_SYSTEM_PROMPT},
)
print("RAG persona system prompt synced on startup.")
except Exception as e:
print(f"Could not sync persona prompt on startup: {e}")