Mehrsprachige Anreicherung – Entity Enricher Dokumentation

Mehrsprachige Anreicherung

Entity Enricher kann Anreicherungsergebnisse in bis zu 40 Sprachen gleichzeitig erzeugen. Mehrsprachige Felder werden als JSON-Objekte mit Sprachschlüsseln gespeichert – ein Format, das portabel, abfragbar und mit jeder gängigen Datenbank kompatibel ist.

Workflow-Editor: Umschalter für Mehrsprachigkeit

Schalten Sie im Schema-Editor das Flag „Mehrsprachig“ für eine beliebige String- oder String-Array-Eigenschaft um. Wenn aktiviert, gibt das LLM die Werte in einem nach Sprache verschlüsselten Objekt statt als einfachen Wert zurück.

So funktioniert es

1
Felder als mehrsprachig markieren
Aktivieren Sie im Schema-Editor das Kontrollkästchen „Mehrsprachig“ bei String- oder Array-Eigenschaften. Das Flag wird als multilingual: true im JSON-Schema gespeichert.
2
Zielsprachen auswählen
Wählen Sie in den Seitenleistenoptionen eine oder mehrere Sprachen aus den 40 unterstützten Sprachen aus. Der Anreicherungs-Prompt weist das LLM an, Werte in jeder ausgewählten Sprache zu erzeugen. Die erste ausgewählte Sprache ist die Hauptsprache: Sie wird mit einem „Primär“-Badge hervorgehoben und für alle nicht mehrsprachigen String-Felder verwendet (Beschreibungen, Namen usw., die nicht als multilingual: true markiert sind). Verwenden Sie die Schaltfläche bei einem beliebigen anderen Chip, um ihn zur Hauptsprache zu befördern. Das Backend filtert außerdem alle vereinzelten Sprachschlüssel heraus, die das LLM möglicherweise ausgibt und die nicht in Ihrer Auswahl enthalten sind.
3
Das LLM gibt eine nach Sprache verschlüsselte Ausgabe zurück
Das dynamische Pydantic-Modell umschließt mehrsprachige Felder als dict[str, T], wobei die Schlüssel ISO-639-1-Sprachcodes sind und die Werte dem Feldtyp entsprechen.

Datenformat

Mehrsprachige Werte werden als JSON-Objekte mit Sprachcodes als Schlüsseln gespeichert. Dieses Format wurde gegenüber Alternativen wegen seiner Portabilität, Abfragbarkeit und Speichereffizienz gewählt.

Mehrsprachiger String
Schemaeigenschaft
"description": {
"type": "string",
"multilingual": true
}
Anreicherungsausgabe
"description": {
"en": "A global pharma company",
"fr": "Une entreprise pharma mondiale",
"ar": "شركة أدوية عالمية"
}
Mehrsprachiges Array
Schemaeigenschaft
"indications": {
"type": "array",
"items": { "type": "string" },
"multilingual": true
}
Anreicherungsausgabe
"indications": {
"en": ["pain relief", "fever"],
"fr": ["anti-douleur", "fièvre"],
"ar": ["تخفيف الألم", "حمى"]
}
Nicht mehrsprachige Felder

Felder ohne multilingual: true werden als einfache Werte zurückgegeben. Bezeichner, Codes, URLs, Datumsangaben und Zahlen bleiben in der Regel nicht mehrsprachig.

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

Warum dieses Format?

Für mehrsprachige Arrays gibt es zwei Ansätze. Entity Enricher verwendet Format A (sprachschlüsselbasiertes Objekt), da es das einzige Format ist, das ohne Transformation unverändert in allen gängigen Datenbanken funktioniert.

