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(float(s) * w for s, w in zip(valid_scores, weights)) * 10 # 转换为百分制