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