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:
https://www.qnamaker.ai adresinde oturum açın.
Bilgi bankalarım bölümünde bilgi bankası için Kodu Görüntüle'yi seçin.
GenerateAnswer uç noktası ayrıntılarınızı alın.
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:
- Gerekli URI parametreleri
- Güvenlik için gerekli üst bilgi özelliği,
Authorization
, - Gerekli gövde özellikleri.
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=false
isTest=true
test 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.