add training configuration APIs

This commit is contained in:
刘金宝
2026-06-05 12:57:02 +08:00
parent 7f1803f9fa
commit 41a2851120
14 changed files with 1541 additions and 10 deletions
+4
View File
@@ -1,5 +1,7 @@
from pydantic import BaseModel, Field, field_validator
from app.schemas.training_config import PatientConfig
class CreateSessionRequest(BaseModel):
"""创建会话入参:选择病例、训练类别、模式和分数类型。"""
@@ -8,6 +10,7 @@ class CreateSessionRequest(BaseModel):
training_type: str = Field(pattern="^(case_analysis|diagnosis_treatment|consultation)$")
mode: str = Field(pattern="^(novice|practice|teaching)$")
score_type: str = Field(default="percentage", pattern="^(percentage|five_point)$")
patient_config: PatientConfig | None = None
@field_validator("mode")
@classmethod
@@ -23,6 +26,7 @@ class CreateSessionResponse(BaseModel):
session_code: str
status: str
patient_opening: str
patient_config: dict | None = None
class ChatRequest(BaseModel):
+36
View File
@@ -0,0 +1,36 @@
from pydantic import BaseModel
class ConfigOption(BaseModel):
"""训练配置选项:用于前端渲染单个可选项。"""
value: str
label: str
description: str | None = None
class PatientConfig(BaseModel):
"""病人初始化配置:控制 AI 病人的就诊场景、年龄段、文化程度和性格。"""
visit_environment: str = "outpatient"
age_group: str = "youth"
education_level: str = "higher"
personality: str = "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]]