الحصول على إجابة من قاعدة معارف QNA Maker

إشعار

يستخدم Azure Open الذكاء الاصطناعي On Your Data نماذج لغة كبيرة (LLMs) لإنتاج نتائج مماثلة ل QnA Maker. إذا كنت ترغب في ترحيل مشروع QnA Maker إلى Azure Open الذكاء الاصطناعي على بياناتك، فيرجى الاطلاع على دليلنا.

إشعار

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

إشعار

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

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

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

  • مورد QnA Maker أُنشئ في مدخل Azure. تذكر معرف Microsoft Entra والاشتراك واسم مورد QnA الذي حددته عند إنشاء المورد.
  • قاعدة معارف مدربة ومنشورة مع الأسئلة والأجوبة، من التشغيل السريع السابق، مُكوَّنة باستخدام بيانات التعريف والدردشة التلقائية.

إشعار

عندما تكون مستعداً لإنشاء إجابة عن سؤال من قاعدة معارفك، عليك تدريب وونشر قاعدة المعارف. عند نشر قاعدة معارفك، تعرض صفحة النشر إعدادات طلب HTTP لإنشاء إجابة. تعرض علامة التبويب cURL الإعدادات المطلوبة لإنشاء إجابة من أداة سطر الأوامر.

استخدام بيانات التعريف لتصفية الإجابة

استخدم قاعدة المعارف من التشغيل السريع السابق للاستعلام عن إجابة استناداً إلى بيانات التعريف.

  1. من صفحة إعدادات قاعدة المعارف، حدد علامة التبويب CURL للاطلاع على مثال للأمر cURL المُستخدم لإنشاء إجابة من قاعدة المعارف.

  2. انسخ الأمر إلى بيئة قابلة للتحرير (مثل ملف نصي) حتى تتمكن من تحرير الأمر. حرّر قيمة السؤال كما يلي بحيث تُستخدم بيانات التعريف لـ service:qna_maker كعامل تصفية لإقرانات الأسئلة والأجوبة.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'top':30, 'question':'size','strictFilters': [{'name':'service','value':'qna_maker'}]}"
    

    السؤال كلمة واحدة فقط هي size، والتي يمكن أن ترجع أياً من إقرانيْ الأسئلة والأجوبة. يأمر الصفيف strictFilters الاستجابة بالاقتصار على إجابات qna_maker فقط.

  3. لا تتضمن الاستجابة سوى الإجابة التي تفي بمعايير التصفية. تم تنسيق استجابة cURL التالية لتوفير قابلية القراءة:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    إذا وُجد إقران لسؤال وجواب لم يطابق مصطلح البحث ولكنه يطابق عامل التصفية، فلن يتم إرجاعه. بدلاً من ذلك، يتم إرجاع إجابة No good match found in KB. العامة.

استخدام خاصية استعلام تتبع الأخطاء

إشعار

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

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

Debug: {Enable:true}
  1. حرّر الأمر cURL بحيث تتضمن خاصية تتبع الأخطاء للاطلاع على مزيد من المعلومات.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'Debug':{'Enable':true}}"
    
  2. تتضمن الاستجابة المعلومات ذات الصلة حول الإجابة. في إخراج JSON التالي، تم استبدال بعض تفاصيل تتبع الأخطاء بعلامة حذف للإيجاز.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

استخدام قاعدة معارف تجريبية

إذا أردت الحصول على إجابة من قاعدة المعارف التجريبية، فاستخدم خاصية نص isTest.

الخاصية قيمة منطقية.

isTest:true

يبدو الأمر cURL بالشكل التالي:

curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'IsTest':true}"

تستخدم استجابة JSON المخطط نفسه الذي يستخدمه استعلام قاعدة المعارف المنشور.

إشعار

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

استخدام cURL للاستعلام عن إجابة للمحادثات التلقائية

  1. في المحطة الطرفية المُمكَّنة لـ cURL، استخدم عبارة إنهاء محادثة مع روبوت الدردشة من المستخدم، مثل Thank you، باعتبارها السؤال. لا توجد أي خصائص أخرى مطلوب تعيينها.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'thank you'}"
    
  2. شغّل أمر cURL واستلم استجابة JSON، شاملةً الدرجة والإجابة.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    نظراً لأن سؤال Thank you مطابق تماماً لأحد أسئلة المحادثات التلقائية، فإن QnA Maker واثق تماماً بدرجة 100. كما أرجَع QnA Maker جميع الأسئلة ذات الصلة، إلى جانب خاصية بيانات التعريف التي تتضمن معلومات علامة بيانات تعريف المحادثات التلقائية.

