> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ko/llms.txt # 완전성 득점자 그만큼`createCompletenessScorer()`함수는 LLM의 출력이 입력에 있는 핵심 요소를 얼마나 철저하게 포함하는지 평가합니다. 명사, 동사, 주제, 용어를 분석하여 적용 범위를 결정하고 자세한 완전성 점수를 제공합니다. ## 매개변수 그만큼`createCompletenessScorer()` function doesn't take any options. 이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. `.run()` 메서드와 해당 입력/출력에 관한 자세한 내용은 [MastraScorer 레퍼런스](https://mastra.zisheng.pro/ko/reference/evals/mastra-scorer)를 참조하세요. ## `.run()`보고 **runId** (`string`): 실행 ID입니다(선택 사항). **preprocessStepResult** (`object`): 추출된 요소와 적용 범위 세부 정보를 포함하는 객체입니다: { inputElements: string\[], outputElements: string\[], missingElements: string\[], elementCounts: { input: number, output: number } } **score** (`number`): 출력에서 다룬 입력 요소의 비율을 나타내는 완전성 점수입니다(0\~1). `.run()` 메서드는 다음 형태의 결과를 반환합니다. ```typescript { runId: string, extractStepResult: { inputElements: string[], outputElements: string[], missingElements: string[], elementCounts: { input: number, output: number } }, score: number } ``` ## 요소 추출 세부정보 채점자는 여러 유형의 요소를 추출하고 분석합니다. - 명사: 주요 개체, 개념 및 엔터티 - 동사: 동작 및 상태(부정사 형태로 변환) - 주제 : 주요 주제 및 주제 - 용어: 개별적인 실질적인 단어 추출 프로세스에는 다음이 포함됩니다. - 텍스트 정규화(발음 부호 제거, 소문자로 변환) - CamelCase 단어 분리 - 단어 경계 처리 - 짧은 단어(3자 이하)의 특수 처리 - 요소 중복 제거 ### `extractStepResult` `.run()` 메서드에서 다음 속성을 가진 `extractStepResult` 객체를 가져올 수 있습니다. - **입력 요소**: 입력에서 발견된 주요 요소(예: 명사, 동사, 주제, 용어)입니다. - **출력요소**: 출력에서 ​​발견된 주요 요소입니다. - **누락된 요소**: 출력에서 ​​입력 요소를 찾을 수 없습니다. - **요소수**: 입력 및 출력의 요소 수입니다. ## 채점 세부정보 채점자는 언어적 요소 범위 분석을 통해 완성도를 평가합니다. ### 채점 과정 1. 핵심 요소를 추출합니다. - 명사와 명명된 엔터티 - 동작 동사 - 주제별 용어 - 정규화된 단어 형태 2. 입력 요소의 적용 범위를 계산합니다. - 짧은 용어에 대한 정확한 일치(3자 이하) - 장기적으로 상당한 중복(>60%) 최종 점수:`(covered_elements / total_input_elements) * scale` ### 점수 해석 0과 1 사이의 완성도 점수: - **1.0**: 쿼리의 모든 측면을 세부적으로 자세히 설명합니다. - **0.7\~0.9**: 가장 중요한 측면을 좋은 세부 묘사와 약간의 공백으로 다룹니다. - **0.4\~0.6**: 몇 가지 핵심 사항을 다루지만 중요한 측면이 누락되었거나 세부 정보가 부족합니다. - **0.1\~0.3**: 상당한 격차가 있는 쿼리를 부분적으로만 해결합니다. - **0.0**: 문의사항을 해결하지 못하거나 관련 없는 정보를 제공합니다. ## 예 다양한 쿼리 복잡성 전반에 걸쳐 Agent 응답의 완전성을 평가합니다. ```typescript import { runEvals } from '@mastra/core/evals' import { createCompletenessScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createCompletenessScorer() const result = await runEvals({ data: [ { input: 'Explain the process of photosynthesis, including the inputs, outputs, and stages involved.', }, { input: 'What are the benefits and drawbacks of remote work for both employees and employers?', }, { input: 'Compare renewable and non-renewable energy sources in terms of cost, environmental impact, and sustainability.', }, ], scorers: [scorer], target: myAgent, onItemComplete: ({ scorerResults }) => { console.log({ score: scorerResults[scorer.id].score, }) }, }) 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/content-similarity) - [텍스트 차이 득점자](https://mastra.zisheng.pro/ko/reference/evals/textual-difference) - [키워드 적용 범위 득점자](https://mastra.zisheng.pro/ko/reference/evals/keyword-coverage)