المهارة المعرفية ل Shaper

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

تتضمن حالات الاستخدام الأساسية لهذه المهارة ما يلي:

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

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

  • تنتج المهارات مخرجات متعددة، ولكنك تريد الجمع في حقل واحد (لا يجب أن يكون نوعا معقدا)، كما هو موضح في السيناريو 2. على سبيل المثال، دمج العناوين والمؤلفين في حقل واحد.

  • تنتج المهارات مخرجات متعددة مع عناصر تابعة، وتريد دمجها. يتم توضيح حالة الاستخدام هذه في السيناريو 3.

اسم الإخراج لمهارة Shaper هو دائما "الإخراج". داخليا، يمكن للبنية الأساسية لبرنامج ربط العمليات التجارية تعيين اسم مختلف، مثل "analyzedText" كما هو موضح في الأمثلة أدناه، ولكن مهارة Shaper نفسها ترجع "الإخراج" في الاستجابة. قد يكون هذا مهما إذا كنت تقوم بتصحيح المستندات التي تم إثراؤها ولاحظت تعارض التسمية، أو إذا قمت ببناء مهارة مخصصة وقمت ببناء الاستجابة بنفسك.

إشعار

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

@odata.type

Microsoft.Skills.Util.ShaperSkill

السيناريو 1: الأنواع المعقدة

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

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

يوفر تعريف المهارة المثال التالي أسماء الأعضاء كمدخل.

{
  "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
  "context": "/document/content/phrases/*",
  "inputs": [
    {
      "name": "text",
      "source": "/document/content/phrases/*"
    },
    {
      "name": "sentiment",
      "source": "/document/content/phrases/*/sentiment"
    }
  ],
  "outputs": [
    {
      "name": "output",
      "targetName": "analyzedText"
    }
  ]
}

فهرس العينة

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

"name":"my-index",
"fields":[
   { "name":"myId", "type":"Edm.String", "key":true, "filterable":true  },
   { "name":"analyzedText", "type":"Edm.ComplexType",
      "fields":[
         {
            "name":"text",
            "type":"Edm.String",
            "facetable":false,
            "filterable":false,
            "searchable":true,
            "sortable":false  },
         {
            "name":"sentiment",
            "type":"Edm.Double",
            "facetable":true,
            "filterable":true,
            "searchable":true,
            "sortable":true }
      }

إدخال المهارة

يمكن أن يكون مستند JSON الوارد الذي يوفر مدخلات قابلة للاستخدام لمهارة Shaper هذه:

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "text": "this movie is awesome",
                "sentiment": 0.9
            }
        }
    ]
}

إخراج المهارة

تنشئ مهارة Shaper عنصرا جديدا يسمى analyzedText مع العناصر المدمجة للنص والمشاعر. يتوافق هذا الإخراج مع مخطط الفهرس. سيتم استيراده وفهرسته في فهرس Azure الذكاء الاصطناعي Search.

{
    "values": [
      {
        "recordId": "1",
        "data":
           {
            "analyzedText": 
              {
                "text": "this movie is awesome" ,
                "sentiment": 0.9
              }
           }
      }
    ]
}

السيناريو 2: دمج الإدخال

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

قد يبدو تعريف مهارة Shaper لهذا السيناريو مثل المثال التالي:

{
    "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
    "context": "/document",
    "inputs": [
        {
            "name": "title",
            "source": "/document/content/title"
        },
        {
            "name": "chapterTitles",
            "source": "/document/content/pages/*/chapterTitles/*/title"
        }
    ],
    "outputs": [
        {
            "name": "output",
            "targetName": "titlesAndChapters"
        }
    ]
}

إخراج المهارة

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

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "titlesAndChapters": {
                    "title": "How to be happy",
                    "chapterTitles": [
                        "Start young",
                        "Laugh often",
                        "Eat, sleep and exercise"
                    ]
                }
            }
        }
    ]
}

السيناريو 3: دمج الإدخال من السياقات المتداخلة

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

يضيف هذا المثال خاصية اختيارية sourceContext إلى إدخال "chapterTitles". خصائص source و sourceContext حصرية بشكل متبادل. إذا كان الإدخال في سياق المهارة، يمكنك استخدام source. إذا كان الإدخال في سياق مختلف عن سياق المهارة، فاستخدم sourceContext. sourceContext يتطلب منك تعريف إدخال متداخل، حيث يحتوي كل إدخال على source الذي يحدد العنصر المحدد المستخدم لملء العقدة المسماة.

قد يبدو تعريف مهارة Shaper لهذا السيناريو مثل المثال التالي:

{
    "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
    "context": "/document",
    "inputs": [
        {
            "name": "title",
            "source": "/document/content/title"
        },
        {
            "name": "chapterTitles",
            "sourceContext": "/document/content/pages/*/chapterTitles/*",
            "inputs": [
              {
                  "name": "title",
                  "source": "/document/content/pages/*/chapterTitles/*/title"
              },
              {
                  "name": "number",
                  "source": "/document/content/pages/*/chapterTitles/*/number"
              }
            ]
        }

    ],
    "outputs": [
        {
            "name": "output",
            "targetName": "titlesAndChapters"
        }
    ]
}

إخراج المهارة

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

{
    "values": [
        {
            "recordId": "1",
            "data": {
                "titlesAndChapters": {
                    "title": "How to be happy",
                    "chapterTitles": [
                      { "title": "Start young", "number": 1},
                      { "title": "Laugh often", "number": 2},
                      { "title": "Eat, sleep and exercise", "number: 3}
                    ]
                }
            }
        }
    ]
}

(راجع أيضًا )