メインコンテンツへ移動

LanguageDetector

LanguageDetector は、入力テキストの言語を特定し、必要に応じて対象言語へ翻訳して一貫した処理を実現する 入力 Processor です。受信メッセージの言語を検出し、対象言語への自動翻訳を含む柔軟な方法で多言語コンテンツを処理することで、すべてのコンテンツを対象言語で処理し、言語の一貫性を保てます。

使用例
使用例への直接リンク

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 のモデル設定

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 固有のオプション。思考モデルの推論量など、モデルの動作を制御するために使用します(例:{ openai: { reasoningEffort: 'low' } }

戻り値
戻り値への直接リンク

id:

string
'language-detector' に設定された Processor の識別子

name?:

string
任意の Processor 表示名

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',
}),
],
})