Enriquecimiento multilingüe - Documentación de Entity Enricher

Enriquecimiento multilingüe

Entity Enricher puede producir resultados de enriquecimiento en hasta 40 idiomas simultáneamente. Los campos multilingües se almacenan como objetos JSON indexados por idioma, un formato portátil, consultable y compatible con todas las bases de datos principales.

Editor de esquemas: alternar multilingüe

En el editor de esquemas, active la marca multilingüe en cualquier propiedad de tipo cadena o array de cadenas. Cuando está habilitada, el LLM devuelve los valores envueltos en un objeto con clave de idioma en lugar de un valor simple.

Cómo funciona

1
Marcar campos como multilingües
En el editor de esquemas, marque la casilla multilingüe en las propiedades de tipo cadena o array. La marca se almacena como multilingual: true en el esquema JSON.
2
Seleccione los idiomas de destino
En las opciones de la barra lateral, elija uno o varios idiomas de los 40 idiomas admitidos. El prompt de enriquecimiento indica al LLM que produzca valores en cada idioma seleccionado. El primer idioma seleccionado es el idioma principal: se resalta con una insignia «Principal» y se utiliza para todos los campos de texto no multilingües (descripciones, nombres, etc. que no estén marcados como multilingual: true). Use el botón en cualquier otra ficha para promoverlo como principal. El backend también filtra cualquier clave de idioma no deseada que el LLM pueda emitir y que no esté en su selección.
3
El LLM devuelve una salida indexada por idioma
El modelo dinámico de Pydantic envuelve los campos multilingües como dict[str, T], donde las claves son códigos de idioma ISO 639-1 y los valores coinciden con el tipo del campo.

Formato de datos

Los valores multilingües se almacenan como objetos JSON con códigos de idioma como claves. Este formato se eligió frente a otras alternativas por su portabilidad, facilidad de consulta y eficiencia de almacenamiento.

Cadena multilingüe
Propiedad del esquema
"description": {
"type": "string",
"multilingual": true
}
Salida del enriquecimiento
"description": {
"en": "A global pharma company",
"fr": "Une entreprise pharma mondiale",
"ar": "شركة أدوية عالمية"
}
Array multilingüe
Propiedad del esquema
"indications": {
"type": "array",
"items": { "type": "string" },
"multilingual": true
}
Salida del enriquecimiento
"indications": {
"en": ["pain relief", "fever"],
"fr": ["anti-douleur", "fièvre"],
"ar": ["تخفيف الألم", "حمى"]
}
Campos no multilingües

Los campos sin multilingual: true se devuelven como valores simples. Los identificadores, códigos, URL, fechas y números suelen permanecer no multilingües.

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

¿Por qué este formato?

Existen dos enfoques para las matrices multilingües. Entity Enricher utiliza el Formato A (objeto indexado por idioma) porque es el único formato que funciona tal cual en todas las bases de datos principales sin necesidad de transformación.

CriteriosA Objeto indexado por idiomaB Array de elementos localizados
Estructura{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
Consultar un idiomaAcceso directo
data -> 'field' -> 'en'
Requiere iteración
jsonb_array_elements + extract
Agregar un idiomaAñada una clave al objetoActualizar todos los elementos del array
Coherente con los escalares — mismo patrón {"en": "...", "fr": "..."}No — forma diferente para cadenas frente a arrays
Portabilidad de la base de datosTodas las bases de datos principalesTodas las bases de datos principales

Ejemplos de consultas a bases de datos

El formato con clave de idioma se puede consultar de forma nativa en todas las principales bases de datos que admiten columnas 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;

Idiomas admitidos

Hay 40 idiomas disponibles. Seleccione cualquier combinación al ejecutar un enriquecimiento.

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

¿Qué campos deben ser multilingües?

Marcar como multilingüe
  • Nombres (empresa, producto, ciudad, país)
  • Descripciones y resúmenes
  • Términos médicos/científicos
  • Etiquetas de estado (“Aprobado”, “Activo”)
  • Etiquetas y marcas de categoría
  • Instrucciones y recomendaciones
Mantener no multilingüe
  • Identificadores técnicos (UUID, ID)
  • Códigos estandarizados (ATC, CAS, ISO)
  • Siglas (FDA, EMA, WHO)
  • Números, fechas, porcentajes
  • URL, correos electrónicos, números de teléfono
  • Indicadores booleanos

Tipos de campo válidos

El indicador multilingüe solo es válido en ciertos tipos de propiedad. El editor de esquemas lo aplica automáticamente.

Tipo de propiedad¿Multilingüe?Formato de salida
stringdict[str, str]
number / integerdict[str, float]
booleandict[str, bool]
array de primitivosdict[str, list[str]]
objectNoMarcar campos individuales dentro del objeto en su lugar
array de objetosNoMarcar campos individuales dentro de los elementos en su lugar
$refNoMarcar campos dentro de la entity referenciada en su lugar

Integración del pipeline de enriquecimiento

La compatibilidad multilingüe está integrada en cada etapa del pipeline de enriquecimiento.

Esquema
multilingual: true
en los campos seleccionados
Constructor de prompts
Inyecta instrucciones
de idioma + ejemplos
Modelo dinámico
str → dict[str, str]
Validación con Pydantic
Almacenamiento JSONB
Objetos indexados por idioma
en la salida
Multiespecialización: Al usar la estrategia de multiespecialización, cada dominio de especialización recibe las instrucciones multilingües en su propio prompt. Los campos se traducen de forma independiente por especialización y luego se fusionan en el resultado final.

Campos multilingües en la fusión

Al fusionar resultados de varios models, los campos multilingües se comparan por idioma.

EscenarioResolución
Los modelos coinciden en inglés pero difieren en francésEl inglés pasa directamente; el francés se resuelve por idioma mediante voto mayoritario o arbitraje
Un modelo tiene árabe, otro noPreferir el valor no nulo (se conserva el árabe)
Los arrays multilingües difieren en longitud según el modeloUnión de todos los elementos por idioma