| from pydantic import BaseModel, Field |
| from typing import Optional |
|
|
| class ResetRequest(BaseModel): |
| """Payload for resetting an active session.""" |
| session_id: str |
| patient_id: Optional[str] = None |
|
|
| class ChatRequest(BaseModel): |
| """Payload for processing a user's text message.""" |
| message: str |
| session_id: str |
| emotion: Optional[str] = None |
| patient_id: Optional[str] = None |
|
|
| class StartRequest(BaseModel): |
| """Payload for initializing a new session.""" |
| patient_id: Optional[str] = None |
|
|
| class PatientCreateRequest(BaseModel): |
| """Payload for creating a new patient record.""" |
| name: str |
| age: Optional[int] = Field(None, ge=5, le=99) |
| gender: Optional[str] = None |
| occupation: Optional[str] = None |
| primary_concern: Optional[str] = None |
|
|
| class EndSessionRequest(BaseModel): |
| """Payload for gracefully terminating a session and generating a summary.""" |
| session_id: str |
| patient_id: Optional[str] = None |
|
|
| class ChatResult(BaseModel): |
| """Internal model encapsulating the orchestrator's response to a user message.""" |
| assistant_message: str |
| intent: str |
| risk_flagged: bool |
| clinical_summary: Optional[str] = None |
|
|