> Discover all available pages from the documentation index: https://mastra.zisheng.pro/llms.txt # LanguageDetector `LanguageDetector` 是一个**输入 Processor**,用于识别输入文本的语言,并可选择将其翻译为目标语言,以便统一处理。此 Processor 通过检测传入消息的语言,并提供灵活的多语言内容处理策略来帮助保持语言一致性,其中包括自动翻译,以确保所有内容都使用目标语言进行处理。 ## 用法示例 ```typescript 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 的模型配置 **options.targetLanguages** (`string[]`): 项目的目标语言。如果检测到内容使用其他语言,则可以进行翻译。可以使用语言名称('English')或 ISO 代码('en') **options.threshold** (`number`): 语言检测的置信度阈值(0-1)。仅当检测置信度超过此阈值时才进行处理 **options.strategy** (`'detect' | 'translate' | 'block' | 'warn'`): 检测到非目标语言时采用的策略:'detect' 仅检测语言,'translate' 自动翻译为目标语言,'block' 拒绝非目标语言的内容,'warn' 记录警告但允许内容通过 **options.preserveOriginal** (`boolean`): 是否在消息 metadata 中保留原始内容。适用于审计跟踪和调试 **options.instructions** (`string`): Agent 的自定义检测 instructions。如未提供,则使用默认 instructions **options.lastMessageOnly** (`boolean`): 是否只检测批次中最新消息的语言,而不检查每条消息。使用此选项可在对话历史增长时保持 LLM 调用次数不变。 **options.minTextLength** (`number`): 执行检测所需的最小文本长度。短文本的语言检测通常不可靠 **options.includeDetectionDetails** (`boolean`): 是否在日志中包含详细的检测信息 **options.translationQuality** (`'speed' | 'quality' | 'balanced'`): 翻译质量偏好:'speed' 优先考虑翻译速度,'quality' 优先考虑准确性,'balanced' 在速度和质量之间取得平衡 **options.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`): 在发送给 LLM 前处理输入消息,以检测语言并可选择翻译内容 ## 扩展用法示例 ```typescript 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', }), ], }) ``` ## 相关内容 - [Guardrails](https://mastra.zisheng.pro/docs/agents/guardrails)