triage/agent_system/evaluetor/response_model.py

66 lines
2.5 KiB
Python
Raw Normal View History

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="关键改进建议列表"
)