Bir soru-cevap Oluşturucu Bilgi Bankası 'ndan yanıt alın

Not

Soru ve yanıtlama özelliğinin daha yeni bir sürümü artık Dil için Azure Bilişsel Hizmet'in bir parçası olarak kullanılabilir. Daha fazla bilgi için bkz. Dil için Azure Bilişsel Hizmet Belgeleri. Dil Hizmeti'nin içindeki soru yanıtlama özellikleri için bkz. soru yanıtlama. Mevcut bilgi tabanlarını geçirme hakkında bilgi için geçiş kılavuzuna bakın.

Not

Bu belge, en son sürüm için geçerlidir. En son soru yanıt API 'Lerini kullanma hakkında bilgi edinmek için soru yanıtlama yazma kılavuzunabakın.

Bu cURL tabanlı hızlı başlangıç, bilgi bankasından yanıt alma konusunda size yol verir.

Önkoşullar

  • Kaynak Soru-Cevap Oluşturma oluşturulan bir Azure portal. Kaynağı Azure Active Directory seçtiğiniz Kaynak Kimliği, Abonelik ve Soru-Cevap kaynak adını unutmayın.
  • Önceki hızlı başlangıçtan gelen ve meta veriler ve Chit sohbeti ile yapılandırılmış soruları ve yanıtları olan, eğitilmiş ve yayımlanmış bir bilgi bankası.

Not

Bilgi bankasından bir soruya yanıt oluşturmak için hazır olduğunda, bilgi tabanınızı eğitip yayımlamanız gerekir. Bilgi bankası yayımlanırken Yayımla sayfasında yanıt oluşturmak için HTTP isteği ayarları görüntülenir. cURL sekmesi, komut satırı aracından yanıt oluşturmak için gereken ayarları gösterir.

Yanıtı filtrelemek için meta verileri kullanma