KriterienA Objekt mit SprachschlüsselnB Array lokalisierter Elemente
Struktur{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
Eine Sprache abfragenDirektzugriff
data -> 'field' -> 'en'
Erfordert Iteration
jsonb_array_elements + extract
Sprache hinzufügenEinen Schlüssel hinzufügen zum ObjektJedes Element aktualisieren im Array
Konsistent mit SkalarenJa – gleiches {"en": "...", "fr": "..."}-MusterNein — unterschiedliche Struktur für Strings im Vergleich zu Arrays
Datenbank-PortabilitätAlle wichtigen DatenbankenAlle wichtigen Datenbanken

Beispiele für Datenbankabfragen

Das sprachschlüsselbasierte Format ist in allen gängigen Datenbanken, die JSON-Spalten unterstützen, nativ abfragbar.

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;

Unterstützte Sprachen

40 Sprachen stehen zur Verfügung. Wählen Sie beim Ausführen einer Anreicherung eine beliebige Kombination aus.

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

Welche Felder sollten mehrsprachig sein?

Als mehrsprachig markieren
  • Namen und Bezeichnungen (Stadt, Land, Produktname)
  • Beschreibungen und Zusammenfassungen
  • Medizinische/wissenschaftliche Begriffe
  • Statusbezeichnungen („Genehmigt“, „Aktiv“)
  • Kategoriebezeichnungen und Tags
  • Anweisungen und Empfehlungen
Nicht mehrsprachig belassen
  • Beibehaltene Felder (markiert mit preserve)
  • Technische Bezeichner (UUIDs, IDs)
  • Standardisierte Codes (ATC, CAS, ISO)
  • Akronyme (FDA, EMA, WHO)
  • Zahlen, Daten, Prozentsätze
  • URLs, E-Mails, Telefonnummern
  • Boolesche Flags

Das Flag „multilingual“ kann nicht mit dem Flag „preserve“ kombiniert werden: Ein beibehaltener Wert wird unübersetzt in einer einzigen Sprache durchgereicht. Der Schema-Editor deaktiviert den in Konflikt stehenden Schalter, und die API weist Schemas zurück, die beide Flags tragen. Schlüsselfelder (natürliche oder Datenbankschlüssel) können mehrsprachig sein – die Entity-Identität verwendet dann die festgelegte Schlüsselsprache des Schemas.

Gültige Feldtypen

Das Mehrsprachig-Flag ist nur bei bestimmten Eigenschaftstypen gültig. Der Schema-Editor erzwingt dies automatisch.

EigenschaftstypMehrsprachig?Ausgabeformat
stringJadict[str, str]
number / integerJadict[str, float]
booleanJadict[str, bool]
Array von PrimitivenJadict[str, list[str]]
objectNeinMarkieren Sie stattdessen einzelne Felder innerhalb des Objekts — es sei denn, das Objekt enthält eine Zeile pro Sprache, siehe unten
Array von ObjektenNeinMarkieren Sie stattdessen einzelne Felder innerhalb der Elemente
$refNeinMarkieren Sie stattdessen Felder innerhalb der referenzierten Entität

Womit sich Mehrsprachigkeit nicht kombinieren lässt

Ein mehrsprachiger Wert ist eine Zuordnung von Sprachen und kein einzelner Wert — Attribute, die einen einzelnen Wert einschränken, können daher nicht auf ihn angewendet werden. Diese Konflikte werden bei der Generierung des Schemas aufgelöst und beim manuellen Speichern abgelehnt, statt später bei der Anreicherung zu scheitern.

Geschlossene Vokabulare setzen sich durch

Eine Eigenschaft, die auf eine feste Menge von Mitgliedern beschränkt ist, kann nicht zugleich mehrsprachig sein: Die Mitglieder sind kanonische Tokens, und eine Zieldatenbank schränkt eine Spalte anhand von ihnen ein. Übersetzte Bezeichnungen gehören in eine eigene Nachschlagetabelle mit dem Token als Schlüssel.

Format und Pattern sind nicht anwendbar

Ein Datum, eine UUID oder ein per Regex geprüfter Code hat eine maschinenlesbare Form, nicht eine pro Sprache. Das Speichern einer Eigenschaft, die beides ist, wird abgelehnt.

„Beibehalten“ hat Vorrang vor „Mehrsprachig“

Ein bewahrter Wert sind Ihre Daten, unverändert zurückgegeben — es gibt also nichts zu übersetzen.

Schlüssel können mehrsprachig sein

Diese Kombination ist zulässig. Die Identität wird in einer Sprache aufgelöst – festgelegt für das Schema bei seiner ersten Veröffentlichung in einer Datenbank –, sodass ein Name übersetzt werden kann, ohne dass sich seine Identität verschiebt.

Wenn die Sprache Daten sind und keine Übersetzung

Manche Quellen modellieren Sprache als Zeilen: eine Liste, in der jedes Element einen Sprachcode und eigene Werte trägt, einen Satz pro Sprache. Das ist eine andere Struktur als eine mehrsprachige Eigenschaft, und beide dürfen nicht vermischt werden. Die Generierung erkennt eine solche Eigenschaft als Sprachachse des Objekts – aber nur, wenn wirklich jeder beobachtete Wert ein Sprachcode ist – und schaltet den integrierten Mechanismus für diesen gesamten Teilbaum ab. Einzelne Felder innerhalb des Elements zu markieren, der übliche Rat bei Objekten, ist hier genau das falsche Mittel: Sie erhielten damit Übersetzungen von Zeilen, die ohnehin schon eine pro Sprache sind.

Noch eine Unterscheidung, die man auseinanderhalten sollte: Die Sprachen, in die Sie anreichern, werden pro Lauf gewählt; die Sprache, in der die Texte eines Schemas selbst verfasst sind (seine Beschreibungen und Bezeichnungen), ist am Schema festgelegt; und die Sprache, in der die Identität aufgelöst wird, ist pro Datenbank festgelegt. Drei getrennte Einstellungen, die alle nach „der Sprache“ klingen.

Integration der Anreicherungs-Pipeline

Mehrsprachige Unterstützung ist in jede Phase der Anreicherungs-Pipeline eingebettet.

Schema
multilingual: true
für ausgewählte Felder
Prompt-Builder
Fügt Sprach-
Anweisungen + Beispiele ein
Dynamisches Model
str → dict[str, str]
Pydantic-Validierung
JSONB-Speicher
Objekte mit Sprachschlüsseln
in der Ausgabe
Multi-Expertise: Bei Verwendung der Multi-Expertise-Strategie erhält jeder Expertisebereich die mehrsprachigen Anweisungen in einem eigenen Prompt. Felder werden pro Expertise unabhängig übersetzt und anschließend im Endergebnis zusammengeführt.

Mehrsprachige Felder in der Fusion

Beim Fusionieren von Ergebnissen mehrerer Modelle werden mehrsprachige Felder pro Sprache verglichen.

SzenarioAuflösung
Modelle stimmen bei Englisch überein, unterscheiden sich aber bei FranzösischKeine Abweichung. Die Identität wird in der Hauptsprache des Laufs beurteilt, dies gilt also als Übereinstimmung: Englisch wird durchgereicht, Französisch wird über die Zusammenführungsregel pro Sprache geklärt. Übersetzungsvarianz wird nie an einen Arbiter geschickt — ein Modell dafür zu bezahlen, zwischen zwei korrekten Übersetzungen zu wählen, wäre Geld für nichts
Ein Modell beherrscht Arabisch, ein anderes nichtDen nicht-leeren Wert bevorzugen (Arabisch wird beibehalten)
Mehrsprachige Arrays haben je Modell unterschiedliche LängeVereinigung aller Elemente pro Sprache