File size: 1,189 Bytes
9d837ba | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 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
|