精简后端功能模块并补充教学互动
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class KnowledgeSearchResponse(BaseModel):
|
||||
"""知识检索响应:返回评分参考指南片段和来源。"""
|
||||
|
||||
matched_chunks: list[dict]
|
||||
source_refs: list[dict]
|
||||
no_match: bool
|
||||
@@ -1,20 +0,0 @@
|
||||
from pydantic import BaseModel
|
||||
|
||||
|
||||
class LLMTestRequest(BaseModel):
|
||||
"""LLM 测试入参:用于快速模型和 reason 模型耗时验证。"""
|
||||
|
||||
message: str = "请用一句话说明医疗问诊训练 Demo 的用途。"
|
||||
|
||||
|
||||
class LLMTestResponse(BaseModel):
|
||||
"""LLM 测试响应:返回模型名、首 token 时间和总耗时。"""
|
||||
|
||||
model: str
|
||||
first_token_ms: int | None = None
|
||||
total_latency_ms: int
|
||||
stream: bool
|
||||
mock_mode: bool = False
|
||||
fallback_used: bool = False
|
||||
thinking_enabled: bool | None = None
|
||||
reasoning_effort: str | None = None
|
||||
@@ -0,0 +1,75 @@
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.schemas.evaluation import EvaluationResponse
|
||||
|
||||
|
||||
class TeachingVideo(BaseModel):
|
||||
"""教学视频:题目解析关联的视频资源。"""
|
||||
|
||||
title: str = ""
|
||||
url: str = ""
|
||||
|
||||
|
||||
class TeachingOption(BaseModel):
|
||||
"""教学选项:单选题或多选题的选项结构。"""
|
||||
|
||||
key: str
|
||||
text: str
|
||||
|
||||
|
||||
class TeachingQuestion(BaseModel):
|
||||
"""教学题目:从 teaching_case 解析出的互动题目。"""
|
||||
|
||||
question_id: str
|
||||
question_type: str = "single_choice"
|
||||
stem: str
|
||||
options: list[TeachingOption] = Field(default_factory=list)
|
||||
answer: str | list[str]
|
||||
analysis: str = ""
|
||||
video: TeachingVideo | None = None
|
||||
knowledge_points: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class TeachingCaseSummary(BaseModel):
|
||||
"""教学病例摘要:教学互动页面展示的病例基础信息。"""
|
||||
|
||||
case_id: int
|
||||
title: str
|
||||
department_id: int | None = None
|
||||
difficulty: str
|
||||
chief_complaint: str
|
||||
description: str
|
||||
patient_age: int | None = None
|
||||
patient_gender: str | None = None
|
||||
knowledge_points: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class TeachingItemsResponse(BaseModel):
|
||||
"""教学列表响应:病例、教学目标、题目、答案、解析文本和视频。"""
|
||||
|
||||
case: TeachingCaseSummary
|
||||
teaching_goal: str
|
||||
teacher_guide: str
|
||||
scoring_focus: str
|
||||
questions: list[TeachingQuestion]
|
||||
|
||||
|
||||
class TeachingAnswer(BaseModel):
|
||||
"""教学作答:前端提交的单题选择结果。"""
|
||||
|
||||
question_id: str = Field(min_length=1, max_length=64)
|
||||
selected_answer: str | list[str]
|
||||
|
||||
|
||||
class CreateTeachingEvaluationRequest(BaseModel):
|
||||
"""教学评价入参:提交教学互动题目作答并生成评价。"""
|
||||
|
||||
case_id: int
|
||||
answers: list[TeachingAnswer] = Field(min_length=1)
|
||||
score_type: str = Field(default="percentage", pattern="^(percentage|five_point)$")
|
||||
|
||||
|
||||
class TeachingEvaluationResponse(EvaluationResponse):
|
||||
"""教学评价响应:复用训练评价结构,并返回教学会话 ID。"""
|
||||
|
||||
session_id: int
|
||||
Reference in New Issue
Block a user