> Discover all available pages from the documentation index: https://mastra.zisheng.pro/zh-TW/llms.txt # 語氣一致性評分器 `createToneScorer()` 函式會評估文字的情緒語氣與情感一致性。它能以兩種模式運作:比較輸入/輸出組合之間的語氣,或分析單一文字內的語氣穩定性。 ## 參數 `createToneScorer()` 函式不接受任何選項。 此函式會傳回 MastraScorer 類別的執行個體。如需 `.run()` 方法及其輸入/輸出的詳細資訊,請參閱 [MastraScorer 參考文件](https://mastra.zisheng.pro/zh-TW/reference/evals/mastra-scorer)。 ## `.run()` 傳回值 **runId** (`string`): 此次執行的 ID(選填)。 **analyzeStepResult** (`object`): 包含語氣指標的物件:{ responseSentiment: number, referenceSentiment: number, difference: number }(比較模式)或 { avgSentiment: number, sentimentVariance: number }(穩定性模式) **score** (`number`): 語氣一致性/穩定性分數(0–1)。 `.run()` 會傳回以下結構的結果: ```typescript { runId: string, analyzeStepResult: { responseSentiment?: number, referenceSentiment?: number, difference?: number, avgSentiment?: number, sentimentVariance?: number, }, score: number } ``` ## 評分詳情 此評分器會分析語氣模式,並依模式採用對應的評分方式,以評估情感一致性。 ### 評分流程 1. 分析語氣模式: - 擷取情感特徵 - 計算情感分數 - 衡量語氣變化 2. 計算特定模式的分數: **語氣一致性**(輸入與輸出): - 比較文字之間的情感 - 計算情感差異 - 分數 = 1 - (sentiment\_difference / max\_difference) **語氣穩定性**(單一輸入): - 分析各句的情感 - 計算情感變異數 - 分數 = 1 - (sentiment\_variance / max\_variance) 最終分數:`mode_specific_score * scale` ### 分數解讀 (0 到 scale,預設為 0–1) - 1.0:語氣一致性/穩定性完美 - 0.7–0.9:一致性高,只有輕微變化 - 0.4–0.6:一致性中等,有明顯轉變 - 0.1–0.3:一致性低,語氣大幅改變 - 0.0:毫無一致性——語氣完全不同 ### `analyzeStepResult` 包含語氣指標的物件: - **responseSentiment**:回應的情感分數(比較模式)。 - **referenceSentiment**:輸入/參考文字的情感分數(比較模式)。 - **difference**:情感分數之間的絕對差異(比較模式)。 - **avgSentiment**:各句的平均情感(穩定性模式)。 - **sentimentVariance**:各句情感的變異數(穩定性模式)。 ## 範例 評估相關 Agent 回應之間的語氣一致性: ```typescript import { runEvals } from '@mastra/core/evals' import { createToneScorer } from '@mastra/evals/scorers/prebuilt' import { myAgent } from './agent' const scorer = createToneScorer() const result = await runEvals({ data: [ { input: 'How was your experience with our service?', groundTruth: 'The service was excellent and exceeded expectations!', }, { input: 'Tell me about the customer support', groundTruth: 'The support team was friendly and very helpful.', }, ], 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/content-similarity) - [毒性評分器](https://mastra.zisheng.pro/zh-TW/reference/evals/toxicity)