Emeritus-21's picture
Upload 39 files
5bad2b7 verified
Raw
History Blame Contribute Delete
1.49 kB
from pydantic import BaseModel, Field
from typing import List, Optional, Dict
from datetime import datetime
class UserProfile(BaseModel):
age: int
country_iso3: Optional[str] = None
breastfeeding: bool = False
hypertension: bool = False
smoking_status: str = "non-smoker"
history_of_clots: bool = False
migraines: str = "none" # none, without_aura, with_aura
diabetes: bool = False
pregnancy_intention: str = "delay" # delay, space, complete
previous_method: Optional[str] = None
side_effects_history: Optional[str] = None
sti_protection_needed: bool = False
number_of_children: Optional[int] = None
class GenerateRequest(BaseModel):
query: str
user_profile: UserProfile
class GuidelineSource(BaseModel):
title: str
category: str
content: str
relevance_score: float
class SafetyAssessment(BaseModel):
flagged: bool
risk_category: str
message: str
class BehavioralInsight(BaseModel):
satisfaction_probability: float
interpretation: str
recommendation: str
class AIResponse(BaseModel):
answer: str
confidence: float
sources: List[GuidelineSource]
safety: SafetyAssessment
suggested_methods: List[str]
contraindicated_methods: List[str]
behavioral_insight: Optional[BehavioralInsight] = None
regional_context: Optional[List[Dict]] = None
generated_at: datetime = Field(default_factory=datetime.utcnow)