跳至主要內容

答案相關性評分器

createAnswerRelevancyScorer() 函式接受包含下列屬性的單一選項物件:

參數
「參數」的直接連結

model:

LanguageModel
用於評估相關性的模型設定。

uncertaintyWeight:

number
= 0.3
評分時給予 'unsure' 判定的權重(0-1)。

scale:

number
= 1
最高分數值。

此函式會傳回 MastraScorer 類別的執行個體。.run() 方法接受與其他評分器相同的輸入(請參閱 MastraScorer 參考文件),但傳回值會包含下方所述的 LLM 專用欄位。

.run() 傳回值
「run-returns」的直接連結

runId:

string
執行 ID(選填)。

score:

number
相關性分數(0 到 scale,預設為 0-1)

preprocessPrompt:

string
在預處理步驟傳送給 LLM 的提示詞(選填)。

preprocessStepResult:

object
包含擷取陳述的物件:{ statements: string[] }

analyzePrompt:

string
在分析步驟傳送給 LLM 的提示詞(選填)。

analyzeStepResult:

object
包含結果的物件:{ results: Array<{ result: 'yes' | 'unsure' | 'no', reason: string }> }

generateReasonPrompt:

string
在產生理由步驟傳送給 LLM 的提示詞(選填)。

reason:

string
分數的說明。

評分詳情
「評分詳情」的直接連結

此評分器會比對查詢與答案來評估相關性,並考量完整性與詳細程度,但不考量事實正確性。

評分流程
「評分流程」的直接連結

  1. 陳述預處理:
    • 將輸出拆分為有用的陳述,同時保留上下文。
  2. 相關性分析:
    • 每項陳述會評估為:
      • "yes":直接相符時給予完整權重
      • "unsure":大致相符時給予部分權重(預設:0.3)
      • "no":內容不相關時給予零權重
  3. 分數計算:
    • ((direct + uncertainty * partial) / total_statements) * scale

分數解讀
「分數解讀」的直接連結

相關性分數介於 0 到 1:

  • 1.0:回應提供相關且聚焦的資訊,完整回答查詢。
  • 0.7 到 0.9:回應大致回答查詢,但可能包含少量無關內容。
  • 0.4 到 0.6:回應僅回答部分查詢,且混雜相關與無關資訊。
  • 0.1 到 0.3:回應只包含極少量相關內容,且大幅偏離查詢意圖。
  • 0.0:回應完全不相關,未回答查詢。

範例
「範例」的直接連結

評估 Agent 在不同情境下的回應相關性:

src/example-answer-relevancy.ts
import { runEvals } from '@mastra/core/evals'
import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'

const scorer = createAnswerRelevancyScorer({ model: 'openai/gpt-5.6-sol' })

const result = await runEvals({
data: [
{
input: 'What are the health benefits of regular exercise?',
},
{
input: 'What should a healthy breakfast include?',
},
{
input: 'What are the benefits of meditation?',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
reason: scorerResults[scorer.id].reason,
})
},
})

console.log(result.scores)

如需 runEvals 的更多詳細資訊,請參閱 runEvals 參考文件

若要將此評分器加入 Agent,請參閱評分器概觀指南。