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. Możesz również skonfigurować interfejs API do filtrowania 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ć informacje na temat możliwości odpowiadania 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 baz 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 dotyczy 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 w 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 witryny https://www.qnamaker.ai.
W obszarze Moje bazy 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 znajdujący się 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ą w 30% lub powyżej wyniku progu.
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 wartości RankerType=QuestionOnly
w 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ą w 30% lub powyżej wyniku progu.
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ą w 30% lub powyżej wyniku progu.
Uzyskiwanie dokładnych odpowiedzi za pomocą interfejsu API GenerateAnswer
Oferujemy precyzyjną funkcję odpowiedzi tylko w przypadku zarządzanej wersji 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ą ź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ą narzędzia Postman lub programu cURL.