본문으로 건너뛰기

답변 관련성 득점자

그만큼createAnswerRelevancyScorer()함수는 다음 속성을 가진 단일 옵션 개체를 허용합니다.

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

model:

LanguageModel
관련성 평가에 사용되는 Model의 구성입니다.

uncertaintyWeight:

number
= 0.3
채점에서 'unsure' 판정에 부여하는 가중치입니다(0~1).

scale:

number
= 1
최대 점수 값입니다.

이 함수는 MastraScorer 클래스의 인스턴스를 반환합니다. .run() 메서드는 다른 채점기와 동일한 입력을 받지만(MastraScorer 레퍼런스 참조), 반환값에는 아래에 설명된 LLM 관련 필드가 포함됩니다.

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

runId:

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

score:

number
관련성 점수입니다(0~scale, 기본값 0~1).

preprocessPrompt:

string
전처리 단계에서 LLM으로 전송된 Prompt입니다(선택 사항).

preprocessStepResult:

object
추출된 문장을 포함하는 객체입니다: { statements: string[] }

analyzePrompt:

string
분석 단계에서 LLM으로 전송된 Prompt입니다(선택 사항).

analyzeStepResult:

object
결과를 포함하는 객체입니다: { results: Array<{ result: 'yes' | 'unsure' | 'no', reason: string }> }

generateReasonPrompt:

string
근거 생성 단계에서 LLM으로 전송된 Prompt입니다(선택 사항).

reason:

string
점수에 대한 설명입니다.

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

채점자는 질의-답변 정렬을 통해 관련성을 평가하지만 사실의 정확성은 고려하지 않고 완전성과 세부 수준을 고려합니다.

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

  1. 명령문 전처리:
    • 컨텍스트를 유지하면서 출력을 유용한 명령문으로 나눕니다.
  2. 관련성 분석:
    • 각 문은 다음과 같이 평가됩니다.
      • "yes": 직접 일치의 전체 가중치
      • "unsure": 대략적인 일치를 위한 부분 가중치(기본값: 0.3)
      • "아니요": 관련 없는 콘텐츠에 대해서는 가중치가 0입니다.
  3. 점수 계산:
    • ((direct + uncertainty * partial) / total_statements) * scale

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

0과 1 사이의 관련성 점수:

  • 1.0: 응답은 관련성 있고 집중된 정보로 쿼리에 완전히 답변합니다.
  • 0.7~0.9: 응답은 대부분 쿼리에 대한 답변이지만 관련이 없는 사소한 콘텐츠가 포함될 수 있습니다.
  • 0.4~0.6: 응답은 관련 정보와 관련 없는 정보를 혼합하여 쿼리에 부분적으로 응답합니다.
  • 0.1~0.3: 응답에 최소한의 관련 콘텐츠가 포함되어 있으며 쿼리 의도와 크게 일치하지 않습니다.
  • 0.0: 응답이 전혀 관련이 없으며 쿼리에 응답하지 않습니다.

예에 대한 직접 링크

다양한 시나리오 전반에 걸쳐 Agent 응답의 관련성을 평가합니다.

src/example-answer-relevancy.ts
import { runEvals } from '@mastra/core/evals'
import { createAnswerRelevancyScorer } from '@mastra/evals/scorers/prebuilt'
import { myAgent } from './agent'

const scorer = createAnswerRelevancyScorer({ model: 'openai/gpt-5.6-sol' })

const result = await runEvals({
data: [
{
input: 'What are the health benefits of regular exercise?',
},
{
input: 'What should a healthy breakfast include?',
},
{
input: 'What are the benefits of meditation?',
},
],
scorers: [scorer],
target: myAgent,
onItemComplete: ({ scorerResults }) => {
console.log({
score: scorerResults[scorer.id].score,
reason: scorerResults[scorer.id].reason,
})
},
})

console.log(result.scores)

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