主要变更: - 重命名PreDiagnosisEvaluation为Evaluator,统一术语 - 调整评分范围从-5到5改为0到5,优化评价标准 - 重构代码结构,按照disease_analyst标准实现 - 添加必需的run和build_prompt函数 - 更新配置文件,支持gpt-oss:latest模型 - 完善Claude指导文档和代理规范 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
66 lines
2.5 KiB
Python
66 lines
2.5 KiB
Python
from typing import List
|
||
from pydantic import BaseModel, Field
|
||
from agent_system.base import BaseResponseModel
|
||
|
||
class EvaluationDimension(BaseModel):
|
||
"""单个评价维度"""
|
||
score: float = Field(
|
||
...,
|
||
description="该维度的评分(0-5分,0分最差,5分最好)",
|
||
ge=0.0,
|
||
le=5.0
|
||
)
|
||
comment: str = Field(
|
||
...,
|
||
description="该维度的详细评价和分析"
|
||
)
|
||
|
||
class EvaluatorResult(BaseResponseModel):
|
||
"""评价器评价结果"""
|
||
|
||
# 基础评价维度(5个)
|
||
clinical_inquiry: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:临床问诊能力评价缺失"),
|
||
description="临床问诊能力评价"
|
||
)
|
||
diagnostic_reasoning: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:诊断推理能力评价缺失"),
|
||
description="诊断推理能力评价"
|
||
)
|
||
communication_quality: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:沟通表达能力评价缺失"),
|
||
description="沟通表达能力评价"
|
||
)
|
||
multi_round_consistency: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:多轮一致性评价缺失"),
|
||
description="多轮一致性评价"
|
||
)
|
||
overall_professionalism: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:整体专业性评价缺失"),
|
||
description="整体专业性评价"
|
||
)
|
||
|
||
# 相似度评价维度(3个)
|
||
present_illness_similarity: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:现病史相似度评价缺失"),
|
||
description="现病史相似度评价"
|
||
)
|
||
past_history_similarity: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:既往史相似度评价缺失"),
|
||
description="既往史相似度评价"
|
||
)
|
||
chief_complaint_similarity: EvaluationDimension = Field(
|
||
default=EvaluationDimension(score=0.0, comment="评价失败:主述相似度评价缺失"),
|
||
description="主述相似度评价"
|
||
)
|
||
|
||
# 总结和建议
|
||
summary: str = Field(
|
||
default="评价失败:整体评价总结缺失",
|
||
description="整体评价总结"
|
||
)
|
||
key_suggestions: List[str] = Field(
|
||
default=["评价失败:关键改进建议缺失"],
|
||
description="关键改进建议列表"
|
||
)
|