> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 성실성 득점자 그만큼`createFaithfulnessScorer()`함수는 제공된 컨텍스트와 비교하여 LLM의 출력이 실제로 얼마나 정확한지 평가합니다. 출력에서 클레임을 추출하고 컨텍스트에 대해 확인하므로 RAG 파이프라인 응답의 신뢰성을 측정하는 것이 필수적입니다. ## 매개변수 `createFaithfulnessScorer()` 함수는 다음 속성이 포함된 단일 옵션 객체를 받습니다. **model** (`LanguageModel`): 충실도를 평가하는 데 사용되는 Model 구성입니다. **context** (`string[]`): 출력의 주장을 검증할 때 기준으로 사용할 컨텍스트 청크 배열입니다. **scale** (`number`): 최대 점수 값입니다. 최종 점수는 이 척도에 맞게 정규화됩니다. (Default: `1`) 이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. `.run()` 메서드는 다른 채점기와 동일한 입력을 받지만([MastraScorer 참조](https://mastra.zisheng.pro/ko/reference/evals/mastra-scorer) 확인), 반환값에는 아래에 설명된 LLM 관련 필드가 포함됩니다. ## `.run()`보고 **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입니다(선택 사항). ## 채점 세부정보 채점자는 제공된 맥락에 대한 주장 검증을 통해 충실도를 평가합니다. ### 채점 과정 1. 주장과 맥락을 분석합니다. - 모든 주장(사실 및 추측)을 추출합니다. - 문맥에 따라 각 주장을 확인합니다. - 세 가지 판정 중 하나를 할당합니다. - "예" - 문맥에 따라 뒷받침되는 주장 - "아니오" - 주장이 문맥과 모순됨 - "확실하지 않음" - 확인할 수 없는 주장 2. 충실도 점수를 계산합니다. - 지원되는 주장 수 - 총 청구액으로 나눕니다. - 구성된 범위로 확장 최종 점수:`(supported_claims / total_claims) * scale` ### 점수 해석 0과 1 사이의 충실도 점수: - **1.0**: 모든 주장은 정확하며 문맥에 따라 직접적으로 뒷받침됩니다. - **0.7\~0.9**: 약간의 추가나 누락을 제외하면 대부분의 주장이 정확합니다. - **0.4\~0.6**: 일부 주장은 뒷받침되지만 다른 주장은 확인할 수 없습니다. - **0.1\~0.3**: 대부분의 내용이 부정확하거나 지원되지 않습니다. - **0.0**: 모든 주장은 거짓이거나 문맥과 모순됩니다. ## 예 제공된 컨텍스트에 충실한지 상담사 응답을 평가합니다. ```typescript 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 참조](https://mastra.zisheng.pro/ko/reference/evals/run-evals)를 확인하세요. 이 득점자를 Agent에 추가하려면 다음을 참조하세요.[Scorers overview](https://mastra.zisheng.pro/ko/docs/evals/overview) guide. ## 관련된 - [답변 관련성 득점자](https://mastra.zisheng.pro/ko/reference/evals/answer-relevancy) - [환각 득점자](https://mastra.zisheng.pro/ko/reference/evals/hallucination)