البرنامج التعليمي: استخدام REST وAI لإنشاء محتوى قابل للبحث من كائنات تخزين البيانات الثنائية الكبيرة لـAzure

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

في هذا البرنامج التعليمي REST، ستتعلم كيفية:

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

في حال لم تكن مشتركاً في "Azure"، افتح حساب مجاني قبل البدء.

نظرة عامة

يستخدم هذا البرنامج التعليمي Postman وAzure Cognitive Search REST APIs لإنشاء مصدر بيانات وفهرس ومفهرس ومجموعة مهارات.

يتصل المفهرس ب Azure Blob Storage ويسترد المحتوى الذي يجب تحميله مسبقا. ثم يستدعي المفهرس مجموعة مهارات للمعالجة المتخصصة، ويدخل المحتوى الذي تم إثراؤه في فهرس بحث.

يتم إرفاق مجموعة المهارات بمفهرس. يستخدم مهارات مُضمَّنة من Microsoft للعثور على المعلومات واستخراجها. تتضمن الخطوات في البنية الأساسية لبرنامج ربط العمليات التجارية التعرف البصري على الأحرف (OCR) على الصور، واكتشاف اللغة، واستخراج العبارة الرئيسية، والتعرف على الكيان (المؤسسات والمواقع والأشخاص). تُخزَّن المعلومات الجديدة التي أنشأها التدفق في حقولٍ جديدةٍ في فهرس. بمجرد تعبئة الفهرس، يمكنك استخدام هذه الحقول في الاستعلامات والواجهات وعوامل التصفية.

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

ملاحظة

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

تنزيل الملفات

تتكون بيانات العينة من 14 ملفاً من نوع المحتوى المختلط الذي ستحمله إلى Azure Blob Storage في خطوةٍ لاحقةٍ.

  1. احصل على الملفات من azure-search-sample-data/ai-enrichment-mixed-media/ وانسخها إلى الكمبيوتر المحلي.

  2. بعد ذلك، احصل على التعليمات البرمجية المصدر، ملف مجموعة Postman، لهذا البرنامج التعليمي. يمكن العثور على التعليمات البرمجية المصدر في azure-search-postman-samples/tree/master/Tutorial.

1 - إنشاء الخدمات

هذا البرنامج التعليمي يستخدم Azure Cognitive Search للفهرسة والاستعلامات، وAzure Blob Storage لتوفير البيانات. يظل هذا البرنامج التعليمي خاضعًا للتخصيص المجاني لـ 20 معاملة لكل مفهرس يوميًّا على الخدمات المعرفية، ومن ثَم فإن الخدمات الوحيدة التي تحتاج إلى إنشائها هي البحث والتخزين.

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

ابدأ بـ Azure Storage

  1. سجل في مدخل Azureثم انقر فوق + Create Resource.

  2. ابحث عن حساب التخزين وحدد عرض حساب التخزين من Microsoft.

    Create Storage account

  3. في علامة التبويب "Basics"، تعد العناصر التالية مطلوبة. اقبل الإعدادات الافتراضية لكل شيء آخر.

    • ⁦⁧⁩⁩مجموعة الموارد⁦⁧⁩⁩. حدد واحدة موجودة أو أنشئ واحدة جديدة، لكن استخدم نفس المجموعة لجميع الخدمات حتى تتمكن من إدارتها بشكلٍ جماعي.

    • ⁩اسم حساب التخزين⁧⁩. إذا كنت تعتقد أنه قد تكون لديك موارد متعددة من نفس النوع، فاستخدم الاسم لإزالة الغموض حسب النوع والمنطقة، على سبيل المثال blobstoragewestus.

    • Location. إذا أمكن، اختر نفس الموقع المستخدم لـ Azure Cognitive Search وCognitive Services. موقع واحد يفرغ رسوم النطاق الترددي.

    • نوع الحساب. اختر الإعداد الافتراضي، StorageV2 (الغرض العام v2) .

  4. حدد مراجعة + إنشاء لإنشاء الخدمة.

  5. بمجرد إنشائه، حدد Go to the resource لفتح صفحة Overview.

  6. حدد خدمة Blobs .

  7. حدد + Container لإنشاء حاوية وتسمائها cog-search-demo.

  8. حدد cog-search-demo ثم حدد Upload لفتح المجلد حيث حفظت ملفات التنزيل. حدد كافة الملفات. حدد ⁧⁩تحميل⁧⁩.

    Screenshot of the files in File Explorer.

  9. قبل مغادرة Azure Storage، احصل على سلسلة اتصال حتى تتمكن من صياغة اتصال فيAzure Cognitive Search.

    1. استعرض مرةً أخرى صفحة "Overview" لحساب التخزين خاصتك (استخدمنا blobstoragewestus كمثال).

    2. في جزء التنقل الأيسر، حدد Access keys وانسخ إحدى سلاسل الاتصال.

    سلسلة الاتصال هي عنوان URL مشابه للمثال التالي:

    DefaultEndpointsProtocol=https;AccountName=cogsrchdemostorage;AccountKey=<your account key>;EndpointSuffix=core.windows.net
    
  10. حفظ سلسلة الاتصال إلى Notepad. ستحتاج إليه لاحقًا عند إعداد اتصال مصدر البيانات.

