多言語エンリッチメント - Entity Enricher ドキュメント

多言語エンリッチメント

Entity Enricher は最大 40 言語のエンリッチメント結果を同時に生成できます。多言語フィールドは言語をキーとした JSON オブジェクトとして保存され、この形式はポータブルでクエリ可能、あらゆる主要なデータベースと互換性があります。

スキーマエディター: 多言語トグル

スキーマエディターで、任意の文字列プロパティまたは文字列配列プロパティの multilingual フラグを切り替えます。有効にすると、LLM はプレーンな値ではなく言語をキーとするオブジェクトでラップされた値を返します。

仕組み

1
フィールドを多言語としてマーク
スキーマエディターで、文字列プロパティまたは配列プロパティの multilingual チェックボックスをオンにします。このフラグは JSON schema に multilingual: true として保存されます。
2
対象言語を選択
サイドバーのオプションで、対応する40言語の中から1つ以上の言語を選択します。enrichment の prompt は、選択した各言語で値を生成するよう LLM に指示します。最初に選択した言語がプライマリ言語となり、「Primary」バッジで強調表示され、multilingual でないすべての文字列フィールド(multilingual: true とマークされていない説明や名前など)に使用されます。他のチップの ボタンを使うと、その言語をプライマリに昇格できます。バックエンドは、LLM が生成する可能性のある、選択に含まれない不要な言語キーも除外します。
3
LLMが言語キー付きの出力を返します
動的なPydanticモデルは、多言語フィールドをdict[str, T]としてラップします。キーはISO 639-1の言語コードで、値はフィールドの型に一致します。

データ形式

多言語の値は、言語コードをキーとする JSON オブジェクトとして保存されます。この形式は、移植性、クエリ可能性、ストレージ効率の高さから、他の選択肢に代えて採用されました。

多言語文字列
スキーマプロパティ
"description": {
"type": "string",
"multilingual": true
}
エンリッチメント出力
"description": {
"en": "A global pharma company",
"fr": "Une entreprise pharma mondiale",
"ar": "شركة أدوية عالمية"
}
多言語配列
スキーマプロパティ
"indications": {
"type": "array",
"items": { "type": "string" },
"multilingual": true
}
エンリッチメント出力
"indications": {
"en": ["pain relief", "fever"],
"fr": ["anti-douleur", "fièvre"],
"ar": ["تخفيف الألم", "حمى"]
}
非多言語フィールド

multilingual: true のないフィールドはプレーンな値として返されます。識別子、コード、URL、日付、数値は通常、非多言語のままです。

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

なぜこのフォーマットなのか?

多言語配列には2つのアプローチがあります。Entity EnricherはFormat A(言語キー付きオブジェクト)を使用しています。これは、変換なしですべての主要データベースでそのまま機能する唯一の形式だからです。

基準A 言語をキーとするオブジェクトB ローカライズされた項目の配列
構造{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
1つの言語を照会直接アクセス
data -> 'field' -> 'en'
反復が必要です
jsonb_array_elements + extract
言語を追加オブジェクトにキーを 1 つ追加します配列内のすべての項目を更新します
スカラー値と一貫はい — 同じ{"en": "...", "fr": "..."}パターンですいいえ — 文字列と配列で形状が異なります
データベースのポータビリティすべての主要データベースすべての主要データベース

データベースクエリの例

言語をキーとした形式は、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;

対応言語

40の言語が利用可能です。エンリッチメントの実行時に任意の組み合わせを選択できます。

グローバル言語
enEnglish
zhChinese
hiHindi
esSpanish
arArabic
frFrench
bnBengali
ptPortuguese
ruRussian
jaJapanese
deGerman
urUrdu
viVietnamese
trTurkish
koKorean
taTamil
mrMarathi
teTelugu
paPunjabi
yueCantonese
itItalian
ヨーロッパの言語
plPolish
ukUkrainian
roRomanian
nlDutch
elGreek
csCzech
huHungarian
svSwedish
srSerbian
bgBulgarian
hrCroatian
skSlovak
daDanish
fiFinnish
noNorwegian
ltLithuanian
slSlovenian
lvLatvian
etEstonian

どのフィールドを多言語対応にすべきか?

多言語としてマーク
  • 名称(会社、製品、都市、国)
  • 説明と要約
  • 医学・科学用語
  • ステータスラベル(「承認済み」「有効」)
  • カテゴリラベルとタグ
  • 手順と推奨事項
多言語化しないまま保持
  • 技術識別子(UUID、ID)
  • 標準化コード(ATC、CAS、ISO)
  • 略語(FDA、EMA、WHO)
  • 数値、日付、パーセンテージ
  • URL、メールアドレス、電話番号
  • ブールフラグ

有効なフィールドタイプ

多言語フラグは特定のプロパティタイプでのみ有効です。スキーマエディターはこれを自動的に強制します。

プロパティタイプ多言語対応ですか?出力フォーマット
stringはいdict[str, str]
number / integerはいdict[str, float]
booleanはいdict[str, bool]
プリミティブの配列はいdict[str, list[str]]
objectいいえ代わりに、オブジェクト内の個々のフィールドをマークします
オブジェクトの配列いいえ代わりに、項目内の個々のフィールドをマークします
$refいいえ代わりに、参照先エンティティ内のフィールドをマークします

エンリッチメントパイプライン連携

多言語サポートは、エンリッチメントパイプラインのあらゆる段階に組み込まれています。

スキーマ
multilingual: true
選択したフィールドに適用
promptビルダー
言語の指示
と例を注入します
動的モデル
str → dict[str, str]
Pydantic による検証
JSONBストレージ
出力内の言語をキーとする
オブジェクト
マルチエキスパティーズ: マルチエキスパティーズ戦略を使用する場合、各専門領域は独自のプロンプトで多言語対応の指示を受け取ります。フィールドは専門領域ごとに個別に翻訳され、最終出力にマージされます。

フュージョンにおける多言語フィールド

複数の model の結果を fusion する際、多言語フィールドは言語ごとに比較されます。

シナリオ解決
モデルは英語では一致しますが、フランス語では異なります英語はそのまま通過し、フランス語は多数決または arbitration により言語ごとに解決されます
あるモデルはアラビア語に対応し、別のモデルは対応していませんnull 以外の値を優先します(アラビア語が保持されます)
多言語配列の長さがモデルごとに異なります言語ごとのすべての項目の和集合