احصل على إجابة باستخدام 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 الخاصة بك.
للحصول على تفاصيل نقطة النهاية الخاصة بك:
تسجيل الدخول إلىhttps://www.qnamaker.ai.
في My knowledge bases، حدد View Code لقاعدة المعارف الخاصة بك.
احصل على تفاصيل نقطة نهاية GenerateAnswer.
يمكنك أيضاً الحصول على تفاصيل نقطة النهاية من علامة التبويب Settings في قاعدة معارفك.
تكوين طلب GenerateAnswer
يمكنك استدعاء GenerateAnswer مع طلب HTTP POST. للحصول على نموذج التعليمة البرمجية الذي يوضح كيفية استدعاء GenerateAnswer، راجع التشغيلات السريعة.
طلب POST يستخدم:
- URI parameters المطلوبة
- خاصية الرأس المطلوبة،
Authorization
، للأمان - body properties المطلوبة.
يحتوي عنوان "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.