Enriquecimento Multilingue - Documentação do Entity Enricher

Enriquecimento Multilingue

O Entity Enricher pode produzir resultados de enriquecimento em até 40 idiomas em simultâneo. Os campos multilingues são armazenados como objetos JSON indexados por idioma — um formato portável, consultável e compatível com todas as principais bases de dados.

Editor de Esquemas: Alternância Multilingue

No editor de schemas, ative o sinalizador multilingue em qualquer propriedade de string ou array de strings. Quando ativado, o LLM devolve os valores envolvidos num objeto indexado por idioma em vez de um valor simples.

Como Funciona

1
Marcar campos como multilingues
No editor de schemas, marque a caixa de verificação multilingue nas propriedades de string ou array. O sinalizador é armazenado como multilingual: true no schema JSON.
2
Selecione os idiomas de destino
Nas opções da barra lateral, escolha um ou mais idiomas entre os 40 idiomas suportados. O prompt de enriquecimento instrui o LLM a produzir valores em cada idioma selecionado. O primeiro idioma selecionado é o idioma principal: é destacado com um badge “Principal” e é usado para todos os campos de string não multilíngues (descrições, nomes, etc. que não estejam marcados como multilingual: true). Use o botão em qualquer outro chip para o promover a principal. O backend também filtra quaisquer chaves de idioma perdidas que o LLM possa emitir e que não estejam na sua seleção.
3
O LLM devolve saída indexada por idioma
O modelo Pydantic dinâmico encapsula os campos multilíngues como dict[str, T], em que as chaves são códigos de idioma ISO 639-1 e os valores correspondem ao tipo do campo.

Formato dos Dados

Os valores multilingues são armazenados como objetos JSON com códigos de idioma como chaves. Este formato foi escolhido em detrimento de alternativas pela sua portabilidade, capacidade de consulta e eficiência de armazenamento.

String Multilingue
Propriedade do esquema
"description": {
"type": "string",
"multilingual": true
}
Saída do enriquecimento
"description": {
"en": "A global pharma company",
"fr": "Une entreprise pharma mondiale",
"ar": "شركة أدوية عالمية"
}
Array Multilingue
Propriedade do esquema
"indications": {
"type": "array",
"items": { "type": "string" },
"multilingual": true
}
Saída do enriquecimento
"indications": {
"en": ["pain relief", "fever"],
"fr": ["anti-douleur", "fièvre"],
"ar": ["تخفيف الألم", "حمى"]
}
Campos não multilingues

Os campos sem multilingual: true são devolvidos como valores simples. Identificadores, códigos, URLs, datas e números normalmente permanecem não multilingues.

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

Porquê este formato?

Existem duas abordagens para arrays multilingues. O Entity Enricher usa o Formato A (objeto indexado por idioma) porque é o único formato que funciona tal como está em todas as principais bases de dados sem transformação.

CritériosA Objeto indexado por idiomaB Array de itens localizados
Estrutura{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
Consultar um idiomaAcesso direto
data -> 'field' -> 'en'
Requer iteração
jsonb_array_elements + extract
Adicionar um idiomaAdicione uma chave ao objetoAtualizar todos os itens no array
Coerente com escalaresSim — mesmo padrão {"en": "...", "fr": "..."}Não — formato diferente para strings vs. arrays
Portabilidade da base de dadosTodas as principais bases de dadosTodas as principais bases de dados

Exemplos de Consulta à Base de Dados

O formato indexado por idioma é consultável nativamente em todas as principais bases de dados que suportam colunas 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 suportados

Estão disponíveis 40 idiomas. Selecione qualquer combinação ao executar um enriquecimento.

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

Que campos devem ser multilingues?

Marcar como multilingue
  • Nomes (empresa, produto, cidade, país)
  • Descrições e resumos
  • Termos médicos/científicos
  • Etiquetas de estado (“Aprovado”, “Ativo”)
  • Rótulos e etiquetas de categoria
  • Instruções e recomendações
Manter não multilingue
  • Identificadores técnicos (UUIDs, IDs)
  • Códigos padronizados (ATC, CAS, ISO)
  • Siglas (FDA, EMA, WHO)
  • Números, datas, percentagens
  • URLs, emails, números de telefone
  • Sinalizadores booleanos

Tipos de campo válidos

A flag multilingue só é válida em certos tipos de propriedade. O editor de esquemas impõe isto automaticamente.

Tipo de PropriedadeMultilingue?Formato de saída
stringSimdict[str, str]
number / integerSimdict[str, float]
booleanSimdict[str, bool]
array de primitivosSimdict[str, list[str]]
objectNãoEm vez disso, marque campos individuais dentro do objeto
array de objetosNãoEm vez disso, marque campos individuais dentro dos itens
$refNãoEm vez disso, marque campos dentro da entidade referenciada

Integração do Pipeline de Enriquecimento

O suporte multilingue está integrado em todas as fases do pipeline de enriquecimento.

Esquema
multilingual: true
nos campos selecionados
Construtor de Prompts
Injeta instruções de
idioma + exemplos
Modelo dinâmico
str → dict[str, str]
Validação Pydantic
Armazenamento JSONB
Objetos indexados por idioma
no resultado
Multi-especialização: Ao utilizar a estratégia de multi-especialização, cada domínio de especialização recebe as instruções multilingues no seu próprio prompt. Os campos são traduzidos de forma independente por especialização e, em seguida, combinados no resultado final.

Campos Multilingues na Fusão

Ao fundir resultados de vários modelos, os campos multilingues são comparados por idioma.

CenárioResolução
Os modelos concordam em inglês mas divergem em francêsO inglês passa diretamente; o francês é resolvido por idioma através de votação por maioria ou arbitragem
Um modelo tem árabe, outro nãoPreferir o valor não nulo (o árabe é mantido)
Os arrays multilingues diferem em comprimento por modeloUnião de todos os itens por idioma