Cognitive Services

تدعم الخدمات المعرفية الإثراء الذكاء الاصطناعي، بما في ذلك خدمة اللغة ورؤية الكمبيوتر للغة الطبيعية ومعالجة الصور. إذا كان هدفك هو إكمال نموذج أولي أو مشروع فعلي، فيمكنك في هذه المرحلة توفير الخدمات المعرفية (في نفس منطقة Azure Cognitive Search) بحيث يمكنك إرفاقه بمجموعة مهارات.

لهذا التمرين، ومع ذلك، يمكنك تخطي توفير الموارد لأن Azure Cognitive Search يمكنه الاتصال بالخدمات المعرفية تنفيذ 20 معاملة لكل تشغيل مفهرس، مجانا. نظراً لأن هذا البرنامج التعليمي يستخدم 14 معاملة، فإن التخصيص المجاني كافٍ. بالنسبة للمشاريع الأكبر حجماً، خطط لتوفير Cognitive Services على مستوى الدفع عند الاستخدام S0.

المكون الثالث هو Azure Cognitive Search، الذي يمكنك إنشاؤه في المدخل أو البحث عن خدمة بحث موجودة في اشتراكك.

يمكنك استخدام المستوى المجاني لإكمال هذه المعاينة.

للتفاعل مع خدمة Azure Cognitive Search، ستحتاج إلى عنوان URL للخدمة ومفتاح وصول.

  1. سجل الدخول إلى مدخل Azure، وفي الصفحة Overviewعلى خدمة البحث لديك، احصل على اسم خدمة البحث الخاصة بك. يمكنك تأكيد اسم الخدمة الخاصة بك من خلال مراجعة عنوان URL لنقطة النهاية. إذا كان عنوان URL لنقطة النهاية هي https://mydemo.search.windows.net، فسيكون اسم الخدمة الخاصة بك هو mydemo.

  2. في Settings>Keys، احصل على مفتاح مسؤول للحصول على الحقوق الكاملة في الخدمة. يمكنك نسخ المفتاح الأساسي أو الثانوي.

    Get the service name and admin key

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

2 - إعداد Postman

  1. ابدأ Postman واستورد المجموعة وقم بإعداد متغيرات البيئة. إذا كنت غير معتاد على هذه الأداة، راجعاستكشافAzure Cognitive Search REST APIs.

  2. ستحتاج إلى توفير اسم خدمة بحث ومفتاح API مسؤول واسم فهرس وسلسلة اتصال بحساب Azure Storage واسم الحاوية.

    Screenshot of the Variables page in Postman.

أساليب الطلب المستخدمة في هذه المجموعة هي PUT و GET. ستستخدم الأساليب لإنشاء مصدر بيانات ومجموعة مهارات وفهرس ومفهرس.

3- إنشاء التدفق

