add training configuration APIs
This commit is contained in:
@@ -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):
|
||||
|
||||
@@ -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]]
|
||||
Reference in New Issue
Block a user