استخدام الحد والإجابة الافتراضية

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

  1. أضف الخاصية threshold لطلب إجابة لـ size بحد 80% أو أفضل. يُفترض ألا تجد قاعدة المعارف هذه الإجابة لأن درجة السؤال 71%. ترجِع النتيجة الإجابة الافتراضية التي قدمتها عند إنشاء قاعدة المعارف.

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':80.00}"
    
  2. شغّل أمر cURL واستلم استجابة JSON.

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    أرجَع QnA Maker درجة 0، مما يعني عدم الثقة. كما أرجَع الإجابة الافتراضية.

  3. غيّر قيمة الحد إلى 60% وأعِد طلب الاستعلام:

    curl -X POST https://replace-with-your-resource-name.azurewebsites.net/qnamaker/knowledgebases/replace-with-your-knowledge-base-id/generateAnswer -H "Authorization: EndpointKey replace-with-your-endpoint-key" -H "Content-type: application/json" -d "{'question':'size', 'scoreThreshold':60.00}"
    

    لقد وجد JSON الذي تم إرجاعه الإجابة.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

استخدام مصادر البيانات غير المنظمة

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

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

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

  • مورد QnA Maker أُنشئ في مدخل Azure. تذكر معرف Microsoft Entra والاشتراك واسم مورد QnA الذي حددته عند إنشاء المورد.
  • قاعدة معارف مدربة ومنشورة مع الأسئلة والأجوبة، من التشغيل السريع السابق، مُكوَّنة باستخدام بيانات التعريف والدردشة التلقائية.

إشعار

عندما تكون مستعداً لإنشاء إجابة عن سؤال من قاعدة معارفك، عليك تدريب وونشر قاعدة المعارف. عند نشر قاعدة معارفك، تعرض صفحة النشر إعدادات طلب HTTP لإنشاء إجابة. تعرض علامة التبويب Postman الإعدادات المطلوبة لإنشاء إجابة.

إعداد Postman للطلبات

يستخدم هذا التشغيل السريع الإعدادات نفسها لطلب POST في Postman، ثم يكوّن JSON لنص POST المُرسل إلى الخدمة استناداً إلى ما تحاول الاستعلام عنه.

استخدم هذا الإجراء لتكوين Postman، ثم اقرأ كل قسم لاحق لتكوين JSON لنص POST.

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

    الاسم الإعدادات الغرض والقيمة
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer هذا أسلوب HTTP ومسار عنوان URL.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker وهذا مضيف عنوان URL. عليك سلسلة قيم Host وPost للحصول على عنوان URL الكامل لـ GenerateAnswer.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx قيمة العنوان لتخويل طلبك إلى Azure.
    Content-type application/json قيمة العنوان لمحتواك.
    {"question":"<Your question>"} نص طلب POST ككائن JSON. ستتغير هذه القيمة في كل قسم من الأقسام التالية وفقاً للغرض المنوط بالاستعلام.

    هام

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

  2. افتح Postman وأنشئ طلب POST أساسي جديد باستخدام إعدادات قاعدة معارفك المنشورة. في الأقسام التالية، غيّر JSON لنص POST لتغيير الاستعلام إلى قاعدة معارفك.

استخدام بيانات التعريف لتصفية الإجابة

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

  1. في Postman، غيّر JSON الخاص بالاستعلام فقط عن طريق إضافة الخاصية strictFilters مع إقران الاسم/القيمة لـ service:qna_maker. يُفترض أن يكون JSON للنص كما يلي:

    {
        'question':'size',
        'strictFilters': [
            {
                'name':'service','value':'qna_maker'
            }
        ]
    }
    

    السؤال كلمة واحدة فقط هي size، والتي يمكن أن ترجع أياً من إقرانيْ الأسئلة والأجوبة. يأمر الصفيف strictFilters الاستجابة بالاقتصار على إجابات qna_maker فقط.

  2. لا تتضمن الاستجابة سوى الإجابة التي تفي بمعايير التصفية.

    تم تنسيق الاستجابة التالية لتوفير قابلية القراءة:

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 68.76,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    إذا وُجد إقران لسؤال وجواب لم يطابق مصطلح البحث ولكنه يطابق عامل التصفية، فلن يتم إرجاعه. بدلاً من ذلك، يتم إرجاع إجابة No good match found in KB. العامة.