في Azure Cognitive Search، يحدث الإثراء أثناء الفهرسة (أو استيعاب البيانات). ينشئ هذا الجزء من الإرشادات أربعة كائنات: مصدر البيانات، وتعريف الفهرس، ومجموعة المهارات، والمفهرس.

الخطوة 1: إنشاء مصدر بيانات

استدعاء Create Data Source لتعيين سلسلة الاتصال إلى حاوية Blob التي تحتوي على نماذج ملفات البيانات.

  1. حدد طلب "إنشاء مصدر بيانات".

  2. نص الطلب هو JSON ويتضمن خصائص كائن مصدر بيانات المفهرس. تتضمن سلسلة الاتصال بيانات اعتماد للوصول إلى الخدمة.

    {   
        "description" : "Demo files to demonstrate cognitive search capabilities.",  
        "type" : "azureblob",
        "credentials" : { 
           "connectionString": "{{azure-storage-connection-string}}"
        },  
      "container" : { 
        "name" : "{{blob-container}}"
      }
    }
    
  3. أرسل الطلب. يجب أن تشاهد رمز حالة 201 يؤكد النجاح.

إذا كان لديك خطأ 403 أو 404، فتحقق من مفتاح واجهة برمجة تطبيقات مسؤول البحث وسلسلة اتصال Azure Storage.

الخطوة 2: إنشاء مجموعة مهارات

