from fastapi import APIRouter from pydantic import BaseModel from typing import Any, Dict, Optional from app.graphs.innate_portrait_graph import InnatePortraitAgent import logging logger = logging.getLogger(__name__) router = APIRouter(prefix="/api/v1", tags=["innate"]) _agent: InnatePortraitAgent = None class InnateReadingRequest(BaseModel): portrait: Dict[str, Any] class InnateReadingResponse(BaseModel): reading: str generated_at: Optional[str] = None def get_agent() -> InnatePortraitAgent: global _agent if _agent is None: _agent = InnatePortraitAgent() return _agent @router.post("/innate/reading", response_model=InnateReadingResponse) async def innate_reading(req: InnateReadingRequest): agent = get_agent() result = await agent.run(req.portrait) return InnateReadingResponse(reading=result.get("reading", ""))