إنشاء فهرس للغات متعددة في Azure الذكاء الاصطناعي Search

إذا كان لديك سلاسل بلغات متعددة، يمكنك إرفاق محللات اللغة التي تحلل السلاسل باستخدام القواعد اللغوية للغة معينة أثناء الفهرسة وتنفيذ الاستعلام. باستخدام محلل اللغة، يمكنك الحصول على معالجة أفضل لتباينات الأحرف وعلامات الترقيم ونماذج جذر الكلمات.

يدعم Azure الذكاء الاصطناعي Search محللات Microsoft و Lucene. بشكل افتراضي، يستخدم محرك البحث Standard Lucene، وهو غير محدد اللغة. إذا كان الاختبار يشير إلى أن المحلل الافتراضي غير كاف، فاستبدله محلل اللغة.

في Azure الذكاء الاصطناعي Search، يتضمن النمطان لدعم لغات متعددة ما يلي:

  • إنشاء فهارس خاصة باللغة حيث يكون كل المحتوى الأبجدي الرقمي بنفس اللغة، ويتم إسناد كافة حقول السلسلة القابلة للبحث لاستخدام محلل اللغة نفسه.

  • قم بإنشاء فهرس مختلط بإصدارات خاصة باللغة لكل حقل (على سبيل المثال، description_en description_fr description_ko)، ثم قم بتقييد البحث عن النص الكامل لتلك الحقول فقط في وقت الاستعلام. هذا الأسلوب مفيد للسيناريوهات التي تكون فيها متغيرات اللغة مطلوبة فقط في عدد قليل من الحقول، مثل الوصف.

تركز هذه المقالة على الخطوات وأفضل الممارسات لتكوين الحقول الخاصة باللغة والاستعلام فيها في فهرس مختلط:

  • تعريف حقل سلسلة لكل متغير لغة.
  • تعيين محلل لغة في كل حقل.
  • في طلب الاستعلام، قم بتعيين المعلمة searchFields إلى حقول معينة، ثم استخدم select لإرجاع الحقول التي تحتوي على محتوى متوافق فقط.

إشعار

إذا كنت تستخدم نماذج لغة كبيرة في نمط استرداد تم إنشاؤه (RAG)، يمكنك هندسة المطالبة بإرجاع السلاسل المترجمة. هذا السيناريو خارج نطاق هذه المقالة.

المتطلبات الأساسية

ينطبق تحليل اللغة على الحقول من النوع Edm.String ، searchableوالتي تحتوي على نص مترجم. إذا كنت بحاجة أيضا إلى ترجمة نصية، فراجع القسم التالي لمعرفة ما إذا كان الإثراء الذكاء الاصطناعي يلبي احتياجاتك.

لا تخضع الحقول غير المتصلة بالسلسلة وحقول السلسلة غير القابلة للبحث للتحليل المعجمي ولا يتم رمزها المميز. بدلا من ذلك، يتم تخزينها وإرجاعها حرفيا.

إضافة ترجمة نصية

تفترض هذه المقالة أن السلاسل المترجمة موجودة بالفعل. إذا لم يكن الأمر كذلك، يمكنك إرفاق خدمات Azure الذكاء الاصطناعي بمسار الإثراء، واستدعاء ترجمة النص أثناء الفهرسة. تعتمد الترجمة النصية على ميزة المفهرس وخدمات Azure الذكاء الاصطناعي، ولكن يتم كل الإعداد داخل Azure الذكاء الاصطناعي Search.

لإضافة ترجمة نصية، اتبع الخطوات التالية:

  1. تحقق من وجود المحتوى الخاص بك في مصدر بيانات معتمد.

  2. إنشاء مصدر بيانات يشير إلى المحتوى الخاص بك.

  3. إنشاء مجموعة مهارات تتضمن مهارة ترجمة النص.

    تأخذ مهارة ترجمة النص سلسلة واحدة كمدخل. إذا كان لديك حقول متعددة، فيمكنك إنشاء مجموعة مهارات تستدعي ترجمة النص عدة مرات، مرة واحدة لكل حقل. بدلا من ذلك، يمكنك استخدام مهارة دمج النص لدمج محتوى حقول متعددة في سلسلة طويلة واحدة.

  4. إنشاء فهرس يتضمن حقولا للسلاسل المترجمة. تغطي معظم هذه المقالة تصميم الفهرس وتعريفات الحقول للفهرسة والاستعلام عن المحتوى متعدد اللغات.

  5. إرفاق مورد خدمات Azure الذكاء الاصطناعي متعدد المناطق بمجموعة المهارات الخاصة بك.

  6. قم بإنشاء المفهرس وتشغيله، ثم قم بتطبيق الإرشادات الواردة في هذه المقالة للاستعلام عن حقول الاهتمام فقط.

تلميح

ترجمة النص مضمنة في معالج استيراد البيانات. إذا كان لديك مصدر بيانات مدعوم مع نص تريد ترجمته، يمكنك التنقل عبر المعالج لتجربة وظيفة الكشف عن اللغة والترجمة قبل كتابة أي تعليمة برمجية.

تعريف الحقول للمحتوى بلغات مختلفة

