احصل على إجابة باستخدام GenerateAnswer API

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

ملاحظة

سيتم إنهاء خدمة QnA Maker في 31 مارس 2025. يتوفر الآن إصدار أحدث من إمكانية السؤال والإجابة كجزء من Azure الذكاء الاصطناعي Language. للحصول على قدرات الإجابة على الأسئلة داخل خدمة اللغات، انظر سؤال الإجابة. بدءًا من 1 أكتوبر 2022 لن تتمكن من إنشاء موارد جديدة لـ QnA Maker. للحصول على معلومات حول ترحيل قواعد المعرفة الحالية لـ QnA Maker إلى الإجابة عن الأسئلة، راجع دليل الترحيل.

احصل على توقعات الإجابة باستخدام GenerateAnswer API

يمكنك استخدام GenerateAnswer API في برنامج الروبوت أو التطبيق الخاص بك للاستعلام عن قاعدة معارفك بسؤال مستخدم، للحصول على أفضل تطابق من أزواج الأسئلة والأجوبة.

ملاحظة

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

انشر للحصول على نقطة نهاية GenerateAnswer

بعد نشر قاعدة المعارف الخاصة بك، إما من بوابة QnA Maker الإلكترونية، أو باستخدام API، يمكنك الحصول على تفاصيل نقطة نهاية GenerateAnswer الخاصة بك.

للحصول على تفاصيل نقطة النهاية الخاصة بك:

  1. تسجيل الدخول إلى⁧⁩⁩⁦⁧https://www.qnamaker.ai⁩⁩⁦⁧⁩⁩.

  2. في My knowledge bases، حدد View Code لقاعدة المعارف الخاصة بك. لقطة شاشة لقواعد المعرفة الخاصة بي

  3. احصل على تفاصيل نقطة نهاية GenerateAnswer.

    لقطة شاشة لتفاصيل نقطة النهاية

يمكنك أيضاً الحصول على تفاصيل نقطة النهاية من علامة التبويب Settings في قاعدة معارفك.

تكوين طلب GenerateAnswer

يمكنك استدعاء GenerateAnswer مع طلب HTTP POST. للحصول على نموذج التعليمة البرمجية الذي يوضح كيفية استدعاء GenerateAnswer، راجع التشغيلات السريعة.

طلب POST يستخدم:

يحتوي عنوان "URL" الخاص بـ GenerateAnswer على التنسيق التالي:

https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer

تذكر تعيين خاصية رأس HTTP لـ Authorization بقيمة السلسلة EndpointKey بمسافة لاحقة ثم مفتاح نقطة النهاية الموجود في صفحة Settings.

مثال على نص JSON يشبه:

{
    "question": "qna maker and luis",
    "top": 6,
    "isTest": true,
    "scoreThreshold": 30,
    "rankerType": "" // values: QuestionOnly
    "strictFilters": [
    {
        "name": "category",
        "value": "api"
    }],
    "userId": "sd53lsY="
}

تعرف على المزيد حول rankerType.

طلب JSON السابق فقط الإجابات التي تكون بنسبة 30% أو أعلى من الدرجة الحدية.

إنشاء خصائص استجابة الإجابة

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

{
    "answers": [
        {
            "score": 38.54820341616869,
            "Id": 20,
            "answer": "There is no direct integration of LUIS with QnA Maker. But, in your bot code, you can use LUIS and QnA Maker together. [View a sample bot](https://github.com/Microsoft/BotBuilder-CognitiveServices/tree/master/Node/samples/QnAMaker/QnAWithLUIS)",
            "source": "Custom Editorial",
            "questions": [
                "How can I integrate LUIS with QnA Maker?"
            ],
            "metadata": [
                {
                    "name": "category",
                    "value": "api"
                }
            ]
        }
    ]
}

استجاب JSON السابق بإجابة بنتيجة 38.5%.

أسئلة مطابقة فقط، عن طريق النص

بشكل افتراضي، يبحث QnA Maker في الأسئلة والأجوبة. إذا كنت تريد البحث في الأسئلة فقط، لإنشاء إجابة، استخدم RankerType=QuestionOnly في نص POST لطلب GenerateAnswer.

يمكنك البحث في kb المنشور، باستخدام isTest=false، أو في kb الاختباري باستخدام isTest=true.

{
  "question": "Hi",
  "top": 30,
  "isTest": true,
  "RankerType":"QuestionOnly"
}

استخدم QnA Maker مع روبوت في C#‎

يوفر إطار عمل الروبوت الوصول إلى خصائص QnA Maker باستخدام getAnswer API:

using Microsoft.Bot.Builder.AI.QnA;
var metadata = new Microsoft.Bot.Builder.AI.QnA.Metadata();
var qnaOptions = new QnAMakerOptions();

metadata.Name = Constants.MetadataName.Intent;
metadata.Value = topIntent;
qnaOptions.StrictFilters = new Microsoft.Bot.Builder.AI.QnA.Metadata[] { metadata };
qnaOptions.Top = Constants.DefaultTop;
qnaOptions.ScoreThreshold = 0.3F;
var response = await _services.QnAServices[QnAMakerKey].GetAnswersAsync(turnContext, qnaOptions);

طلب JSON السابق فقط الإجابات التي تكون بنسبة 30% أو أعلى من الدرجة الحدية.

استخدم QnA Maker مع روبوت في Node.js

يوفر إطار عمل الروبوت الوصول إلى خصائص QnA Maker باستخدام getAnswer API:

const { QnAMaker } = require('botbuilder-ai');
this.qnaMaker = new QnAMaker(endpoint);

// Default QnAMakerOptions
var qnaMakerOptions = {
    ScoreThreshold: 0.30,
    Top: 3
};
var qnaResults = await this.qnaMaker.getAnswers(stepContext.context, qnaMakerOptions);

طلب JSON السابق فقط الإجابات التي تكون بنسبة 30% أو أعلى من الدرجة الحدية.

احصل على إجابات دقيقة باستخدام GenerateAnswer API

نحن نقدم ميزة الإجابة الدقيقة فقط مع الإصدار المُدار من QnA Maker.

أخطاء HTTP الشائعة

رمز التفسير
2xx نجاح
400 معلمات الطلب غير صحيحة مما يعني أن المعلمات المطلوبة مفقودة أو مشوهة أو كبيرة جداً
400 نص الطلب غير صحيح مما يعني أن JSON مفقود أو مشوه أو كبير جداً
401 مفتاح غير صالح
403 ممنوع - ليس لديك أذونات صحيحة
404 KB غير موجود
410 تم إيقاف واجهة برمجة التطبيقات هذه ولم تعد متوفرة

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

توفر صفحة Publish أيضاً معلومات من أجل إنشاء إجابة باستخدام Postman أو cURL.