Files
fastapi/app/schemas/training_config.py
2026-06-08 15:16:07 +08:00

44 lines
1.3 KiB
Python

from typing import Literal
from pydantic import BaseModel
VisitEnvironment = Literal["outpatient", "emergency", "ward"]
AgeGroup = Literal["child", "youth", "middle_aged", "elderly"]
EducationLevel = Literal["primary_or_below", "secondary", "higher"]
Personality = Literal["calm", "anxious", "impatient", "cooperative", "suspicious"]
class ConfigOption(BaseModel):
"""训练配置选项:用于前端渲染单个可选项。"""
value: str
label: str
description: str | None = None
class PatientConfig(BaseModel):
"""病人初始化配置:控制 AI 病人的就诊场景、年龄段、文化程度和性格。"""
visit_environment: VisitEnvironment = "outpatient"
age_group: AgeGroup = "youth"
education_level: EducationLevel = "higher"
personality: Personality = "calm"
class TrainingConfigOptionsResponse(BaseModel):
"""训练配置响应:返回推荐配置和全部可选项。"""
case_id: int
recommended: PatientConfig
recommended_labels: dict[str, str]
options: dict[str, list[ConfigOption]]
class TrainingConfigRecommendedResponse(BaseModel):
"""推荐训练配置响应:用于训练页进入时初始化默认病人信息。"""
case_id: int
recommended: PatientConfig
recommended_labels: dict[str, str]
options: dict[str, list[ConfigOption]]