Udostępnij za pośrednictwem


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:

  1. Zaloguj się do https://www.qnamaker.ai.

  2. W obszarze Moje baza wiedzy wybierz pozycję Wyświetl kod dla baza wiedzy. Zrzut ekranu przedstawiający moje baza wiedzy

  3. Pobierz szczegóły punktu końcowego GenerateAnswer.

    Zrzut ekranu przedstawiający szczegóły punktu końcowego

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:

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=falsepolecenia 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.