> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 답변 유사성 득점자 그만큼`createAnswerSimilarityScorer()`함수는 Agent의 출력이 정답과 얼마나 유사한지 평가하는 채점자를 생성합니다. 이 채점기는 답변이 예상되고 시간이 지남에 따라 일관성을 보장하려는 CI/CD 테스트 시나리오를 위해 특별히 설계되었습니다. ## 매개변수 **model** (`LanguageModel`): 출력과 정답 간의 의미적 유사성을 평가하는 데 사용되는 언어 Model입니다. **options** (`AnswerSimilarityOptions`): 채점기의 구성 옵션입니다. **options.requireGroundTruth** (`boolean`): 평가에 정답이 필요한지 여부입니다. false이면 정답이 없을 때 점수 0을 반환합니다. **options.semanticThreshold** (`number`): 정확한 일치 대비 의미적 일치의 가중치입니다(0\~1). **options.exactMatchBonus** (`number`): 정확히 일치할 때 추가되는 점수 보너스입니다(0\~1). **options.missingPenalty** (`number`): 정답에서 누락된 핵심 개념당 적용되는 페널티입니다. **options.contradictionPenalty** (`number`): 모순되는 정보에 대한 페널티입니다. 값이 높으면 오답의 점수가 0에 가까워집니다. **options.extraInfoPenalty** (`number`): 정답에 없는 추가 정보에 대한 낮은 페널티입니다(최대 0.2). **options.scale** (`number`): 점수 배율입니다. 이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. `.run()` 메서드는 다른 채점기와 동일한 입력을 받지만([MastraScorer 레퍼런스](https://mastra.zisheng.pro/ko/reference/evals/mastra-scorer) 참조), 실행 객체에 **정답을 제공해야 합니다**. ## `.run()`보고 **runId** (`string`): 실행 ID입니다(선택 사항). **score** (`number`): 0\~1 사이의 유사성 점수입니다(사용자 지정 scale을 사용하면 0\~scale). 점수가 높을수록 정답과의 유사성이 높습니다. **reason** (`string`): 실행 가능한 피드백이 포함된 사람이 읽기 쉬운 점수 설명입니다. **preprocessStepResult** (`object`): 출력과 정답에서 추출한 의미 단위입니다. **analyzeStepResult** (`object`): 일치 항목, 모순 및 추가 정보에 대한 상세 분석입니다. **preprocessPrompt** (`string`): 의미 단위 추출에 사용되는 Prompt입니다. **analyzePrompt** (`string`): 유사성 분석에 사용되는 Prompt입니다. **generateReasonPrompt** (`string`): 설명 생성에 사용되는 Prompt입니다. ## 채점 세부정보 채점자는 다단계 프로세스를 사용합니다. 1. **발췌**: 출력과 Ground Truth를 의미 단위로 분해합니다. 2. **분석하다**: 단위를 비교하고 일치, 모순, 격차를 식별합니다. 3. **점수**: 모순에 대한 페널티를 적용하여 가중 유사성을 계산합니다. 4. **이유**: 사람이 읽을 수 있는 설명을 생성합니다. 점수 계산:`max(0, base_score - contradiction_penalty - missing_penalty - extra_info_penalty) × scale` ## 예 다양한 시나리오에서 Agent 응답이 실제와 유사한지 평가합니다. ```typescript import { runEvals } from '@mastra/core/evals' import { createAnswerSimilarityScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createAnswerSimilarityScorer({ model: 'openai/gpt-5.6-sol' }) const result = await runEvals({ data: [ { input: 'What is 2+2?', groundTruth: '4', }, { input: 'What is the capital of France?', groundTruth: 'The capital of France is Paris', }, { input: 'What are the primary colors?', groundTruth: 'The primary colors are red, blue, and yellow', }, ], 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.