في Azure الذكاء الاصطناعي Search، تستهدف الاستعلامات فهرسا واحدا. عادة ما يحدد المطورون الذين يرغبون في توفير سلاسل خاصة باللغة في تجربة بحث واحدة الحقول المخصصة لتخزين القيم: حقل واحد للسلاسل الإنجليزية، وحقل للفرنسية، وما إلى ذلك.

analyzer يتم استخدام الخاصية الموجودة في تعريف الحقل لتعيين محلل اللغة. يتم استخدامه لكل من الفهرسة وتنفيذ الاستعلام.

{
  "name": "hotels-sample-index",
  "fields": [
    {
      "name": "Description",
      "type": "Edm.String",
      "retrievable": true,
      "searchable": true,
      "analyzer": "en.microsoft"
    },
    {
      "name": "Description_fr",
      "type": "Edm.String",
      "retrievable": true,
      "searchable": true,
      "analyzer": "fr.microsoft"
    }
  ]
}

إنشاء فهرس وتحميله

خطوة وسيطة هي بناء الفهرس وتعبئته قبل صياغة استعلام. ونذكر هذه الخطوة هنا من أجل الاكتمال. إحدى الطرق لتحديد توفر الفهرس هي عن طريق التحقق من قائمة الفهارس في المدخل.

تقييد الاستعلام وقص النتائج

تستخدم المعلمات الموجودة في الاستعلام للحد من البحث في حقول معينة ثم اقتطاع نتائج أي حقول غير مفيدة للسيناريو الخاص بك.

المعلمات الغرض
searchFields تقييد البحث عن النص الكامل بقائمة الحقول المسماة.
select اقتطاع الاستجابة لتضمين الحقول التي تحددها فقط. بشكل افتراضي، يتم إرجاع كافة الحقول القابلة للاسترداد. تتيح لك المعلمة select اختيار تلك التي تريد إرجاعها.

نظرا لهدف تقييد البحث في الحقول التي تحتوي على سلاسل فرنسية، يمكنك استخدام searchFields لاستهداف الاستعلام في الحقول التي تحتوي على سلاسل في تلك اللغة.

تحديد المحلل في طلب استعلام ليس ضروريا. يحدد محلل اللغة في تعريف الحقل تحليل النص أثناء تنفيذ الاستعلام. بالنسبة للاستعلامات التي تحدد حقولا متعددة، كل منها يستدعي محللات لغات مختلفة، تتم معالجة المصطلحات أو العبارات بشكل متزامن بواسطة المحللات المعينة لكل حقل.

بشكل افتراضي، يقوم البحث بإرجاع كافة الحقول التي تم وضع علامة عليها على أنها قابلة للاسترداد. على هذا النحو، قد تحتاج إلى استبعاد الحقول التي لا تتوافق مع تجربة البحث الخاصة باللغة التي تريد توفيرها. على وجه التحديد، إذا قمت بالبحث المحدود عن حقل بسلاسل فرنسية، فمن المحتمل أنك تريد استبعاد الحقول ذات السلاسل الإنجليزية من نتائجك. يمنحك استخدام معلمة select الاستعلام التحكم في الحقول التي يتم إرجاعها إلى تطبيق الاستدعاء.

مثال في REST

POST https://[service name].search.windows.net/indexes/hotels-sample-index/docs/search?api-version=2020-06-30
{
    "search": "animaux acceptés",
    "searchFields": "Tags, Description_fr",
    "select": "HotelName, Description_fr, Address/City, Address/StateProvince, Tags",
    "count": "true"
}

مثال في C#‎

private static void RunQueries(SearchClient srchclient)
{
    SearchOptions options;
    SearchResults<Hotel> response;

    options = new SearchOptions()
    {
        IncludeTotalCount = true,
        Filter = "",
        OrderBy = { "" }
    };

    options.Select.Add("HotelId");
    options.Select.Add("HotelName");
    options.Select.Add("Description_fr");
    options.SearchFields.Add("Tags");
    options.SearchFields.Add("Description_fr");

    response = srchclient.Search<Hotel>("*", options);
    WriteDocuments(response);
}

تحسين الحقول الخاصة باللغة

في بعض الأحيان لا تكون لغة العامل الذي يصدر استعلاما معروفة، وفي هذه الحالة يمكن إصدار الاستعلام مقابل جميع الحقول في وقت واحد. يمكن تعريف تفضيل IA للنتائج بلغة معينة باستخدام ملفات تعريف النقاط. في المثال أدناه، يتم تسجيل التطابقات الموجودة في الوصف باللغة الفرنسية أعلى نسبة إلى التطابقات بلغات أخرى:

  "scoringProfiles": [
    {
      "name": "frenchFirst",
      "text": {
        "weights": { "description_fr": 2 }
      }
    }
  ]

ثم تقوم بتضمين ملف تعريف تسجيل النقاط في طلب البحث:

POST /indexes/hotels/docs/search?api-version=2023-11-01
{
  "search": "pets allowed",
  "searchFields": "Tags, Description_fr",
  "select": "HotelName, Tags, Description_fr",
  "scoringProfile": "frenchFirst",
  "count": "true"
}

الخطوات التالية