Uzyskiwanie odpowiedzi za pomocą interfejsu API GenerateAnswer
Aby uzyskać przewidywaną odpowiedź na pytanie użytkownika, użyj interfejsu API GenerateAnswer. Podczas publikowania baza wiedzy można zobaczyć informacje o sposobie korzystania z tego interfejsu API na stronie Publikowanie. Interfejs API można również skonfigurować tak, aby filtrować odpowiedzi na podstawie tagów metadanych i przetestować baza wiedzy z punktu końcowego przy użyciu parametru ciągu zapytania testowego.
Uwaga
Usługa QnA Maker jest wycofywana 31 marca 2025 r. Nowsza wersja funkcji pytań i odpowiedzi jest teraz dostępna w ramach języka sztucznej inteligencji platformy Azure. Aby uzyskać odpowiedzi na pytania w usłudze językowej, zobacz odpowiadanie na pytania. Od 1 października 2022 r. nie będzie można tworzyć nowych zasobów usługi QnA Maker. Aby uzyskać informacje na temat migrowania istniejących baza wiedzy usługi QnA Maker do odpowiadania na pytania, zapoznaj się z przewodnikiem migracji.
Uzyskiwanie przewidywań odpowiedzi za pomocą interfejsu API GenerateAnswer
Interfejs API GenerateAnswer w botze lub aplikacji służy do wykonywania zapytań dotyczących baza wiedzy za pomocą pytania użytkownika, aby uzyskać najlepsze dopasowanie z par pytań i odpowiedzi.
Uwaga
Ta dokumentacja nie ma zastosowania do najnowszej wersji. Aby dowiedzieć się więcej na temat korzystania z najnowszych interfejsów API odpowiedzi na pytania, zapoznaj się z przewodnikiem Szybki start dotyczącym odpowiadania na pytania.
Publikowanie w celu pobrania punktu końcowego GenerateAnswer
Po opublikowaniu baza wiedzy z portalu usługi QnA Maker lub przy użyciu interfejsu API możesz uzyskać szczegółowe informacje o punkcie końcowym GenerateAnswer.
Aby uzyskać szczegóły punktu końcowego:
Zaloguj się do https://www.qnamaker.ai.
W obszarze Moje baza wiedzy wybierz pozycję Wyświetl kod dla baza wiedzy.
Pobierz szczegóły punktu końcowego GenerateAnswer.
Szczegóły punktu końcowego można również uzyskać na karcie Ustawienia baza wiedzy.
Konfiguracja żądania GenerateAnswer
Wywołasz metodę GenerateAnswer z żądaniem HTTP POST. Aby uzyskać przykładowy kod pokazujący sposób wywoływania metody GenerateAnswer, zobacz przewodniki Szybki start.
Żądanie POST używa:
- Wymagane parametry identyfikatora URI
- Wymagana właściwość nagłówka,
Authorization
, dla zabezpieczeń - Wymagane właściwości treści.
Adres URL generateAnswer ma następujący format:
https://{QnA-Maker-endpoint}/knowledgebases/{knowledge-base-ID}/generateAnswer
Pamiętaj, aby ustawić właściwość nagłówka Authorization
HTTP z wartością ciągu EndpointKey
z spacją końcową, a następnie klucz punktu końcowego znaleziony na stronie Ustawienia .
Przykładowa treść JSON wygląda następująco:
{
"question": "qna maker and luis",
"top": 6,
"isTest": true,
"scoreThreshold": 30,
"rankerType": "" // values: QuestionOnly
"strictFilters": [
{
"name": "category",
"value": "api"
}],
"userId": "sd53lsY="
}
Dowiedz się więcej o rankerType.
Poprzedni kod JSON zażądał tylko odpowiedzi, które są na poziomie 30% lub wyższym niż ocena progowa.
Właściwości odpowiedzi GenerateAnswer
Odpowiedź jest obiektem JSON zawierającym wszystkie informacje potrzebne do wyświetlenia odpowiedzi, a następnie z kolei w konwersacji, jeśli jest dostępna.
{
"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"
}
]
}
]
}
Poprzedni kod JSON odpowiedział odpowiedzią z wynikiem 38,5%.
Dopasuj tylko pytania według tekstu
Domyślnie usługa QnA Maker wyszukuje pytania i odpowiedzi. Jeśli chcesz wyszukiwać tylko pytania, aby wygenerować odpowiedź, użyj w RankerType=QuestionOnly
treści POST żądania GenerateAnswer.
Możesz przeszukać opublikowaną bazę wiedzy przy użyciu polecenia lub w bazie wiedzy testowej przy użyciu isTest=false
polecenia isTest=true
.
{
"question": "Hi",
"top": 30,
"isTest": true,
"RankerType":"QuestionOnly"
}
Używanie usługi QnA Maker z botem w języku C#
Platforma botów zapewnia dostęp do właściwości usługi QnA Maker za pomocą interfejsu API getAnswer:
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);
Poprzedni kod JSON zażądał tylko odpowiedzi, które są na poziomie 30% lub wyższym niż ocena progowa.
Używanie usługi QnA Maker z botem w Node.js
Platforma botów zapewnia dostęp do właściwości usługi QnA Maker za pomocą interfejsu API getAnswer:
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);
Poprzedni kod JSON zażądał tylko odpowiedzi, które są na poziomie 30% lub wyższym niż ocena progowa.
Uzyskiwanie dokładnych odpowiedzi za pomocą interfejsu API GenerateAnswer
Oferujemy dokładną funkcję odpowiedzi tylko w wersji zarządzanej usługi QnA Maker.
Typowe błędy HTTP
Kod | Wyjaśnienie |
---|---|
2xx | Powodzenie |
400 | Parametry żądania są nieprawidłowe, co oznacza, że brakuje wymaganych parametrów, są one źle sformułowane lub zbyt duże |
400 | Treść żądania jest niepoprawna, co oznacza, że brakuje kodu JSON, źle sformułowane lub zbyt duże |
401 | Nieprawidłowy klucz |
403 | Zabronione — nie masz odpowiednich uprawnień |
404 | Baza wiedzy nie istnieje |
410 | Ten interfejs API jest przestarzały i nie jest już dostępny |
Następne kroki
Strona Publikowanie zawiera również informacje umożliwiające wygenerowanie odpowiedzi za pomocą rozszerzenia klienta REST programu Visual Studio Code lub biblioteki cURL.