اتصل ب Create Skillset لتحديد خطوات الإثراء التي يتم تطبيقها على المحتوى الخاص بك.

  1. حدد طلب "Create a skillset".

  2. يحدد نص الطلب المهارات المضمنة التالية:

    المهارة الوصف
    التعرف البصري على الحروف يتعرف على النص والأرقام في ملفات الصور.
    دمج النصوص إنشاء "محتوى مدمج" يعيد دمج المحتوى المفصول مسبقا، وهو مفيد للمستندات التي تحتوي على صور مضمنة (PDF و DOCX وما إلى ذلك). يتم فصل الصور والنص أثناء مرحلة تكسير المستند. تعيد مهارة الدمج دمجها عن طريق إدراج أي نص أو تسميات توضيحية للصور أو علامات تم التعرف عليها تم إنشاؤها أثناء الإثراء في نفس الموقع الذي تم استخراج الصورة منه في المستند.

    عند العمل مع المحتوى المدمج في مجموعة مهارات، ستكون هذه العقدة شاملة لجميع النصوص في المستند، بما في ذلك مستندات النص فقط التي لا تخضع أبدا ل OCR أو تحليل الصور.
    الكشف عن اللغة يكتشف اللغة ويخرج إما اسم لغة أو تعليمة برمجية. في مجموعات البيانات متعددة اللغات، يمكن أن يكون حقل اللغة مفيدا لعوامل التصفية.
    التعرف على الكيانات استخراج أسماء الأشخاص والمؤسسات والمواقع من المحتوى المدمج.
    Text Split يقسم المحتوى المدمج الكبير إلى مجموعات أصغر قبل استدعاء مهارة استخراج العبارة الرئيسية. يقبل استخراج العبارة الرئيسية إدخالات من 50000 حرفٍ أو أقل. يحتاج عدد قليل من عينات الملفات إلى تقسيمها لتلائم هذا الحد.
    مهارة استخراج العبارة الرئيسية سحب العبارات الرئيسية العليا.

    يتم تنفيذ كل مهارة على محتوى المستند. أثناء المعالجة، يقوم Azure Cognitive Search بصد كل مستند لقراءة المحتوى من تنسيقات ملفات مختلفة. يُوضع النص الذي أُنشئ في الملف المصدر في حقل content المُنشأ، واحدٌ لكل مستند. على هذا النحو، يصبح الإدخال "/document/content".

    لاستخراج العبارة الرئيسية، لأننا نستخدم مهارة تقسيم النص لتقسيم الملفات الكبيرة إلى صفحات، فإن سياق مهارة استخراج العبارة الرئيسية هو "document/pages/*" (لكل صفحة في المستند) بدلا من "/document/content".

    {
      "description": "Apply OCR, detect language, extract entities, and extract key-phrases.",
      "cognitiveServices": null,
      "skills":
      [
        {
          "@odata.type": "#Microsoft.Skills.Vision.OcrSkill",
          "context": "/document/normalized_images/*",
          "defaultLanguageCode": "en",
          "detectOrientation": true,
          "inputs": [
            {
              "name": "image",
              "source": "/document/normalized_images/*"
            }
          ],
          "outputs": [
            {
              "name": "text"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.MergeSkill",
          "description": "Create merged_text, which includes all the textual representation of each image inserted at the right location in the content field. This is useful for PDF and other file formats that supported embedded images.",
          "context": "/document",
          "insertPreTag": " ",
          "insertPostTag": " ",
          "inputs": [
            {
              "name":"text", 
              "source": "/document/content"
            },
            {
              "name": "itemsToInsert", 
              "source": "/document/normalized_images/*/text"
            },
            {
              "name":"offsets", 
              "source": "/document/normalized_images/*/contentOffset" 
            }
          ],
          "outputs": [
            {
              "name": "mergedText", 
              "targetName" : "merged_text"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
          "textSplitMode": "pages",
          "maximumPageLength": 4000,
          "defaultLanguageCode": "en",
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "textItems",
              "targetName": "pages"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.LanguageDetectionSkill",
          "description": "If you have multilingual content, adding a language code is useful for filtering",
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "languageName",
              "targetName": "language"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.KeyPhraseExtractionSkill",
          "context": "/document/pages/*",
          "inputs": [
            {
              "name": "text",
              "source": "/document/pages/*"
            }
          ],
          "outputs": [
            {
              "name": "keyPhrases",
              "targetName": "keyPhrases"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
          "categories": ["Organization"],
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "organizations",
              "targetName": "organizations"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
          "categories": ["Location"],
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "locations",
              "targetName": "locations"
            }
          ]
        },
        {
          "@odata.type": "#Microsoft.Skills.Text.V3.EntityRecognitionSkill",
          "categories": ["Person"],
          "context": "/document",
          "inputs": [
            {
              "name": "text",
              "source": "/document/merged_text"
            }
          ],
          "outputs": [
            {
              "name": "persons",
              "targetName": "persons"
            }
          ]
        }
      ]
    }
    

    يظهر أدناه تمثيل رسومي لجزء من مجموعة المهارات.

    Understand a skillset

  3. أرسل الطلب. Postman يجب أن يعيد رمز حالة من 201 تأكيد النجاح.

ملاحظة

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

الخطوة 3: إنشاء فهرس

استدعاء Create Index لتوفير المخطط المستخدم لإنشاء فهارس مقلوبة وبنيات أخرى في Azure Cognitive Search. أكبر مكون من الفهرس هو مجموعة الحقول، حيث يحدد نوع البيانات والسمات المحتوى والسلوك في Azure Cognitive Search.

  1. حدد طلب "إنشاء فهرس".

  2. يحدد نص الطلب مخطط فهرس البحث. تتطلب مجموعة الحقول تعيين حقل واحد كمفتاح. بالنسبة لمحتوى الكائن الثنائي كبير الحجم، غالبا ما يكون هذا الحقل هو "metadata_storage_path" الذي يعرف كل كائن ثنائي كبير الحجم في الحاوية بشكل فريد.

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

    {
      "fields": [
        {
          "name": "text",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": false
        },
        {
          "name": "content",
          "type": "Edm.String",
          "searchable": true,
          "sortable": false,
          "filterable": false,
          "facetable": false
        },
        {
          "name": "language",
          "type": "Edm.String",
          "searchable": false,
          "sortable": true,
          "filterable": true,
          "facetable": false
        },
        {
          "name": "keyPhrases",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "organizations",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "persons",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "locations",
          "type": "Collection(Edm.String)",
          "searchable": true,
          "sortable": false,
          "filterable": true,
          "facetable": true
        },
        {
          "name": "metadata_storage_path",
          "type": "Edm.String",
          "key": true,
          "searchable": true,
          "sortable": false,
          "filterable": false,
          "facetable": false
        },
        {
          "name": "metadata_storage_name",
          "type": "Edm.String",
          "searchable": true,
          "sortable": false,
          "filterable": false,
          "facetable": false
        }
      ]
    }
    
  3. أرسل الطلب. Postman يجب أن يعيد رمز حالة من 201 تأكيد النجاح.

الخطوة 4: إنشاء وتشغيل المفهرس

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

  1. حدد طلب "إنشاء مفهرس".

  2. يتضمن نص الطلب مراجع إلى الكائنات السابقة وخصائص التكوين المطلوبة لمعالجة الصور ونوعين من تعيينات الحقول.

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

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

    {
      "dataSourceName" : "{{index_name}}-datasource",
      "targetIndexName" : "{{index_name}}",
      "skillsetName" : "{{index_name}}-skillset",
      "fieldMappings" : [
            {
              "sourceFieldName" : "metadata_storage_path",
              "targetFieldName" : "metadata_storage_path",
              "mappingFunction" : { "name" : "base64Encode" }
            },
            {
            	"sourceFieldName": "metadata_storage_name",
            	"targetFieldName": "metadata_storage_name"
            }
       ],
      "outputFieldMappings" : 
    	[
    		{
            	"sourceFieldName": "/document/merged_text",
            	"targetFieldName": "content"
            },
            {
                "sourceFieldName" : "/document/normalized_images/*/text",
                "targetFieldName" : "text"
            },
      		{
              "sourceFieldName" : "/document/organizations", 
              "targetFieldName" : "organizations"
            },
            {
            	"sourceFieldName": "/document/language",
            	"targetFieldName": "language"
            },
      		{
              "sourceFieldName" : "/document/persons", 
              "targetFieldName" : "persons"
            },
      		{
              "sourceFieldName" : "/document/locations", 
              "targetFieldName" : "locations"
            },
            {
              "sourceFieldName" : "/document/pages/*/keyPhrases/*", 
              "targetFieldName" : "keyPhrases"
            }
        ],
      "parameters":
      {
    	"batchSize": 1,
      	"maxFailedItems":-1,
      	"maxFailedItemsPerBatch":-1,
      	"configuration": 
    	{
        	"dataToExtract": "contentAndMetadata",
        	"imageAction": "generateNormalizedImages"
    	}
      }
    }
    
  3. أرسل الطلب. يجب أن يعيد Postman رمز حالة من 201 تأكيد نجاح المعالجة.

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

ملاحظة

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

حول معلمات المفهرس

يتم تعيين "maxFailedItems" البرنامج النصي إلى -1، الذي يوجه محرك الفهرسة لتجاهل الأخطاء أثناء استيراد البيانات. هذا مقبول لأن هناك عددًا قليلًا جدًا من الوثائق في مصدر البيانات التجريبي. بالنسبة لمصدر بيانات أكبر، يمكنك تعيين القيمة إلى أكبر من 0.

"dataToExtract":"contentAndMetadata" تخبر هذه العبارة المفهرس باستخراج المحتوى تلقائياً من تنسيقات ملفات مختلفة بالإضافة إلى البيانات التعريفية المتعلقة بكل ملف.

عند استخراج المحتوى، يمكنك تعيين imageAction لاستخراج النص من الصور الموجودة في مصدر البيانات. إن "imageAction":"generateNormalizedImages" التكوين، جنباً إلى جنب مع مهارة OCR ومهارة دمج النص، تخبر المفهرس باستخراج النص من الصور (على سبيل المثال، كلمة "إيقاف" من علامة توقف نسبة استخدام الشبكة)، وتضمينها باعتبارها جزءاً من حقل المحتوى. ينطبق هذا السلوك على كل من الصور المضمنة في المستندات (فكر في صورة داخل ملف PDF)، وكذلك الصور الموجودة في مصدر البيانات، على سبيل المثال ملف JPG.

4 - مراقبة الفهرسة

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

لمعرفة ما إذا كان المفهرس لا يزال قيد التشغيل، اتصل ب Get Indexer Status للتحقق من حالة المفهرس.

  1. حدد ثم أرسل طلب "التحقق من حالة المفهرس".

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

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

في هذه العينة، يوجد ملف PNG لا يحتوي على نص. تفشل جميع المهارات الخمسة المستندة إلى النص (الكشف عن اللغة، والتعرف على الكيان للمواقع، والمؤسسات، والأشخاص، واستخراج العبارة الرئيسية) في التنفيذ على هذا الملف. يظهر الإعلام الناتج في محفوظات التنفيذ.

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

تذكر أننا بدأنا بمحتوى كائنات تخزين البيانات الثنائية الكبيرة حيث يتم حزم المستند بأكمله في content حقل واحد. يمكنك البحث في هذا الحقل والبحث عن تطابقات مع استعلاماتك.

  1. افتح طلب "البحث" وقم بتشغيله للحصول على أول نظرة على محتوى الفهرس. هذا الطلب عبارة عن بحث فارغ ("search=*") لذلك سيعيد المحتوى لكل مستند من المستندات ال 14. تقيد المعلمة $select النتائج إلى اسم الملف واسم اللغة وأحد الكيانات التي تم التعرف عليها.

     GET /indexes//{{index_name}}/docs?search=*&$select=metadata_storage_name,language,organizations&$count=true&api-version=2020-06-30
    
  2. راجع الاستعلام السابق للبحث عن "إنشاء فرص بلا حدود". تم الحصول على هذه العبارة من خلال التعرف البصري على الحروف لملف صورة مضمن في مستند PDF. قم بتضمين "تمييز" لتطبيق التنسيق على مصطلحات المطابقة في الحقول المكتظة بالسكان.

     GET /indexes//{{index_name}}/docs?search=creating boundaryless opportunities&$select=content&highlight=content&$count=true&api-version=2020-06-30
    
  3. بالنسبة للاستعلام التالي، قم بتطبيق عامل تصفية. تذكر أن حقل اللغة وكافة حقول الكيان قابلة للتصفية.

     GET /indexes/{{index_name}}/docs?search=*&$filter=organizations/any(organizations: organizations eq 'NASDAQ')&$select=metadata_storage_name,organizations&$count=true&api-version=2020-06-30
    

توضح هذه الاستعلامات بعض الطرق التي يمكنك من خلالها العمل مع بناء جملة الاستعلام وعوامل التصفية على الحقول الجديدة التي تم إنشاؤها بواسطة البحث المعرفي. لمزيد من أمثلة الاستعلام، راجع الأمثلة فيSearch Documents REST API، وأمثلة استعلام بناء الجملة البسيطة، وأمثلة استعلام Full Lucene.

إعادة تعيين وإعادة تشغيل

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

إذا كنت تستخدم المدخل للحذف، وحذف المفهرس أولا، فسيطالبك المدخل بحذف الكائنات المقترنة.

Delete search objects

بدلا من ذلك، يمكنك استخدام DELETE وتوفير عناوين URL لكل كائن. الأمر التالي يحذف المفهرس.

DELETE https://[YOUR-SERVICE-NAME].search.windows.net/indexers/cog-search-demo-idxr?api-version=2020-06-30

يتم إرجاع رمز الحالة 204 عند الحذف الناجح.

التعاليم الرئيسية

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

المهارات المُضمنةقُدِّمت، جنبًا إلى جنب مع تعريف مجموعة المهارات وآليات تسلسل المهارات معًا من خلال المدخلات والمخرجات. لقد تعلمت أيضاً أن outputFieldMappings في تعريف المفهرس مطلوب لتوجيه القيم التي جرى إثراؤها من التدفق إلى فهرس قابل للبحث في خدمة Azure Cognitive Search.

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

تنظيف الموارد

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

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

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

الآن بعد أن أصبحت على دراية بجميع العناصر الموجودة في تدفق إثراء AI، فلنلقِ نظرةً فاحصةً على تعريفات مجموعة المهارات والمهارات الفردية.