Enrichissement multilingue - Documentation Entity Enricher

Enrichissement multilingue

Entity Enricher peut produire des résultats d'enrichissement dans jusqu'à 40 langues simultanément. Les champs multilingues sont stockés sous forme d'objets JSON indexés par langue — un format portable, interrogeable et compatible avec toutes les grandes bases de données.

Éditeur de schéma : bascule multilingue

Dans l'éditeur de schéma, activez l'indicateur multilingue sur toute propriété de type chaîne ou tableau de chaînes. Une fois activé, le LLM renvoie des valeurs encapsulées dans un objet indexé par langue au lieu d'une valeur simple.

Fonctionnement

1
Marquer les champs comme multilingues
Dans l'éditeur de schéma, cochez la case multilingue sur les propriétés de type chaîne ou tableau. L'indicateur est stocké sous la forme multilingual: true dans le schéma JSON.
2
Sélectionnez les langues cibles
Dans les options de la barre latérale, choisissez une ou plusieurs langues parmi les 40 langues prises en charge. Le prompt d'enrichissement demande au LLM de produire des valeurs dans chaque langue sélectionnée. La première langue sélectionnée est la langue principale : elle est mise en évidence par un badge « Principale » et est utilisée pour tous les champs de chaîne non multilingues (descriptions, noms, etc. non marqués multilingual: true). Utilisez le bouton sur toute autre puce pour la promouvoir comme langue principale. Le backend filtre également les clés de langue parasites que le LLM pourrait émettre en dehors de votre sélection.
3
Le LLM renvoie une sortie indexée par langue
Le modèle Pydantic dynamique encapsule les champs multilingues sous forme de dict[str, T], où les clés sont des codes de langue ISO 639-1 et les valeurs correspondent au type du champ.

Format des données

Les valeurs multilingues sont stockées sous forme d'objets JSON avec les codes de langue comme clés. Ce format a été retenu parmi d'autres pour sa portabilité, sa facilité d'interrogation et son efficacité de stockage.

Chaîne multilingue
Propriété du schéma
"description": {
"type": "string",
"multilingual": true
}
Sortie d'enrichissement
"description": {
"en": "A global pharma company",
"fr": "Une entreprise pharma mondiale",
"ar": "شركة أدوية عالمية"
}
Tableau multilingue
Propriété du schéma
"indications": {
"type": "array",
"items": { "type": "string" },
"multilingual": true
}
Sortie d'enrichissement
"indications": {
"en": ["pain relief", "fever"],
"fr": ["anti-douleur", "fièvre"],
"ar": ["تخفيف الألم", "حمى"]
}
Champs non multilingues

Les champs sans multilingual: true sont renvoyés comme valeurs simples. Les identifiants, codes, URL, dates et nombres restent généralement non multilingues.

"atc_code": "N02BE01",
"founded_year": 1973,
"website": "https://example.com"

Pourquoi ce format ?

Deux approches existent pour les tableaux multilingues. Entity Enricher utilise le Format A (objet indexé par langue), car c'est le seul format qui fonctionne tel quel dans toutes les principales bases de données sans transformation.

CritèresA Objet indexé par langueB Tableau d'éléments localisés
Structure{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
Interroger une seule langueAccès direct
data -> 'field' -> 'en'
Nécessite une itération
jsonb_array_elements + extract
Ajouter une langueAjoutez une clé à l'objetMettre à jour chaque élément du tableau
Cohérent avec les scalairesOui — même motif {"en": "...", "fr": "..."}Non — structure différente pour les chaînes et les tableaux
Portabilité de la base de donnéesToutes les principales bases de donnéesToutes les principales bases de données

Exemples de requêtes de base de données

Le format indexé par langue est nativement interrogeable dans toutes les grandes bases de données prenant en charge les colonnes JSON.

PostgreSQL
-- Get English description
SELECT structured_output -> 'description' -> 'en' FROM enrichment_records;
-- Search within a multilingual array
SELECT * FROM enrichment_records
WHERE structured_output -> 'indications' -> 'en' ? 'pain relief';
MySQL 8+
-- Get French description
SELECT JSON_EXTRACT(structured_output, '$.description.fr') FROM enrichment_records;
MongoDB
// Project only Arabic values
db.records.find({}, { "description.ar": 1, "indications.ar": 1 })
SQL Server
-- Get German description
SELECT JSON_VALUE(structured_output, '$.description.de') FROM enrichment_records;

Langues prises en charge

40 langues sont disponibles. Sélectionnez n'importe quelle combinaison lors de l'exécution d'un enrichissement.

Langues globales
enEnglish
zhChinese
hiHindi
esSpanish
arArabic
frFrench
bnBengali
ptPortuguese
ruRussian
jaJapanese
deGerman
urUrdu
viVietnamese
trTurkish
koKorean
taTamil
mrMarathi
teTelugu
paPunjabi
yueCantonese
itItalian
Langues européennes
plPolish
ukUkrainian
roRomanian
nlDutch
elGreek
csCzech
huHungarian
svSwedish
srSerbian
bgBulgarian
hrCroatian
skSlovak
daDanish
fiFinnish
noNorwegian
ltLithuanian
slSlovenian
lvLatvian
etEstonian

Quels champs doivent être multilingues ?

Marquer comme multilingue
  • Noms (entreprise, produit, ville, pays)
  • Descriptions et résumés
  • Termes médicaux/scientifiques
  • Libellés de statut (« Approuvé », « Actif »)
  • Libellés de catégorie et étiquettes
  • Instructions et recommandations
Conserver non multilingue
  • Identifiants techniques (UUID, ID)
  • Codes normalisés (ATC, CAS, ISO)
  • Acronymes (FDA, EMA, WHO)
  • Nombres, dates, pourcentages
  • URL, e-mails, numéros de téléphone
  • Indicateurs booléens

Types de champs valides

L'indicateur multilingue n'est valide que sur certains types de propriétés. L'éditeur de schéma applique cette règle automatiquement.

Type de propriétéMultilingue ?Format de sortie
stringOuidict[str, str]
number / integerOuidict[str, float]
booleanOuidict[str, bool]
tableau de primitivesOuidict[str, list[str]]
objectNonMarquer plutôt les champs individuels à l'intérieur de l'objet
tableau d'objetsNonMarquer plutôt les champs individuels à l'intérieur des éléments
$refNonMarquer plutôt les champs à l'intérieur de l'entité référencée

Intégration au pipeline d'enrichissement

La prise en charge multilingue est intégrée à chaque étape du pipeline d'enrichissement.

Schéma
multilingual: true
sur les champs sélectionnés
Générateur de prompts
Injecte les instructions de
langue + des exemples
Modèle dynamique
str → dict[str, str]
Validation Pydantic
Stockage JSONB
Objets indexés
par langue en sortie
Multi-expertise : avec la stratégie multi-expertise, chaque domaine d'expertise reçoit les instructions multilingues dans son propre prompt. Les champs sont traduits indépendamment par expertise, puis fusionnés dans le résultat final.

Champs multilingues dans la fusion

Lors de la fusion des résultats de plusieurs modèles, les champs multilingues sont comparés par langue.

ScénarioRésolution
Les modèles s'accordent sur l'anglais mais divergent sur le françaisL'anglais passe tel quel ; le français est résolu par langue via vote majoritaire ou arbitrage
Un modèle prend en charge l'arabe, un autre nonPréférer la valeur non nulle (l'arabe est conservé)
Les tableaux multilingues diffèrent en longueur selon le modèleUnion de tous les éléments par langue