GenerateAnswer API'siyle yanıt alın

Bir kullanıcının sorusuna tahmin edilen yanıtı almak için GenerateAnswer API'sini kullanın. Bir bilgi bankası yayımladığınızda, Yayımla sayfasında bu API'nin nasıl kullanılacağıyla ilgili bilgileri görebilirsiniz. Api'yi, yanıtları meta veri etiketlerine göre filtreleyip test sorgu dizesi parametresiyle uç noktadan bilgi bankası test etmek için de yapılandırabilirsiniz.

Not

Soru-Cevap Oluşturma hizmeti 31 Mart 2025'te kullanımdan kaldırılıyor. Soru ve yanıtlama özelliğinin daha yeni bir sürümü artık Azure AI Dili'nin bir parçası olarak kullanılabilir. Dil Hizmeti'nin içindeki soru yanıtlama özellikleri için bkz. soru yanıtlama. 1 Ekim 2022'den itibaren yeni Soru-Cevap Oluşturma kaynakları oluşturamayacaksınız. Soru-Cevap Oluşturma bilgi bankalarını soru yanıtlamaya geçirme hakkında bilgi için geçiş kılavuzuna bakın.

GenerateAnswer API'siyle yanıt tahminleri alma

Soru ve yanıt çiftlerinden en iyi eşleşmeyi elde etmek için botunuzda veya uygulamanızda GenerateAnswer API'sini kullanarak bilgi bankası bir kullanıcı sorusuyla sorgularsınız.

Not

Bu belgeler en son sürüm için geçerli değildir. En son soruyu yanıtlama API'lerini kullanma hakkında bilgi edinmek için soru yanıtlama hızlı başlangıç kılavuzuna başvurun.

GenerateAnswer uç noktasını almak için yayımlama

Soru-Cevap Oluşturma portalından veya API'yi kullanarak bilgi bankası yayımladıktan sonra GenerateAnswer uç noktanızın ayrıntılarını alabilirsiniz.

Uç nokta ayrıntılarınızı almak için:

  1. https://www.qnamaker.ai adresinde oturum açın.

  2. Bilgi bankalarım bölümünde bilgi bankası için Kodu Görüntüle'yi seçin. Bilgi bankalarım'ın ekran görüntüsü

  3. GenerateAnswer uç noktası ayrıntılarınızı alın.

    Uç nokta ayrıntılarının ekran görüntüsü

Uç nokta ayrıntılarınızı bilgi bankası Ayarlar sekmesinden de alabilirsiniz.

GenerateAnswer istek yapılandırması

GenerateAnswer'ı bir HTTP POST isteğiyle çağırırsınız. GenerateAnswer'ın nasıl çağrıldığını gösteren örnek kod için hızlı başlangıçlara bakın.

POST isteği aşağıdakileri kullanır:

GenerateAnswer URL'si aşağıdaki biçime sahiptir:

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

HTTP üst bilgi özelliğini Authorization , sonunda boşluk olan dizenin EndpointKey değeriyle ve ardından Ayarlar sayfasında bulunan uç nokta anahtarıyla ayarlamayı unutmayın.

Örnek bir JSON gövdesi şöyle görünür:

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

rankerType hakkında daha fazla bilgi edinin.

Önceki JSON yalnızca eşik puanının %30'unu veya üzerinde olan yanıtları istedi.

GenerateAnswer yanıt özellikleri

Yanıt, yanıtı görüntülemek için ihtiyacınız olan tüm bilgileri içeren bir JSON nesnesidir ve varsa konuşmanın bir sonraki dönüşüdür.

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

Önceki JSON yanıtını %38,5 puanla verdi.

Yalnızca soruları metne göre eşleştir

Soru-Cevap Oluşturma varsayılan olarak soruları ve yanıtları arar. Yalnızca sorular arasında arama yapmak istiyorsanız yanıt oluşturmak için GenerateAnswer isteğinin POST gövdesindeki öğesini kullanın RankerType=QuestionOnly .

Yayımlanan kb'de, kullanarak veya kullanarak isTest=falseisTest=truetest kb'sinde arama yapabilirsiniz.

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

C'de bir botla Soru-Cevap Oluşturma kullanma#

Bot çerçevesi getAnswer API'siyle Soru-Cevap Oluşturma özelliklerine erişim sağlar:

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);

Önceki JSON yalnızca eşik puanının %30'unu veya üzerinde olan yanıtları istedi.

Soru-Cevap Oluşturma'Node.js'da bir botla kullanma

Bot çerçevesi getAnswer API'siyle Soru-Cevap Oluşturma özelliklerine erişim sağlar:

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);

Önceki JSON yalnızca eşik puanının %30'unu veya üzerinde olan yanıtları istedi.

GenerateAnswer API'siyle kesin yanıtlar alın

Hassas yanıt özelliğini yalnızca Soru-Cevap Oluşturma yönetilen sürümüyle sunuyoruz.

Yaygın HTTP hataları

Kod Açıklama
2xx Başarılı
400 İstek parametreleri yanlış, gerekli parametrelerin eksik, hatalı biçimlendirilmiş veya çok büyük olduğu anlamına gelir
400 İsteğin gövdesi yanlış, JSON'un eksik, hatalı biçimlendirilmiş veya çok büyük olduğu anlamına gelir
401 Geçersiz anahtar
403 Yasak - doğru izinlere sahip değil
404 KB yok
410 Bu API kullanım dışı bırakıldı ve artık kullanılamıyor

Sonraki adımlar

Yayımla sayfası, Postman veya cURL ile yanıt oluşturmak için de bilgi sağlar.