본문으로 건너뛰기

콘텐츠 유사성 점수 측정기

그만큼createContentSimilarityScorer()함수는 두 문자열 사이의 텍스트 유사성을 측정하여 얼마나 일치하는지 나타내는 점수를 제공합니다. 대소문자 구분 및 공백 처리를 위한 구성 가능한 옵션을 지원합니다.

매개변수
매개변수에 대한 직접 링크

createContentSimilarityScorer() 함수는 다음 속성을 가진 단일 옵션 객체를 받습니다.

ignoreCase:

boolean
= true
문자열을 비교할 때 대소문자 차이를 무시할지 여부입니다.

ignoreWhitespace:

boolean
= true
문자열을 비교할 때 공백을 정규화할지 여부입니다.

이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. .run() 메서드와 해당 입력/출력에 관한 자세한 내용은 MastraScorer 레퍼런스를 참조하세요.

.run()보고
run-returns에 대한 직접 링크

runId:

string
실행 ID입니다(선택 사항).

preprocessStepResult:

object
처리된 입력과 출력을 포함하는 객체입니다: { processedInput: string, processedOutput: string }

analyzeStepResult:

object
유사성을 포함하는 객체입니다: { similarity: number }

score:

number
유사성 점수입니다(0~1). 1은 완벽한 유사성을 나타냅니다.

채점 세부정보
채점 세부정보에 대한 직접 링크

채점자는 문자 수준 일치 및 구성 가능한 텍스트 정규화를 통해 텍스트 유사성을 평가합니다.

채점 과정
채점 과정에 대한 직접 링크

  1. 텍스트를 표준화합니다.
    • 사례 정규화(ignoreCase: true인 경우)
    • 공백 정규화(ignoreWhitespace: true인 경우)
  2. 문자열 유사성 알고리즘을 사용하여 처리된 문자열을 비교합니다.
    • 문자 시퀀스 분석
    • 단어 경계를 정렬합니다.
    • 상대적인 위치를 고려합니다.
    • 길이 차이를 설명합니다.

최종 점수:similarity_value * scale

예에 대한 직접 링크

예상되는 Agent 출력과 실제 Agent 출력 간의 텍스트 유사성을 평가합니다.

src/example-content-similarity.ts
import { runEvals } from '@mastra/core/evals'
import { createContentSimilarityScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'

const scorer = createContentSimilarityScorer()

const result = await runEvals({
data: [
{
input: 'Summarize the benefits of TypeScript',
groundTruth:
'TypeScript provides static typing, better tooling support, and improved code maintainability.',
},
{
input: 'What is machine learning?',
groundTruth:
'Machine learning is a subset of AI that enables systems to learn from data without explicit programming.',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
groundTruth: scorerResults[scorer.id].groundTruth,
})
},
})

console.log(result.scores)

runEvals에 관한 자세한 내용은 runEvals 레퍼런스를 참조하세요. 이 득점자를 Agent에 추가하려면 다음을 참조하세요.Scorers overview guide.

점수 해석
점수 해석에 대한 직접 링크

0과 1 사이의 유사성 점수:

  • 1.0: 완벽하게 일치하며 내용이 거의 동일합니다.
  • 0.7~0.9: 유사성은 높지만 단어 선택이나 구조에서는 약간의 차이가 있습니다.
  • 0.4~0.6: 중간 정도의 유사성, 눈에 띄는 변화가 있는 일반적인 중복.
  • 0.1~0.3: 유사성이 낮고 공통 요소가 적거나 의미가 공유됩니다.
  • 0.0: 유사성은 없으며 내용은 전혀 다릅니다.