优化:调整Triager智能体分析步骤和字段顺序
- 重新设计prompt中的分诊分析步骤,明确四个步骤的顺序 - 将triage_reasoning字段调整到最前面,体现分析优先的原则 - 更新示例输出格式,确保字段顺序一致 - 修改fallback结果的字段顺序以匹配新的模型结构 - 经测试验证,字段顺序正确且分诊逻辑清晰 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
f47d56051b
commit
e85fe617ce
@ -141,10 +141,10 @@ class TriageAgent(BaseAgent):
|
||||
TriageResult: 包含默认分诊建议的结果
|
||||
"""
|
||||
return TriageResult(
|
||||
triage_reasoning="由于分诊分析过程中出现异常,系统推荐全科就诊。建议患者先到全科进行初步评估,医生会根据具体情况进一步转诊到合适的专科。",
|
||||
primary_department="全科",
|
||||
secondary_department="全科(二级)",
|
||||
confidence_score=0.3,
|
||||
triage_reasoning="由于分诊分析过程中出现异常,系统推荐全科就诊。建议患者先到全科进行初步评估,医生会根据具体情况进一步转诊到合适的专科。"
|
||||
confidence_score=0.3
|
||||
)
|
||||
|
||||
def triage_by_chief_complaint(self, chief_complaint: str) -> TriageResult:
|
||||
|
||||
@ -19,11 +19,13 @@ class TriagerPrompt(BasePrompt):
|
||||
|
||||
# 执行指令和注意事项
|
||||
instructions = [
|
||||
"## 核心分诊任务",
|
||||
"1. **症状系统分析**: 根据患者主诉和现病史,准确识别疾病涉及的主要器官系统",
|
||||
"2. **科室匹配判断**: 结合症状特点,选择最适合的一级科室和对应的二级科室",
|
||||
"3. **专业度评估**: 基于病情复杂程度和专业要求,确定最合适的专科科室",
|
||||
"4. **信心度评价**: 对分诊决策的确信程度进行量化评估",
|
||||
"## 分诊分析步骤",
|
||||
"请按照以下步骤进行分诊分析:",
|
||||
"",
|
||||
"**第一步:症状分析与推理** - 分析患者症状特点,识别涉及的器官系统,提供详细的医学推理过程",
|
||||
"**第二步:一级科室选择** - 根据症状系统归属和年龄特异性,选择最合适的一级科室",
|
||||
"**第三步:二级科室匹配** - 基于病情复杂程度和专业要求,确定对应的二级科室",
|
||||
"**第四步:信心度评估** - 对分诊决策的确信程度进行量化评估(0-1分)",
|
||||
"",
|
||||
"## 科室结构体系",
|
||||
"### 一级科室列表:",
|
||||
@ -59,10 +61,10 @@ class TriagerPrompt(BasePrompt):
|
||||
"",
|
||||
"## 示例输出格式(JSON)",
|
||||
"{",
|
||||
" \"triage_reasoning\": \"患者主诉胸闷、胸痛,伴有呼吸困难,症状提示心血管系统疾病。结合既往高血压病史,考虑冠心病可能性较大,建议心血管内科就诊进行进一步检查和治疗。\",",
|
||||
" \"primary_department\": \"内科\",",
|
||||
" \"secondary_department\": \"心血管内科\",",
|
||||
" \"confidence_score\": 0.85,",
|
||||
" \"triage_reasoning\": \"患者主诉胸闷、胸痛,伴有呼吸困难,症状提示心血管系统疾病。结合既往高血压病史,考虑冠心病可能性较大,建议心血管内科就诊进行进一步检查和治疗。\"",
|
||||
" \"confidence_score\": 0.85",
|
||||
"}"
|
||||
]
|
||||
|
||||
@ -75,8 +77,8 @@ class TriagerPrompt(BasePrompt):
|
||||
str: JSON 格式的示例输出
|
||||
"""
|
||||
return """{
|
||||
"triage_reasoning": "详细的分诊推理过程,包括症状分析、科室选择依据和建议理由",
|
||||
"primary_department": "推荐的一级科室(必须从科室列表中选择)",
|
||||
"secondary_department": "推荐的二级科室(必须是一级科室的下属科室)",
|
||||
"confidence_score": 0.85,
|
||||
"triage_reasoning": "详细的分诊推理过程,包括症状分析、科室选择依据和建议理由"
|
||||
"confidence_score": 0.85
|
||||
}"""
|
||||
@ -7,6 +7,11 @@ class TriageResult(BaseResponseModel):
|
||||
"""
|
||||
科室分诊结果模型
|
||||
"""
|
||||
triage_reasoning: str = Field(
|
||||
...,
|
||||
description="分诊推理过程,解释为什么推荐该科室"
|
||||
)
|
||||
|
||||
primary_department: Literal[
|
||||
"内科", "外科", "儿科", "妇产科", "皮肤性病科",
|
||||
"口腔科", "眼科", "肿瘤科", "耳鼻咽喉科", "康复科",
|
||||
@ -27,8 +32,3 @@ class TriageResult(BaseResponseModel):
|
||||
le=1.0,
|
||||
description="分诊信心度评分(0-1之间)"
|
||||
)
|
||||
|
||||
triage_reasoning: str = Field(
|
||||
...,
|
||||
description="分诊推理过程,解释为什么推荐该科室"
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user