توسيع التطبيق في وقت تشغيل التنبؤ

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

يتضمن تغييران في مخطط وقت تشغيل التنبؤ ما يلي:

كيانات خارجية

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

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

الكيانات الخارجية هي آلية لتوسيع أي نوع كيان مع الاستمرار في استخدامها كإشارات إلى نماذج أخرى.

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

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

الكيان موجود بالفعل في التطبيق

يجب أن تكون قيمة entityName الكيان الخارجي ، التي تم تمريرها في نص POST لطلب نقطة النهاية ، موجودة بالفعل في التطبيق المدرب والمنشور في وقت تقديم الطلب. لا يهم نوع الكيان ، فجميع الأنواع مدعومة.

المنعطف الأول في المحادثة

ضع في اعتبارك أول كلام في محادثة روبوت الدردشة حيث يقوم المستخدم بإدخال المعلومات غير المكتملة التالية:

Send Hazem a new message

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

    "externalEntities": [
        {
            "entityName":"contacts",
            "startIndex": 5,
            "entityLength": 5,
            "resolution": {
                "employeeID": "05013",
                "preferredContactType": "TeamsChat"
            }
        }
    ]

تتضمن استجابة التنبؤ هذا الكيان الخارجي، مع جميع الكيانات المتوقعة الأخرى، لأنه معرف في الطلب.

المنعطف الثاني في المحادثة

يستخدم كلام المستخدم التالي في روبوت الدردشة مصطلحا أكثر غموضا:

Send him a calendar reminder for the party.

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

    "externalEntities": [
        {
            "entityName":"contacts",
            "startIndex": 5,
            "entityLength": 3,
            "resolution": {
                "employeeID": "05013",
                "preferredContactType": "TeamsChat"
            }
        }
    ]

تتضمن استجابة التنبؤ هذا الكيان الخارجي، مع جميع الكيانات المتوقعة الأخرى، لأنه معرف في الطلب.

تجاوز تنبؤات النموذج الحالية

preferExternalEntities تحدد خاصية الخيارات أنه إذا أرسل المستخدم كيانا خارجيا يتداخل مع كيان متوقع يحمل نفس الاسم، يختار LUIS الكيان الذي تم تمريره أو الكيان الموجود في النموذج.

على سبيل المثال، ضع في اعتبارك الاستعلام today I'm free. يكتشف LUIS today كتاريخtimeV2 بالاستجابة التالية:

"datetimeV2": [
    {
        "type": "date",
        "values": [
            {
                "timex": "2019-06-21",
                "value": "2019-06-21"
            }
        ]
    }
]

إذا أرسل المستخدم الكيان الخارجي:

{
    "entityName": "datetimeV2",
    "startIndex": 0,
    "entityLength": 5,
    "resolution": {
        "date": "2019-06-21"
    }
}

preferExternalEntities إذا تم تعيين إلى false، يقوم LUIS بإرجاع استجابة كما لو لم يتم إرسال الكيان الخارجي.

"datetimeV2": [
    {
        "type": "date",
        "values": [
            {
                "timex": "2019-06-21",
                "value": "2019-06-21"
            }
        ]
    }
]

preferExternalEntities إذا تم تعيين إلى true، يقوم LUIS بإرجاع استجابة بما في ذلك:

"datetimeV2": [
    {
        "date": "2019-06-21"
    }
]

الدقة

ترجع الخاصية الاختيارية في استجابة التنبؤresolution ، مما يسمح لك بتمرير بيانات التعريف المقترنة بالكيان الخارجي، ثم استلامها مرة أخرى في الاستجابة.

الغرض الأساسي هو توسيع الكيانات المعدة مسبقا ولكن لا يقتصر على نوع الكيان هذا.

resolution يمكن أن تكون الخاصية رقما أو سلسلة أو كائنا أو صفيف:

  • "دالاس"
  • {"نص": "قيمة"}
  • 12345
  • ["a", "b", "c"]

القوائم الديناميكية

تسمح لك القوائم الديناميكية بتوسيع كيان قائمة مدرب ومنشور موجود بالفعل، موجود بالفعل في تطبيق LUIS.

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

  • في وقت طلب نقطة نهاية التنبؤ بالاستعلام.
  • لطلب واحد.

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

نص طلب JSON للقائمة الديناميكية

أرسل نص JSON التالي لإضافة قائمة فرعية جديدة مع مرادفات إلى القائمة، وتوقع كيان القائمة للنص، LUISمع POST طلب التنبؤ بالاستعلام:

{
    "query": "Send Hazem a message to add an item to the meeting agenda about LUIS.",
    "options":{
        "timezoneOffset": "-8:00"
    },
    "dynamicLists": [
        {
            "listEntity*":"ProductList",
            "requestLists":[
                {
                    "name": "Azure Cognitive Services",
                    "canonicalForm": "Azure-Cognitive-Services",
                    "synonyms":[
                        "language understanding",
                        "luis",
                        "qna maker"
                    ]
                }
            ]
        }
    ]
}

تتضمن استجابة التنبؤ كيان القائمة هذا، مع جميع الكيانات المتوقعة الأخرى، لأنه معرف في الطلب.

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