본문으로 건너뛰기

언어 감지기

그만큼LanguageDetector입력 프로세서입력 텍스트의 언어를 식별하고 선택적으로 일관된 처리를 위해 이를 대상 언어로 번역합니다. 이 프로세서는 수신 메시지의 언어를 감지하고 모든 콘텐츠가 대상 언어로 처리되도록 하는 자동 번역을 포함하여 다국어 콘텐츠 처리를 위한 유연한 전략을 제공함으로써 언어 일관성을 유지하는 데 도움이 됩니다.

사용예
사용예에 대한 직접 링크

import { LanguageDetector } from '@mastra/core/processors'

const processor = new LanguageDetector({
model: 'openrouter/openai/gpt-oss-safeguard-20b',
targetLanguages: ['English', 'en'],
threshold: 0.8,
strategy: 'translate',
lastMessageOnly: true,
})

생성자 매개변수
생성자 매개변수에 대한 직접 링크

options:

Options
언어 감지 및 번역 구성 옵션
Options

model:

MastraModelConfig
감지/번역 Agent의 Model 구성

targetLanguages?:

string[]
프로젝트의 대상 언어입니다. 콘텐츠가 다른 언어로 감지되면 번역할 수 있습니다. 언어 이름('English') 또는 ISO 코드('en')를 사용할 수 있습니다.

threshold?:

number
언어 감지의 신뢰도 임계값(0~1)입니다. 감지 신뢰도가 이 임계값을 초과할 때만 처리합니다.

strategy?:

'detect' | 'translate' | 'block' | 'warn'
대상 외 언어가 감지되었을 때의 전략입니다. 'detect'는 언어만 감지하고, 'translate'는 대상 언어로 자동 번역하며, 'block'은 대상 언어가 아닌 콘텐츠를 거부하고, 'warn'은 경고를 기록하지만 통과시킵니다.

preserveOriginal?:

boolean
메시지 메타데이터에 원본 콘텐츠를 보존할지 여부입니다. 감사 추적 및 디버깅에 유용합니다.

instructions?:

string
Agent의 사용자 정의 감지 지침입니다. 제공하지 않으면 기본 지침을 사용합니다.

lastMessageOnly?:

boolean
모든 메시지를 확인하는 대신 배치에서 가장 최근 메시지의 언어만 감지할지 여부입니다. 대화 기록이 늘어나도 LLM 호출 수가 일정하게 유지되도록 하려면 사용하세요.

minTextLength?:

number
감지를 수행할 최소 텍스트 길이입니다. 짧은 텍스트는 언어 감지의 신뢰도가 낮은 경우가 많습니다.

includeDetectionDetails?:

boolean
로그에 자세한 감지 정보를 포함할지 여부

translationQuality?:

'speed' | 'quality' | 'balanced'
번역 품질 기본 설정입니다. 'speed'는 빠른 번역을, 'quality'는 정확성을 우선하며, 'balanced'는 속도와 품질의 균형을 맞춥니다.

providerOptions?:

ProviderOptions
내부 감지 Agent에 전달되는 Provider별 옵션입니다. 사고 Model의 추론 노력 수준과 같은 Model 동작을 제어할 때 사용하세요(예: { openai: { reasoningEffort: 'low' } }).

보고
보고에 대한 직접 링크

id:

string
'language-detector'로 설정되는 프로세서 식별자

name?:

string
선택적 프로세서 표시 이름

processInput:

(args: { messages: MastraDBMessage[]; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<MastraDBMessage[]>
LLM에 보내기 전에 입력 메시지를 처리하여 언어를 감지하고 선택적으로 콘텐츠를 번역합니다.

확장된 사용 예
확장된 사용 예에 대한 직접 링크

src/mastra/agents/multilingual-agent.ts
import { Agent } from '@mastra/core/agent'
import { LanguageDetector } from '@mastra/core/processors'

export const agent = new Agent({
id: 'multilingual-agent',
name: 'multilingual-agent',
instructions: 'You are a helpful assistant',
model: 'openai/gpt-5.6-sol',
inputProcessors: [
new LanguageDetector({
model: 'openrouter/openai/gpt-oss-safeguard-20b',
targetLanguages: ['English', 'en'],
threshold: 0.8,
strategy: 'translate',
preserveOriginal: true,
instructions:
'Detect language and translate non-English content to English while preserving original intent',
minTextLength: 10,
includeDetectionDetails: true,
translationQuality: 'quality',
}),
],
})