> Discover all available pages from the documentation index: https://mastra.zisheng.pro/ja/llms.txt # 完全性 Scorer `createCompletenessScorer()` 関数は、LLM の出力が入力に含まれる重要な要素をどの程度網羅しているかを評価します。名詞、動詞、トピック、用語を分析して網羅率を求め、詳細な完全性スコアを提供します。 ## パラメーター `createCompletenessScorer()` 関数はオプションを受け取りません。 この関数は MastraScorer クラスのインスタンスを返します。`.run()` メソッドとその入出力の詳細は、[MastraScorer リファレンス](https://mastra.zisheng.pro/ja/reference/evals/mastra-scorer)を参照してください。 ## `.run()` の戻り値 **runId** (`string`): Run の 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 } ``` ## 要素抽出の詳細 Scorer は、次の種類の要素を抽出して分析します。 - 名詞:重要なオブジェクト、概念、Entity - 動詞:動作と状態(不定詞に変換) - トピック:主な題材とテーマ - 用語:個々の実質語 抽出処理には次のものが含まれます。 - テキストの正規化(ダイアクリティカルマークの削除、小文字への変換) - camelCase の単語の分割 - 単語境界の処理 - 短い単語(3文字以下)の特別な処理 - 要素の重複排除 ### `extractStepResult` `.run()` メソッドから、次のプロパティを持つ `extractStepResult` オブジェクトを取得できます。 - **inputElements**:入力で検出された重要な要素(名詞、動詞、トピック、用語など)。 - **outputElements**:出力で検出された重要な要素。 - **missingElements**:出力で検出されなかった入力要素。 - **elementCounts**:入力と出力に含まれる要素の数。 ## スコアリングの詳細 Scorer は、言語要素の網羅率分析によって完全性を評価します。 ### スコアリング処理 1. 重要な要素を抽出します。 - 名詞と固有 Entity - 動作を表す動詞 - トピック固有の用語 - 正規化した語形 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/ja/reference/evals/run-evals)を参照してください。 この Scorer を Agent に追加する方法は、[Scorer の概要](https://mastra.zisheng.pro/ja/docs/evals/overview)ガイドを参照してください。 ## 関連項目 - [回答関連性 Scorer](https://mastra.zisheng.pro/ja/reference/evals/answer-relevancy) - [コンテンツ類似度 Scorer](https://mastra.zisheng.pro/ja/reference/evals/content-similarity) - [テキスト差分 Scorer](https://mastra.zisheng.pro/ja/reference/evals/textual-difference) - [キーワード網羅率 Scorer](https://mastra.zisheng.pro/ja/reference/evals/keyword-coverage)