TheQuantEd's picture
deploy: AMD EA Strategy Optimizer — Neo4j + FastAPI + Streamlit
6252f54
"""Pydantic v2 request models."""
from typing import Literal
from pydantic import BaseModel, Field
class AnalyzeRequest(BaseModel):
org_type: str = Field(..., description="Organisation type / domain focus (e.g. 'Healthcare Provider', 'Banking')")
goals: list[str] = Field(..., min_length=1, description="Business transformation goals")
budget_tier: Literal["low", "medium", "high"] = Field(default="medium")
timeline_months: int = Field(default=18, ge=6, le=36)
risk_tolerance: Literal["low", "medium", "high"] = Field(default="medium")
sector_focus: list[str] = Field(default_factory=list, description="Optional additional domain filters")
current_capabilities: list[str] = Field(default_factory=list, description="Capability IDs already in place")
selected_capability_ids: list[str] = Field(default_factory=list, description="Direct capability IDs from questionnaire — bypasses vector search")
selected_subdomain_ids: list[str] = Field(default_factory=list, description="Direct subdomain IDs from questionnaire")
model_config = {
"json_schema_extra": {
"examples": [
{
"org_type": "Banking",
"goals": [
"Modernise data management and establish data mesh",
"Launch open banking APIs for PSD2 compliance",
"Improve real-time fraud detection"
],
"budget_tier": "high",
"timeline_months": 24,
"risk_tolerance": "medium",
"sector_focus": ["Digital Intelligence", "Security"],
"current_capabilities": [],
}
]
}
}