> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # 完整性評分器 `createCompletenessScorer()` 函式會評估 LLM 輸出涵蓋輸入中關鍵要素的完整程度。它會分析名詞、動詞、主題與術語以判斷涵蓋率,並提供詳細的完整性分數。 ## 參數 `createCompletenessScorer()` 函式不接受任何選項。 此函式會傳回 MastraScorer 類別的執行個體。如需 `.run()` 方法及其輸入/輸出的詳細資訊,請參閱 [MastraScorer 參考文件](https://mastra.zisheng.pro/zh-TW/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` 物件,其中包含下列屬性: - **inputElements**:在輸入中找到的關鍵要素(例如名詞、動詞、主題、術語)。 - **outputElements**:在輸出中找到的關鍵要素。 - **missingElements**:未在輸出中找到的輸入要素。 - **elementCounts**:輸入與輸出中的要素數量。 ## 評分詳情 此評分器會分析語言要素的涵蓋率,以評估完整性。 ### 評分流程 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/zh-TW/reference/evals/run-evals)。 若要將此評分器加入 Agent,請參閱[評分器概觀](https://mastra.zisheng.pro/zh-TW/docs/evals/overview)指南。 ## 相關資源 - [答案相關性評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/answer-relevancy) - [內容相似度評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/content-similarity) - [文字差異評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/textual-difference) - [關鍵字涵蓋率評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/keyword-coverage)