Arricchimento multilingua - Documentazione di Entity Enricher

Arricchimento multilingua

Entity Enricher può produrre risultati di arricchimento in un massimo di 40 lingue contemporaneamente. I campi multilingua vengono memorizzati come oggetti JSON con chiave per lingua, un formato portabile, interrogabile e compatibile con ogni principale database.

Editor di schema: interruttore multilingua

Nell'editor dello schema, attivi il flag multilingua su qualsiasi proprietà di tipo stringa o array di stringhe. Quando è abilitato, l'LLM restituisce i valori racchiusi in un oggetto con chiavi di lingua anziché un valore semplice.

Come funziona

1
Contrassegna i campi come multilingue
Nell'editor dello schema, selezioni la casella multilingua sulle proprietà di tipo stringa o array. Il flag viene memorizzato come multilingual: true nello schema JSON.
2
Seleziona le lingue di destinazione
Nelle opzioni della barra laterale, scegliere una o più lingue tra le 40 supportate. Il prompt di arricchimento indica all'LLM di produrre valori in ciascuna lingua selezionata. La prima lingua selezionata è la lingua principale: viene evidenziata con un badge “Principale” ed è utilizzata per tutti i campi stringa non multilingua (descrizioni, nomi, ecc. non contrassegnati come multilingual: true). Utilizzare il pulsante su qualsiasi altro chip per promuoverlo a principale. Il backend filtra inoltre eventuali chiavi di lingua estranee che l'LLM potrebbe emettere e che non rientrano nella selezione.
3
L'LLM restituisce un output indicizzato per lingua
Il modello Pydantic dinamico incapsula i campi multilingue come dict[str, T], dove le chiavi sono codici lingua ISO 639-1 e i valori corrispondono al tipo del campo.

Formato dei dati

I valori multilingua vengono memorizzati come oggetti JSON con i codici di lingua come chiavi. Questo formato è stato scelto rispetto alle alternative per la sua portabilità, interrogabilità ed efficienza di archiviazione.

Stringa multilingua
Proprietà dello schema
"description": {
"type": "string",
"multilingual": true
}
Output di arricchimento
"description": {
"en": "A global pharma company",
"fr": "Une entreprise pharma mondiale",
"ar": "شركة أدوية عالمية"
}
Array multilingua
Proprietà dello schema
"indications": {
"type": "array",
"items": { "type": "string" },
"multilingual": true
}
Output di arricchimento
"indications": {
"en": ["pain relief", "fever"],
"fr": ["anti-douleur", "fièvre"],
"ar": ["تخفيف الألم", "حمى"]
}
Campi non multilingue

I campi senza multilingual: true vengono restituiti come valori semplici. Identificatori, codici, URL, date e numeri in genere rimangono non multilingue.

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

Perché questo formato?

Esistono due approcci per gli array multilingua. Entity Enricher utilizza il Formato A (oggetto con chiave per lingua) perché è l'unico formato che funziona così com'è in tutti i principali database senza trasformazioni.

CriteriA Oggetto con chiave per linguaB Array di elementi localizzati
Struttura{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
Interroga una linguaAccesso diretto
data -> 'field' -> 'en'
Richiede iterazione
jsonb_array_elements + extract
Aggiungi una linguaAggiunga una chiave all'oggettoAggiorna ogni elemento dell'array
Coerente con gli scalari — stesso pattern {"en": "...", "fr": "..."}No — struttura diversa per le stringhe rispetto agli array
Portabilità del databaseTutti i principali databaseTutti i principali database

Esempi di query sul database

Il formato con chiave per lingua è interrogabile in modo nativo in tutti i principali database che supportano colonne 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;

Lingue supportate

Sono disponibili 40 lingue. Selezionatene una qualsiasi combinazione durante l'esecuzione di un enrichment.

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

Quali campi dovrebbero essere multilingua?

Contrassegna come multilingue
  • Nomi (azienda, prodotto, città, paese)
  • Descrizioni e riepiloghi
  • Termini medici/scientifici
  • Etichette di stato ("Approvato", "Attivo")
  • Etichette e tag di categoria
  • Istruzioni e raccomandazioni
Mantieni non multilingue
  • Identificatori tecnici (UUID, ID)
  • Codici standardizzati (ATC, CAS, ISO)
  • Acronimi (FDA, EMA, WHO)
  • Numeri, date, percentuali
  • URL, email, numeri di telefono
  • Flag booleani

Tipi di campo validi

Il flag multilingua è valido solo su determinati tipi di proprietà. L'editor dello schema lo applica automaticamente.

Tipo ProprietàMultilingua?Formato di output
stringdict[str, str]
number / integerdict[str, float]
booleandict[str, bool]
array di primitividict[str, list[str]]
objectNoContrassegna invece i singoli campi all'interno dell'oggetto
array di oggettiNoContrassegna invece i singoli campi all'interno degli elementi
$refNoContrassegna invece i campi all'interno dell'entity referenziata

Integrazione della pipeline di arricchimento

Il supporto multilingua è integrato in ogni fase della pipeline di arricchimento.

Schema
multilingual: true
sui campi selezionati
Generatore di prompt
Inserisce istruzioni di
lingua + esempi
Modello dinamico
str → dict[str, str]
Convalida Pydantic
Archiviazione JSONB
Oggetti con chiave
per lingua nell'output
Multi-expertise domain: Quando si utilizza la strategia multi-expertise domain, ogni expertise domain riceve le istruzioni multilingue nel proprio prompt. I campi vengono tradotti in modo indipendente per ciascun expertise domain, quindi uniti nell'output finale.

Campi multilingua nella fusione

Quando si fondono i risultati di più modelli, i campi multilingue vengono confrontati per lingua.

ScenarioRisoluzione
I modelli concordano sull'inglese ma divergono sul franceseL'inglese passa direttamente; il francese viene risolto per lingua tramite voto a maggioranza o arbitrato
Un modello ha l'arabo, un altro noPreferisci il valore non nullo (viene mantenuto l'arabo)
Gli array multilingua hanno lunghezza diversa per modelloUnione di tutti gli elementi per lingua