성실성 득점자
그만큼createFaithfulnessScorer()함수는 제공된 컨텍스트와 비교하여 LLM의 출력이 실제로 얼마나 정확한지 평가합니다. 출력에서 클레임을 추출하고 컨텍스트에 대해 확인하므로 RAG 파이프라인 응답의 신뢰성을 측정하는 것이 필수적입니다.
매개변수매개변수에 대한 직접 링크
createFaithfulnessScorer() 함수는 다음 속성이 포함된 단일 옵션 객체를 받습니다.
model:
LanguageModel
충실도를 평가하는 데 사용되는 Model 구성입니다.
context:
string[]
출력의 주장을 검증할 때 기준으로 사용할 컨텍스트 청크 배열입니다.
scale:
number
= 1
최대 점수 값입니다. 최종 점수는 이 척도에 맞게 정규화됩니다.
이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. .run() 메서드는 다른 채점기와 동일한 입력을 받지만(MastraScorer 참조 확인), 반환값에는 아래에 설명된 LLM 관련 필드가 포함됩니다.
.run()보고run-returns에 대한 직접 링크
runId:
string
실행 ID입니다(선택 사항).
preprocessStepResult:
string[]
출력에서 추출한 주장 배열입니다.
preprocessPrompt:
string
전처리 단계를 위해 LLM에 전송된 Prompt입니다(선택 사항).
analyzeStepResult:
object
판정이 포함된 객체: { verdicts: Array<{ verdict: 'yes' | 'no' | 'unsure', reason: string }> }
analyzePrompt:
string
분석 단계를 위해 LLM에 전송된 Prompt입니다(선택 사항).
score:
number
컨텍스트가 뒷받침하는 주장의 비율을 나타내는 0과 구성된 척도 사이의 점수입니다.
reason:
string
어떤 주장이 뒷받침되거나 모순되거나 불확실한 것으로 표시되었는지를 포함하는 점수의 상세 설명입니다.
generateReasonPrompt:
string
generateReason 단계를 위해 LLM에 전송된 Prompt입니다(선택 사항).
채점 세부정보채점 세부정보에 대한 직접 링크
채점자는 제공된 맥락에 대한 주장 검증을 통해 충실도를 평가합니다.
채점 과정채점 과정에 대한 직접 링크
- 주장과 맥락을 분석합니다.
- 모든 주장(사실 및 추측)을 추출합니다.
- 문맥에 따라 각 주장을 확인합니다.
- 세 가지 판정 중 하나를 할당합니다.
- "예" - 문맥에 따라 뒷받침되는 주장
- "아니오" - 주장이 문맥과 모순됨
- "확실하지 않음" - 확인할 수 없는 주장
- 충실도 점수를 계산합니다.
- 지원되는 주장 수
- 총 청구액으로 나눕니다.
- 구성된 범위로 확장
최종 점수:(supported_claims / total_claims) * scale
점수 해석점수 해석에 대한 직접 링크
0과 1 사이의 충실도 점수:
- 1.0: 모든 주장은 정확하며 문맥에 따라 직접적으로 뒷받침됩니다.
- 0.7~0.9: 약간의 추가나 누락을 제외하면 대부분의 주장이 정확합니다.
- 0.4~0.6: 일부 주장은 뒷받침되지만 다른 주장은 확인할 수 없습니다.
- 0.1~0.3: 대부분의 내용이 부정확하거나 지원되지 않습니다.
- 0.0: 모든 주장은 거짓이거나 문맥과 모순됩니다.
예예에 대한 직접 링크
제공된 컨텍스트에 충실한지 상담사 응답을 평가합니다.
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에 추가하려면 다음을 참조하세요.Scorers overview guide.