sales-assistant-py-new/app/dto/quality_score.py

28 lines
1023 B
Python

from dataclasses import dataclass
# | **相关性** | **10/10** | 课程价格 = 培训咨询核心场景 |
# | **问答对应度** | **10/10** | 用户问价格,销售答价格,直接对应 |
# | **答案准确性** | **10/10** | 价格数字明确,更正了之前的错误 |
# | **可复用价值** | **8/10** | 价格问答是高频问题,答案可直接复用 |
# | **表达清晰度** | **8/10** | 数字清楚,语言通俗,虽有道歉但不影响理解 |
@dataclass
class QualityScore:
relevance: int
qa_alignment: int
accuracy: int
reusability: int
clarity: int
@property
def total(self) -> int:
weights = [0.3, 0.25, 0.20, 0.15, 0.10]
scores = [
self.relevance,
self.qa_alignment,
self.accuracy,
self.reusability,
self.clarity
]
valid_scores = [s if s is not None else 0 for s in scores]
return sum(s * w for s, w in zip(valid_scores, weights)) * 10 # 转换为百分制