الإثراء متعدد اللغات - وثائق Entity Enricher

الإثراء متعدد اللغات

يمكن لـ Entity Enricher إنتاج نتائج الإثراء بما يصل إلى 40 لغة في آنٍ واحد. وتُخزَّن الحقول متعددة اللغات ككائنات JSON مفهرسة حسب اللغة — وهي صيغة قابلة للنقل والاستعلام ومتوافقة مع كل قاعدة بيانات رئيسية.

محرر المخطط: مفتاح التبديل متعدد اللغات

في محرر المخططات، بدّل عَلَم متعدد اللغات على أي خاصية سلسلة نصية أو مصفوفة سلاسل نصية. عند تفعيله، يُعيد LLM القيم مغلَّفة في كائن مفتاحه اللغة بدلًا من قيمة عادية.

كيف يعمل

1
تحديد الحقول كمتعددة اللغات
في محرر المخططات، حدّد مربع الاختيار متعدد اللغات على خصائص السلاسل النصية أو المصفوفات. يُخزَّن العَلَم بصيغة multilingual: true في مخطط JSON.
2
اختر اللغات المستهدفة
في خيارات الشريط الجانبي، اختر لغة أو أكثر من بين اللغات الأربعين المدعومة. يوجّه موجّه الإثراء نموذج LLM لإنتاج القيم بكل لغة مختارة. اللغة الأولى المختارة هي اللغة الأساسية: تُميَّز بشارة «أساسية» وتُستخدَم لجميع حقول السلاسل غير متعددة اللغات (الأوصاف والأسماء وغيرها التي لا تحمل علامة 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"

لماذا هذا التنسيق؟

يوجد نهجان للمصفوفات متعددة اللغات. يستخدم Entity Enricher Format A (كائن مُفهرَس باللغة) لأنه التنسيق الوحيد الذي يعمل كما هو عبر جميع قواعد البيانات الرئيسية دون تحويل.

المعاييرA كائن مفهرس حسب اللغةB مصفوفة من العناصر المُترجمة محليًا
البنية{"en": [...], "fr": [...]}[{"en": "x", "fr": "y"}, ...]
استعلم عن لغة واحدةوصول مباشر
data -> 'field' -> 'en'
يتطلب التكرار
jsonb_array_elements + extract
إضافة لغةأضف مفتاحًا واحدًا إلى الكائنتحديث كل عنصر في المصفوفة
متسق مع القيم القياسيةنعم — النمط نفسه {"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

أي الحقول ينبغي أن تكون متعددة اللغات؟

تحديد كمتعدد اللغات
  • الأسماء (الشركة، المنتج، المدينة، البلد)
  • الأوصاف والملخصات
  • مصطلحات طبية/علمية
  • تسميات الحالة ("موافَق عليه"، "نشط")
  • تسميات الفئات والوسوم
  • التعليمات والتوصيات
الإبقاء عليه أحادي اللغة
  • المعرّفات التقنية (UUIDs، المعرّفات)
  • رموز موحّدة (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
على الحقول المحددة
مُنشئ المُوجّهات
يحقن تعليمات اللغة
+ أمثلة
نموذج ديناميكي
str → dict[str, str]
التحقق عبر Pydantic
تخزين JSONB
كائنات مفهرسة حسب اللغة
في المخرجات
الخبرة المتعددة: عند استخدام استراتيجية الخبرة المتعددة، يتلقى كل مجال خبرة التعليمات متعددة اللغات في موجّهه الخاص. تُترجم الحقول بشكل مستقل لكل مجال خبرة، ثم تُدمج في المخرجات النهائية.

الحقول متعددة اللغات في الدمج

عند دمج النتائج من نماذج متعددة، تُقارَن الحقول متعددة اللغات لكل لغة على حدة.

السيناريوالحل
تتفق النماذج على الإنجليزية لكنها تختلف على الفرنسيةتمر الإنجليزية دون تغيير؛ وتُحسم الفرنسية لكل لغة عبر التصويت بالأغلبية أو التحكيم
أحد النماذج يدعم العربية والآخر لاتفضيل القيمة غير الفارغة (يُحتفظ بالعربية)
تختلف المصفوفات متعددة اللغات في الطول حسب النموذجاتحاد جميع العناصر لكل لغة