GenerateAnswer API 'SI ile bir yanıt alın

Kullanıcının sorusunun tahmin edilen yanıtını almak için GenerateAnswer API 'sini kullanın. Bir Bilgi Bankası yayımladığınızda, Yayımlama SAYFASıNDA bu API 'nin nasıl kullanılacağına ilişkin bilgileri görebilirsiniz. API 'yi, meta veri etiketlerine göre yanıtları filtrelemek için de yapılandırabilir ve test sorgu dizesi parametresiyle uç noktadan Bilgi Bankası ' nı test edebilirsiniz.

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.

GenerateAnswer API 'SI ile yanıt tahminlerini alın

Soru ve yanıt çiftleriyle en iyi eşleşmeyi elde etmek için, bot veya uygulamanızdaki Generateanswer API 'sini bir Kullanıcı sorusu ile sorgulamak için kullanırsınız.

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 hızlı başlangıç kılavuzunabakın.

GenerateAnswer uç noktasını almak için Yayımla

Bilgi bankanızı soru-cevap oluşturma portalındanyayımladığınızda veya API'Yi kullanarak, 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 tabanlarım' da bilgi tabanınız Için kodu görüntüle ' yi seçin. Bilgi temellerimin 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ü

ayrıca, bilgi bankalarınızın Ayarlar sekmesinden uç nokta ayrıntılarınızı alabilirsiniz.

GenerateAnswer istek yapılandırması

HTTP POST isteğiyle GenerateAnswer öğesini çağırın. GenerateAnswer çağrısının nasıl çağrılacağını gösteren örnek kod için bkz. hızlıbaşlangıçlara bakın.

POST isteği şunu kullanır:

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

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

öğesinin HTTP üst bilgisi özelliğini, Authorization EndpointKey sonundaki boşluk ve sonra Ayarlar sayfasında bulunan uç nokta anahtarıyla birlikte dizenin bir değeriyle 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="
}

Rankertypehakkında daha fazla bilgi edinin.

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

GenerateAnswer yanıt özellikleri

Yanıt , varsa yanıtı göstermek için ihtiyacınız olan tüm bilgileri ve bir sonraki konuşmayı IÇEREN bir JSON nesnesidir.

{
    "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% 38,5 puanı ile yanıt verdi.

Yalnızca soruları Eşleştir, metne göre

Varsayılan olarak, Soru-Cevap Oluşturma sorular ve yanıtlar arasında arama yapar. Yalnızca sorulardan arama yapmak istiyorsanız, yanıt oluşturmak için RankerType=QuestionOnly GenerateAnswer ISTEĞININ gönderi gövdesinde öğesini kullanın.

isTest=falseKullanarak, veya kullanarak, ile yayımlanan KB veya test KB içinde arama yapabilirsiniz isTest=true .

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

C 'de bir bot ile Soru-Cevap Oluşturma kullanma

Bot Framework, Getanswer API 'siile 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 %30 ' da veya eşik puanı üzerinde olan yanıtları istedi.

Node.js bir bot ile Soru-Cevap Oluşturma kullanma

Bot Framework, Getanswer API 'siile 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 %30 ' da veya eşik puanı üzerinde olan yanıtları istedi.

GenerateAnswer API 'SI ile kesin yanıtlar alın

Yalnızca Soru-Cevap Oluşturma yönetilen sürümü ile kesin yanıt özelliği sunuyoruz.

Ortak HTTP hataları

Kod Açıklama
2xx Başarılı
400 İsteğin parametreleri yanlış, gerekli parametreler eksik, hatalı biçimlendirilmiş veya çok büyük
400 İsteğin gövdesi yanlış anlamı, JSON eksik, hatalı biçimlendirilmiş veya çok büyük
401 Geçersiz anahtar
403 Yasak-doğru izinleriniz yok
404 KB yok
410 Bu API kullanım dışı ve artık kullanılamıyor

Sonraki adımlar

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