톤 일관성 득점자
그만큼createToneScorer()함수는 텍스트의 감정적 어조와 감정 일관성을 평가합니다. 입력/출력 쌍 간의 톤을 비교하거나 단일 텍스트 내의 톤 안정성을 분석하는 두 가지 모드로 작동할 수 있습니다.
매개변수매개변수에 대한 직접 링크
그만큼createToneScorer() function doesn't take any options.
이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. .run() 메서드와 그 입력/출력에 대한 자세한 내용은 MastraScorer 레퍼런스를 참조하세요.
.run()보고run-returns에 대한 직접 링크
runId:
string
실행 ID입니다(선택 사항).
analyzeStepResult:
object
어조 지표가 포함된 객체: { responseSentiment: number, referenceSentiment: number, difference: number }(비교 모드) 또는 { avgSentiment: number, sentimentVariance: number }(안정성 모드)
score:
number
어조 일관성/안정성 점수(0~1)입니다.
.run()다음과 같은 형태로 결과를 반환합니다.
{
runId: string,
analyzeStepResult: {
responseSentiment?: number,
referenceSentiment?: number,
difference?: number,
avgSentiment?: number,
sentimentVariance?: number,
},
score: number
}
채점 세부정보채점 세부정보에 대한 직접 링크
채점자는 톤 패턴 분석과 모드별 채점을 통해 정서 일관성을 평가합니다.
채점 과정채점 과정에 대한 직접 링크
- 어조 패턴을 분석합니다.
- 감성 특징 추출
- 감성 점수 계산
- 어조 변화 측정
- 모드별 점수를 계산합니다. 어조 일관성(입력 및 출력):
- 텍스트 간 감성 비교
- 감성 차이 계산
- 점수 = 1 - (sentiment_difference / max_difference) 어조 안정성(단일 입력):
- 문장 전체의 감성 분석
- 감성 분산 계산
- 점수 = 1 - (sentiment_variance / max_variance)
최종 점수:
mode_specific_score * scale
점수 해석점수 해석에 대한 직접 링크
(0은 스케일, 기본값은 0-1)
- 1.0: 완벽한 톤 일관성/안정성
- 0.7-0.9: 사소한 변형이 있는 강력한 일관성
- 0.4-0.6: 눈에 띄는 변화가 있는 중간 정도의 일관성
- 0.1-0.3: 주요 톤 변화에 따른 일관성 부족
- 0.0: 일관성 없음 - 완전히 다른 톤
analyzeStepResultanalyzestepresult에 대한 직접 링크
톤 메트릭이 있는 개체:
- 반응감정: 응답에 대한 감정 점수(비교 모드)입니다.
- 참조감정: 입력/참조에 대한 감정 점수(비교 모드)입니다.
- 차이점: 감정 점수 간의 절대적인 차이입니다(비교 모드).
- 평균감정: 문장 전체의 평균 감정(안정 모드)입니다.
- 감정차이: 문장에 따른 감정의 변화(안정 모드).
예예에 대한 직접 링크
관련 Agent 응답 간의 어조 일관성을 평가합니다.
src/example-tone-consistency.ts
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 레퍼런스를 참조하세요.
이 득점자를 Agent에 추가하려면 다음을 참조하세요.Scorers overview guide.