LanguageDetector
LanguageDetector est un Processor d’entrée qui identifie la langue du texte reçu et peut le traduire dans une langue cible afin d’assurer un traitement cohérent. Ce Processor contribue à préserver la cohérence linguistique en détectant la langue des messages entrants et en proposant des stratégies flexibles pour traiter le contenu multilingue, notamment la traduction automatique afin que tout le contenu soit traité dans la langue cible.
Exemple d’utilisationLien direct vers Exemple d’utilisation
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,
})
Paramètres du constructeurLien direct vers Paramètres du constructeur
options:
Options
Options de configuration de la détection de langue et de la traduction
Options
model:
MastraModelConfig
Configuration du modèle de l’Agent de détection et de traduction
targetLanguages?:
string[]
Langue(s) cible(s) du projet. Si du contenu est détecté dans une autre langue, il peut être traduit. Peut être un nom de langue ('English') ou un code ISO ('en')
threshold?:
number
Seuil de confiance de la détection de langue (0 à 1). Le traitement n’a lieu que lorsque le niveau de confiance de la détection dépasse ce seuil
strategy?:
'detect' | 'translate' | 'block' | 'warn'
Stratégie appliquée lorsqu’une langue non cible est détectée : 'detect' détecte uniquement la langue, 'translate' traduit automatiquement dans la langue cible, 'block' rejette le contenu qui n’est pas dans la langue cible et 'warn' enregistre un avertissement mais laisse passer le contenu
preserveOriginal?:
boolean
Indique si le contenu d’origine doit être conservé dans les métadonnées du message. Utile pour les pistes d’audit et le débogage
instructions?:
string
Instructions de détection personnalisées destinées à l’Agent. Si elles ne sont pas fournies, les instructions par défaut sont utilisées
lastMessageOnly?:
boolean
Indique si la langue doit être détectée uniquement pour le message le plus récent du lot, au lieu de vérifier chaque message. Utilisez cette option pour maintenir constant le nombre d’appels au LLM à mesure que l’historique de la conversation s’allonge.
minTextLength?:
number
Longueur minimale du texte requise pour effectuer la détection. Les textes courts donnent souvent des résultats peu fiables pour la détection de langue
includeDetectionDetails?:
boolean
Indique si les informations détaillées de détection doivent être incluses dans les logs
translationQuality?:
'speed' | 'quality' | 'balanced'
Préférence de qualité de la traduction : 'speed' privilégie la rapidité, 'quality' privilégie la précision et 'balanced' établit un équilibre entre rapidité et qualité
providerOptions?:
ProviderOptions
Options propres au Provider transmises à l’Agent de détection interne. Utilisez-les pour contrôler le comportement du modèle, par exemple l’effort de raisonnement des modèles de réflexion (par exemple,
{ openai: { reasoningEffort: 'low' } })Valeur renvoyéeLien direct vers Valeur renvoyée
id:
string
Identifiant du Processor défini sur 'language-detector'
name?:
string
Nom d’affichage facultatif du Processor
processInput:
(args: { messages: MastraDBMessage[]; abort: (reason?: string) => never; tracingContext?: TracingContext }) => Promise<MastraDBMessage[]>
Traite les messages d’entrée afin de détecter leur langue et, éventuellement, de traduire leur contenu avant de l’envoyer au LLM
Exemple d’utilisation avancéeLien direct vers Exemple d’utilisation avancée
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',
}),
],
})