忠實度評分器
createFaithfulnessScorer() 函式會比較 LLM 輸出與提供的上下文,以評估輸出的事實正確性。它會從輸出中擷取主張,並根據上下文進行驗證,因此對衡量 RAG 管線回應的可靠性至關重要。
參數「參數」的直接連結
createFaithfulnessScorer() 函式接受包含下列屬性的單一選項物件:
model:
LanguageModel
用於評估忠實度的模型設定。
context:
string[]
用於驗證輸出主張的上下文區塊陣列。
scale:
number
= 1
最高分數值。最終分數會正規化至此範圍。
此函式會傳回 MastraScorer 類別的執行個體。.run() 方法接受與其他評分器相同的輸入(請參閱 MastraScorer 參考文件),但傳回值會包含下方所述的 LLM 專用欄位。
.run() 傳回值「run-returns」的直接連結
runId:
string
執行 ID(選填)。
preprocessStepResult:
string[]
從輸出中擷取的主張陣列。
preprocessPrompt:
string
在預處理步驟傳送給 LLM 的提示詞(選填)。
analyzeStepResult:
object
包含判定的物件:{ verdicts: Array<{ verdict: 'yes' | 'no' | 'unsure', reason: string }> }
analyzePrompt:
string
在分析步驟傳送給 LLM 的提示詞(選填)。
score:
number
介於 0 與所設 scale 之間的分數,表示上下文支援的主張比例。
reason:
string
分數的詳細說明,包括哪些主張獲得支援、與上下文矛盾或標記為不確定。
generateReasonPrompt:
string
在 generateReason 步驟傳送給 LLM 的提示詞(選填)。
評分詳情「評分詳情」的直接連結
此評分器會根據所提供的上下文驗證主張,以評估忠實度。
評分流程「評分流程」的直接連結
- 分析主張與上下文:
- 擷取所有主張(事實性與推測性主張)
- 根據上下文驗證每項主張
- 指定下列三種判定之一:
- "yes" - 上下文支援此主張
- "no" - 此主張與上下文矛盾
- "unsure" - 無法驗證此主張
- 計算忠實度分數:
- 計算獲得支援的主張數量
- 除以主張總數
- 依設定範圍縮放
最終分數:(supported_claims / total_claims) * scale
分數解讀「分數解讀」的直接連結
忠實度分數介於 0 到 1:
- 1.0:所有主張皆正確,並有上下文直接支援。
- 0.7 到 0.9:大多數主張正確,只有少量新增或遺漏。
- 0.4 到 0.6:部分主張有上下文支援,但其他主張無法驗證。
- 0.1 到 0.3:大多數內容不正確或缺乏支援。
- 0.0:所有主張皆為錯誤,或與上下文矛盾。
範例「範例」的直接連結
評估 Agent 回應對所提供上下文的忠實度:
src/example-faithfulness.ts
import { runEvals } from '@mastra/core/evals'
import { createFaithfulnessScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'
// Context is typically populated from agent tool calls or RAG retrieval
const scorer = createFaithfulnessScorer({
model: 'openai/gpt-5.6-sol',
})
const result = await runEvals({
data: [
{
input: 'Tell me about the Tesla Model 3.',
},
{
input: 'What are the key features of this electric vehicle?',
},
],
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,請參閱評分器概觀指南。