| 123456789101112131415161718192021222324252627282930313233 |
- 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", ""))
|