استخدام خاصية استعلام تتبع الأخطاء

إشعار

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

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

  1. في Postman، غيّر JSON للنص فقط عن طريق إضافة الخاصية debug. يُفترض أن يكون JSON كما يلي:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. تتضمن الاستجابة المعلومات ذات الصلة حول الإجابة. في إخراج JSON التالي، تم استبدال بعض تفاصيل تتبع الأخطاء بعلامة حذف.

    {
        "answers": [
            {
                "questions": [
                    "How do I share a knowledge base with others?"
                ],
                "answer": "Sharing works at the level of a QnA Maker service, that is, all knowledge bases in the service will be shared.",
                "score": 56.07,
                "id": 5,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": {
            "userQuery": {
                "question": "How do I programmatically update my Knowledge Base?",
                "top": 1,
                "userId": null,
                "strictFilters": [],
                "isTest": false,
                "debug": {
                    "enable": true,
                    "recordL1SearchLatency": false,
                    "mockQnaL1Content": null
                },
                "rankerType": 0,
                "context": null,
                "qnaId": 0,
                "scoreThreshold": 0.0
            },
            "rankerInfo": {
                "specialFuzzyQuery": "how do i programmatically~6 update my knowledge base",
                "synonyms": "what s...",
                "rankerLanguage": "English",
                "rankerFileName": "https://qnamakerstore.blob.core.windows.net/qnamakerdata/rankers/ranker-English.ini",
                "rankersDirectory": "D:\\home\\site\\wwwroot\\Data\\QnAMaker\\rd0003ffa60fc45.24.0\\RankerData\\Rankers",
                "allQnAsfeatureValues": {
                    "WordnetSimilarity": {
                        "5": 0.54706300120043716,...
                    },
                    ...
                },
                "rankerVersion": "V2",
                "rankerModelType": "TreeEnsemble",
                "rankerType": 0,
                "indexResultsCount": 25,
                "reRankerResultsCount": 1
            },
            "runtimeVersion": "5.24.0",
            "indexDebugInfo": {
                "indexDefinition": {
                    "name": "064a4112-bd65-42e8-b01d-141c4c9cd09e",
                    "fields": [...
                    ],
                    "scoringProfiles": [],
                    "defaultScoringProfile": null,
                    "corsOptions": null,
                    "suggesters": [],
                    "analyzers": [],
                    "tokenizers": [],
                    "tokenFilters": [],
                    "charFilters": [],
                    "@odata.etag": "\"0x8D7A920EA5EE6FE\""
                },
                "qnaCount": 117,
                "parameters": {},
                "azureSearchResult": {
                    "continuationToken": null,
                    "@odata.count": null,
                    "@search.coverage": null,
                    "@search.facets": null,
                    "@search.nextPageParameters": null,
                    "value": [...],
                    "@odata.nextLink": null
                }
            },
            "l1SearchLatencyInMs": 0,
            "qnaL1Results": {...}
        },
        "activeLearningEnabled": true
    }
    

استخدام قاعدة معارف تجريبية

إذا أردت الحصول على إجابة من قاعدة المعارف التجريبية، فاستخدم خاصية نص isTest.

في Postman، غيّر JSON للنص فقط عن طريق إضافة الخاصية isTest. يُفترض أن يكون JSON كما يلي:

{
    'question':'size',
    'isTest': true
}

تستخدم استجابة JSON المخطط نفسه الذي يستخدمه استعلام قاعدة المعارف المنشور.

إشعار

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

الاستعلام عن إجابة للمحادثات التلقائية

  1. في Postman، غيّر JSON للنص فقط إلى عبارة إنهاء محادثة من المستخدم. يُفترض أن يكون JSON كما يلي:

    {
        'question':'thank you'
    }
    
  2. تتضمن الاستجابة الدرجة والإجابة.

    {
      "answers": [
          {
              "questions": [
                  "I thank you",
                  "Oh, thank you",
                  "My sincere thanks",
                  "My humblest thanks to you",
                  "Marvelous, thanks",
                  "Marvelous, thank you kindly",
                  "Marvelous, thank you",
                  "Many thanks to you",
                  "Many thanks",
                  "Kthx",
                  "I'm grateful, thanks",
                  "Ahh, thanks",
                  "I'm grateful for that, thank you",
                  "Perfecto, thanks",
                  "I appreciate you",
                  "I appreciate that",
                  "I appreciate it",
                  "I am very thankful for that",
                  "How kind, thank you",
                  "Great, thanks",
                  "Great, thank you",
                  "Gracias",
                  "Gotcha, thanks",
                  "Gotcha, thank you",
                  "Awesome thanks!",
                  "I'm grateful for that, thank you kindly",
                  "thank you pal",
                  "Wonderful, thank you!",
                  "Wonderful, thank you very much",
                  "Why thank you",
                  "Thx",
                  "Thnx",
                  "That's very kind",
                  "That's great, thanks",
                  "That is lovely, thanks",
                  "That is awesome, thanks!",
                  "Thanks bot",
                  "Thanks a lot",
                  "Okay, thanks!",
                  "Thank you so much",
                  "Perfect, thanks",
                  "Thank you my friend",
                  "Thank you kindly",
                  "Thank you for that",
                  "Thank you bot",
                  "Thank you",
                  "Right on, thanks very much",
                  "Right on, thanks a lot",
                  "Radical, thanks",
                  "Rad, thanks",
                  "Rad thank you",
                  "Wonderful, thanks!",
                  "Thanks"
              ],
              "answer": "You're welcome.",
              "score": 100.0,
              "id": 75,
              "source": "qna_chitchat_Professional.tsv",
              "metadata": [
                  {
                      "name": "editorial",
                      "value": "chitchat"
                  }
              ],
              "context": {
                  "isContextOnly": false,
                  "prompts": []
              }
          }
      ],
      "debugInfo": null,
      "activeLearningEnabled": true
    }
    

    نظراً لأن سؤال Thank you مطابق تماماً لأحد أسئلة المحادثات التلقائية، فإن QnA Maker واثق تماماً بدرجة 100. كما أرجَع QnA Maker جميع الأسئلة ذات الصلة، إلى جانب خاصية بيانات التعريف التي تتضمن معلومات علامة بيانات تعريف المحادثات التلقائية.

استخدام الحد والإجابة الافتراضية

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

  1. في Postman، غيّر JSON للنص فقط إلى عبارة إنهاء محادثة من المستخدم. يُفترض أن يكون JSON كما يلي:

    {
        'question':'size',
        'scoreThreshold':80.00
    }
    

    يجب ألا تجد قاعدة معارف هذه الإجابة لأن درجة السؤال 71%، وبدلاً من ذلك ترجِع الإجابة الافتراضية التي قدمتها عند إنشاء قاعدة المعارف.

    استجابة JSON التي تم إرجاعها، شاملةً الدرجة والإجابة، هي:

    {
        "answers": [
            {
                "questions": [],
                "answer": "No good match found in KB.",
                "score": 0.0,
                "id": -1,
                "source": null,
                "metadata": []
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

    أرجَع QnA Maker درجة 0، مما يعني عدم الثقة. كما أرجَع الإجابة الافتراضية.

  2. غيّر قيمة الحد إلى 60% وأعِد طلب الاستعلام:

    {
        'question':'size',
        'scoreThreshold':60.00
    }
    

    لقد وجد JSON الذي تم إرجاعه الإجابة.

    {
        "answers": [
            {
                "questions": [
                    "How large a knowledge base can I create?",
                    "What is the max size of a knowledge base?",
                    "How many GB of data can a knowledge base hold?"
                ],
                "answer": "The size of the knowledge base depends on the SKU of Azure search you choose when creating the QnA Maker service. Read [here](../concepts/azure-resources.md) for more details.",
                "score": 71.1,
                "id": 3,
                "source": "https://learn.microsoft.com/azure/ai-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

يمكنك استخدام مصادر البيانات غير المنظمة.

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

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

تعرّف على المزيد حول بيانات التعريف: