| from pydantic import BaseModel | |
| from typing import List, Optional, Dict, Any | |
| class Patient(BaseModel): | |
| id: Optional[str] = None | |
| name: str | |
| age: int | |
| gender: str | |
| medical_history: Optional[str] = None | |
| class AgentMessage(BaseModel): | |
| role: str # "user", "assistant", "system" | |
| content: str | |
| class AgentState(BaseModel): | |
| patient: Optional[Patient] = None | |
| messages: List[AgentMessage] = [] | |
| context: Dict[str, Any] = {} | |
| next_step: Optional[str] = None | |
| class AgentConfig(BaseModel): | |
| name: str | |
| type: str # "intake", "anamnesis", "diagnosis", "planner" | |
| model: str = "gpt-4o" | |
| system_prompt: str | |