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.
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.
multilingual: true nello schema JSON.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.dict[str, T], dove le chiavi sono codici lingua ISO 639-1 e i valori corrispondono al tipo del campo.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.
I campi senza multilingual: true vengono restituiti come valori semplici. Identificatori, codici, URL, date e numeri in genere rimangono non multilingue.
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.
| Criteri | A Oggetto con chiave per lingua | B Array di elementi localizzati |
|---|---|---|
| Struttura | {"en": [...], "fr": [...]} | [{"en": "x", "fr": "y"}, ...] |
| Interroga una lingua | Accesso direttodata -> 'field' -> 'en' | Richiede iterazionejsonb_array_elements + extract |
| Aggiungi una lingua | Aggiunga una chiave all'oggetto | Aggiorna ogni elemento dell'array |
| Coerente con gli scalari | Sì — stesso pattern {"en": "...", "fr": "..."} | No — struttura diversa per le stringhe rispetto agli array |
| Portabilità del database | Tutti i principali database | Tutti i principali database |
Il formato con chiave per lingua è interrogabile in modo nativo in tutti i principali database che supportano colonne JSON.
Sono disponibili 40 lingue. Selezionatene una qualsiasi combinazione durante l'esecuzione di un enrichment.
enEnglishzhChinesehiHindiesSpanisharArabicfrFrenchbnBengaliptPortugueseruRussianjaJapanesedeGermanurUrduviVietnamesetrTurkishkoKoreantaTamilmrMarathiteTelugupaPunjabiyueCantoneseitItalianplPolishukUkrainianroRomaniannlDutchelGreekcsCzechhuHungariansvSwedishsrSerbianbgBulgarianhrCroatianskSlovakdaDanishfiFinnishnoNorwegianltLithuanianslSlovenianlvLatvianetEstonianIl flag multilingua è valido solo su determinati tipi di proprietà. L'editor dello schema lo applica automaticamente.
| Tipo Proprietà | Multilingua? | Formato di output |
|---|---|---|
| string | Sì | dict[str, str] |
| number / integer | Sì | dict[str, float] |
| boolean | Sì | dict[str, bool] |
| array di primitivi | Sì | dict[str, list[str]] |
| object | No | Contrassegna invece i singoli campi all'interno dell'oggetto |
| array di oggetti | No | Contrassegna invece i singoli campi all'interno degli elementi |
| $ref | No | Contrassegna invece i campi all'interno dell'entity referenziata |
Il supporto multilingua è integrato in ogni fase della pipeline di arricchimento.
Quando si fondono i risultati di più modelli, i campi multilingue vengono confrontati per lingua.
| Scenario | Risoluzione |
|---|---|
| I modelli concordano sull'inglese ma divergono sul francese | L'inglese passa direttamente; il francese viene risolto per lingua tramite voto a maggioranza o arbitrato |
| Un modello ha l'arabo, un altro no | Preferisci il valore non nullo (viene mantenuto l'arabo) |
| Gli array multilingua hanno lunghezza diversa per modello | Unione di tutti gli elementi per lingua |