본문으로 건너뛰기

키워드 적용 범위 득점자

그만큼createKeywordCoverageScorer()함수는 LLM의 출력이 입력의 중요한 키워드를 얼마나 잘 포함하는지 평가합니다. 일반적인 단어와 불용어를 무시하면서 키워드 존재 여부와 일치 여부를 분석합니다.

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

그만큼createKeywordCoverageScorer() function doesn't take any options.

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

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

runId:

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

preprocessStepResult:

object
추출된 키워드가 포함된 객체: { referenceKeywords: Set<string>, responseKeywords: Set<string> }

analyzeStepResult:

object
키워드 포함 범위가 포함된 객체: { totalKeywords: number, matchedKeywords: number }

score:

number
일치하는 키워드의 비율을 나타내는 포함 범위 점수(0~1)입니다.

.run()다음과 같은 형태로 결과를 반환합니다.

{
runId: string,
extractStepResult: {
referenceKeywords: Set<string>,
responseKeywords: Set<string>
},
analyzeStepResult: {
totalKeywords: number,
matchedKeywords: number
},
score: number
}

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

채점자는 키워드를 다음 기능과 일치시켜 키워드 적용 범위를 평가합니다.

  • 일반적인 단어 및 불용어 필터링(예: "the", "a", "and")
  • 대소문자를 구분하지 않는 일치
  • 단어 형태의 변형 처리
  • 전문 용어 및 복합어에 대한 특별 처리

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

  1. 입력 및 출력에서 ​​키워드를 처리합니다.
    • 일반적인 단어와 중지 단어를 필터링합니다.
    • 대소문자 및 단어 형식을 정규화합니다.
    • 특수 용어 및 합성어를 처리합니다.
  2. 키워드 적용 범위를 계산합니다.
    • 텍스트 간의 키워드를 일치시킵니다.
    • 성공적인 일치 횟수를 계산합니다.
    • 적용 비율을 계산합니다.

최종 점수:(matched_keywords / total_keywords) * scale

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

0과 1 사이의 적용 범위 점수:

  • 1.0: 전체 범위, 모든 키워드가 있습니다.
  • 0.7~0.9: 높은 커버리지, 대부분의 키워드 포함.
  • 0.4~0.6: 부분적으로 보도되었으며 일부 키워드가 존재합니다.
  • 0.1~0.3: 적용 범위가 낮고 일치하는 키워드가 거의 없습니다.
  • 0.0: 응답에 키워드가 포함되어 있지 않습니다.

특별한 경우
특별한 경우에 대한 직접 링크

채점자는 몇 가지 특별한 경우를 처리합니다.

  • 빈 입력/출력: 둘 다 비어 있으면 1.0 점수를 반환하고 하나만 비어 있으면 0.0 점수를 반환합니다.
  • 단일 단어: 단일 키워드로 처리됩니다.
  • 기술 용어: 복합 기술 용어(예: "React.js", "기계 학습")를 유지합니다.
  • 대소문자 차이: "JavaScript"는 "javascript"와 일치합니다.
  • 공통 단어: 유용한 키워드에 집중하기 위해 채점 시 무시됨

예에 대한 직접 링크

입력 쿼리와 Agent 응답 간의 키워드 적용 범위를 평가합니다.

src/example-keyword-coverage.ts
import { runEvals } from '@mastra/core/evals'
import { createKeywordCoverageScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'

const scorer = createKeywordCoverageScorer()

const result = await runEvals({
data: [
{
input: 'JavaScript frameworks like React and Vue',
},
{
input: 'TypeScript offers interfaces, generics, and type inference',
},
{
input:
'Machine learning models require data preprocessing, feature engineering, and hyperparameter tuning',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
})
},
})

console.log(result.scores)

runEvals에 대한 자세한 내용은 runEvals 참조를 확인하세요. 이 득점자를 Agent에 추가하려면 다음을 참조하세요.Scorers overview guide.