Meta verileri temel alan bir yanıtı sorgulamak için önceki hızlı bilgi bankasından kullanın.

  1. Bilgi bankasının Ayarlar sayfasında CURL sekmesini seçerek bilgi bankasından yanıt oluşturmak için kullanılan örnek bir cURL komutunu görüntüleyin.

  2. Komutu düzenlemek için komutu düzenlenebilir bir ortama (metin dosyası gibi) kopyalayın. Soru değerini, meta verileri service:qna_maker QnA çiftleri için filtre olarak kullanılacak şekilde aşağıdaki gibi düzenleyin.

    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'}]}"
    

    Soru yalnızca tek bir sözcük olan size ve iki soru-cevap çifti arasında bir değer getirebitir. dizisi strictFilters yanıta yalnızca yanıtları azaltmasını qna_maker söyler.

  3. Yanıt yalnızca filtre ölçütlerine uyan yanıtı içerir. Aşağıdaki cURL yanıtı okunabilirlik için biçimlendirildi:

    {
        "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://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Arama terimini karşılamasa ama filtreyi karşılasa bir soru-cevap çifti varsa, bu döndürülecek değildir. Bunun yerine genel yanıt No good match found in KB. döndürülür.

Hata ayıklama sorgusu özelliğini kullanma

Not

Herhangi bir bağımlılık için Hata Ayıklama özelliğinin kullanılması önerilmez. Sorun gidermede ürün ekibine yardımcı olmak için bu özellik eklendi.

Hata ayıklama bilgileri, döndürülen yanıtın nasıl belirlendi olduğunu anlamanıza yardımcı olur. Faydalıdır ancak gerekli değildir. Hata ayıklama bilgileriyle bir yanıt oluşturmak için özelliğini debug ekleyin:

Debug: {Enable:true}
  1. Daha fazla bilgi için hata ayıklama özelliğini eklemek için cURL komutunu düzenleyin.

    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. Yanıt, yanıtla ilgili bilgileri içerir. Aşağıdaki JSON çıkışında bazı hata ayıklama ayrıntıları, ayrıntıya inmesi için üç noktayla değiştirilmiştir.

    {
        "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://docs.microsoft.com/azure/cognitive-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
    }
    

Test bilgi bankası kullanma

Test bilgi bankasından yanıt almak için body özelliğini isTest kullanın.

özelliği bir boole değeridir.

isTest:true

cURL komutu şöyledir:

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 yanıtı, yayımlanan bilgi bankası sorgusuyla aynı şemayı kullanır.

Not

Test ve yayımlanan bilgi bankasının tam olarak aynı olması, test dizininin kaynakta yer alan tüm bilgi bankası arasında paylaştırılacağı için bazı küçük farklılıklar olabilir.

Chit-chat yanıtını sorgulamak için cURL kullanma

  1. cURL etkin terminalde, kullanıcıdan gelen soru gibi bir bot konuşma sonu Thank you deyimi kullanın. Ayar için başka özellik yok.

    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 komutunu çalıştırın ve puan ve yanıt da dahil olmak üzere JSON yanıtını alır.

    {
      "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 sorusu bir genel konuşma sorusuyla tam olarak eşleştiği için Soru-Cevap Oluşturma tam olarak emindir ve 100 puan döndürür. Soru-Cevap Oluşturma ilgili tüm soruları ve Chit-chat meta veri etiketi bilgilerini içeren meta veri özelliğini de döndürüldü.

Eşiği ve varsayılan yanıtı kullanma

Yanıt için bir minimum eşik isteğide bulundurebilirsiniz. Eşik karşılanmazsa varsayılan yanıt döndürülür.

  1. %80 veya daha yüksek bir eşiğe sahip bir yanıt threshold size istemek için özelliğini ekleyin. Sorunun puanı %71 olduğundan bilgi bankası bu yanıtı bulmaz. Sonuç, bilgi bankası oluşturulduğunda sağlanan varsayılan yanıtı döndürür.

    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 komutunu çalıştırın ve JSON yanıtını alır.

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

    Soru-Cevap Oluşturma puan döndürüldü 0 ve bu da güvenin olmadığını ifade etti. Ayrıca varsayılan yanıtı da döndürüldü.

  3. Eşik değerini %60 olarak değiştirin ve sorguyu yeniden isteğiniz:

    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}"
    

    Döndürülen JSON, yanıtı buldu.

    {
        "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://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Yapılandırılmamış veri kaynaklarını kullanma

Artık QNA'ları ayıklamak için kullanılaemeyen yapılandırılmamış belgeler ekleme olanağını destekliyoruz. Kullanıcı, sorguya yanıt getirirken GenerateAnswer API'sinde yapılandırılmamış veri kümelerini dahil etmek veya hariç tutmak seçebilir. GA hizmette yapılandırılmamış veri kümelerini desteklemez, bu yalnızca özel soru yanıtlamaya dahildir.

Bu Postman tabanlı hızlı başlangıç, bilgi tabanınızdan yanıt alma konusunda size yol gösterir.

Önkoşullar

  • Azure portal oluşturulan soru-cevap oluşturma kaynağı . kaynağı oluştururken seçtiğiniz Azure Active Directory kimliği, aboneliğiniz, qna kaynak adınızı unutmayın.
  • Önceki hızlıbaşlangıçta, meta veriler ve tek BT sohbeti ile yapılandırılan, sorular ve yanıtlarla ilgili eğitim ve yanıt verilen bir bilgi tabanı.

Not

Bilgi tabanınızdan bir soruya yanıt oluşturmaya hazırsanız, bilgi bankasını eğitmeniz ve yayımlamanız gerekir. Bilgi Bankası 'niz yayımlandığında Yayımla sayfası, yanıt oluşturmak için http isteği ayarlarını görüntüler. Postman sekmesi, yanıt oluşturmak için gereken ayarları gösterir.

İstekler için Postman ayarla

Bu hızlı başlangıç, Postman Post isteği için aynı ayarları kullanır ve daha sonra, sorgulanılmaya çalıştığınız öğesine göre Service 'e gönderilen JSON gövde gönderisini yapılandırır.

Postman 'ı yapılandırmak için bu yordamı kullanın, sonra JSON gövdesini yapılandırmak için sonraki her bölümü okuyun.

  1. bilgi bankası 'nın Ayarlar sayfasında, bilgi bankasından yanıt oluşturmak için kullanılan yapılandırmayı görmek için postman sekmesini seçin. Postman 'da kullanmak için aşağıdaki bilgileri kopyalayın.

    Name Ayar Amaç ve değer
    POST /knowledgebases/replace-with-your-knowledge-base-id/generateAnswer Bu, URL için HTTP yöntemidir ve yoldur.
    Host https://YOUR-RESOURCE_NAME.azurewebsites.net/qnamaker Bu, URL 'nin ana bilgisayarı. Tüm generateAnswer URL 'sini almak için Konağı ve gönderi değerlerini birleştirin.
    Authorization EndpointKey xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Azure 'a isteğinizi yetkilendirmek için üst bilgi değeri.
    Content-type application/json İçeriğiniz için üst bilgi değeri.
    {"question":"<Your question>"} POST isteğinin gövdesi JSON nesnesi olarak. Bu değer, sorgunun ne işe hazırlandığına bağlı olarak, aşağıdaki her bir bölümde değişecektir.
  2. Postman 'ı açın ve yayımlanan Bilgi Bankası ayarlarınıza sahip yeni bir temel gönderi isteği oluşturun. Aşağıdaki bölümlerde, POSTAYı Bilgi Bankası ile değiştirmek için JSON gövdesini değiştirin.

Yanıtı filtrelemek için meta verileri kullanma

Önceki bir hızlı başlangıçta, iki farklı soruyu ayırt etmek için meta veriler iki QnA çiftlerine eklenmiştir. Filtreyi yalnızca ilgili QnA çiftiyle kısıtlamak için sorguya meta verileri ekleyin.

  1. Postman 'da, ' strictFilters ın ad/değer çiftine sahip özelliğini ekleyerek yalnızca sorgu json ' ı değiştirin service:qna_maker . JSON gövdesi şu olmalıdır:

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

    Bu soru, size iki soru ve yanıt çiftinin her birini döndürebilen tek bir sözcüktür. strictFiltersDizi, yanıta yalnızca yanıtları azaltmasını söyler qna_maker .

  2. Yanıt yalnızca filtre ölçütlerini karşılayan yanıtı içerir.

    Aşağıdaki yanıt okunabilirlik için biçimlendirildi:

    {
        "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://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "service",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null
    }
    

    Arama terimini karşılamayan ancak filtreye uyan bir soru ve yanıt çifti varsa döndürülmüyor. Bunun yerine, genel yanıt No good match found in KB. döndürülür.

Hata ayıklama sorgu özelliğini kullan

Not

Herhangi bir bağımlılık için hata ayıklama özelliğini kullanmanızı önermiyoruz. Bu özellik, ürün ekibine sorun gidermeye yardımcı olmak için eklenmiştir.

Hata ayıklama bilgileri döndürülen yanıtın nasıl belirlendiğini anlamanıza yardımcı olur. Faydalı olsa da gerekli değildir. Hata ayıklama bilgileriyle bir yanıt oluşturmak için, özelliği ekleyin debug :

  1. Postman 'da, özelliği ekleyerek yalnızca JSON gövdesini değiştirin debug . JSON şu olmalıdır:

    {
        'question':'size',
        'Debug': {
            'Enable':true
        }
    
    }
    
  2. Yanıt, Yanıtla ilgili bilgileri içerir. Aşağıdaki JSON çıktısında, bazı hata ayıklama ayrıntıları üç nokta ile değiştirilmiştir.

    {
        "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://docs.microsoft.com/azure/cognitive-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
    }
    

Sınama Bilgi Bankası 'nı kullanın

Sınama Bilgi Bankası 'ndan bir yanıt almak istiyorsanız isTest Body özelliğini kullanın.

Postman 'da, özelliği ekleyerek yalnızca JSON gövdesini değiştirin isTest . JSON şu olmalıdır:

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

JSON yanıtı yayımlanan Bilgi Bankası sorgusuyla aynı şemayı kullanır.

Not

Test ve yayımlanan bilgi tabanı tam olarak aynı ise, test dizini kaynaktaki tüm bilgi tabanları arasında paylaşıldığından bazı hafif değişimler de olabilir.

Bir CHIT-chat yanıtı sorgusu

  1. Postman 'da, kullanıcıdan yalnızca JSON gövdesini bir konuşma bitiş bildirimiyle değiştirin. JSON şu olmalıdır:

    {
        'question':'thank you'
    }
    
  2. Yanıt puanı ve yanıtı içerir.

    {
      "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 sorusu bir genel konuşma sorusuyla tam olarak eşleştiği için Soru-Cevap Oluşturma tam olarak emindir ve 100 puan döndürür. Soru-Cevap Oluşturma, tüm ilgili soruları ve CHIT-chat meta veri etiketi bilgilerini içeren Metadata özelliğini de döndürdü.

Eşik ve varsayılan yanıtı kullan

Yanıt için en az bir eşik isteyebilirsiniz. Eşik karşılanmazsa, varsayılan yanıt döndürülür.

  1. Postman 'da, kullanıcıdan yalnızca JSON gövdesini bir konuşma bitiş bildirimiyle değiştirin. JSON şu olmalıdır:

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

    Sorunun puanı %71 olduğundan ve bunun yerine Bilgi Bankası oluşturduğunuzda verdiğiniz varsayılan yanıtı geri döndürtiğinden Bilgi Bankası bu yanıtı bulamaz.

    Puan ve yanıt dahil döndürülen JSON yanıtı:

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

    Soru-Cevap Oluşturma bir puan döndürdü 0 , bu, güven anlamına gelir. Ayrıca varsayılan yanıtı da döndürür.

  2. Eşik değerini %60 olarak değiştirip sorguyu yeniden isteyin:

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

    Döndürülen JSON yanıtı buldu.

    {
        "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://docs.microsoft.com/azure/cognitive-services/qnamaker/troubleshooting",
                "metadata": [
                    {
                        "name": "link_in_answer",
                        "value": "true"
                    },
                    {
                        "name": "server",
                        "value": "qna_maker"
                    }
                ],
                "context": {
                    "isContextOnly": false,
                    "prompts": []
                }
            }
        ],
        "debugInfo": null,
        "activeLearningEnabled": true
    }
    

Yapılandırılmamış veri kaynaklarını kullanın.

Artık QnAs 'yi ayıklamak için kullanılamayan yapılandırılmamış belgeler ekleme özelliğini destekliyoruz. Kullanıcı, sorguya bir yanıt getirilirken, GenerateAnswer API 'sinde yapılandırılmamış veri kümelerini dahil etmek veya hariç tutmak seçebilir. GA hizmetinde yapılandırılmamış veri kümelerini desteklemiyoruz. Yalnızca özel soru yanıtlanmasında desteklenir.

Sonraki adımlar

Meta veriler hakkında daha fazla bilgi edinin: