LanguageDetector
LanguageDetector 是一个输入 Processor,用于识别输入文本的语言,并可选择将其翻译为目标语言,以便统一处理。此 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
是否在消息 metadata 中保留原始内容。适用于审计跟踪和调试
instructions?:
string
Agent 的自定义检测 instructions。如未提供,则使用默认 instructions
lastMessageOnly?:
boolean
是否只检测批次中最新消息的语言,而不检查每条消息。使用此选项可在对话历史增长时保持 LLM 调用次数不变。
minTextLength?:
number
执行检测所需的最小文本长度。短文本的语言检测通常不可靠
includeDetectionDetails?:
boolean
是否在日志中包含详细的检测信息
translationQuality?:
'speed' | 'quality' | 'balanced'
翻译质量偏好:'speed' 优先考虑翻译速度,'quality' 优先考虑准确性,'balanced' 在速度和质量之间取得平衡
providerOptions?:
ProviderOptions
传给内部检测 Agent 的 Provider 特定选项。可用它控制模型行为,例如 thinking model 的 reasoning effort(例如
{ openai: { reasoningEffort: 'low' } })返回值返回值的直接链接
id:
string
Processor 标识符,设为 'language-detector'
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',
}),
],
})