Odpowiadanie na pytania przy użyciu odpowiedzi na pytania

DOTYCZY: ZESTAW SDK w wersji 4

Funkcja odpowiadania na pytania usługi Azure Cognitive Service for Language zapewnia oparte na chmurze przetwarzanie języka naturalnego (NLP), które umożliwia tworzenie naturalnej warstwy konwersacyjnej na danych. Służy do znajdowania najbardziej odpowiedniej odpowiedzi na wszelkie dane wejściowe z niestandardowych baza wiedzy informacji.

W tym artykule opisano sposób używania funkcji odpowiadania na pytania w botze.

Wymagania wstępne

  • Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Zasób językowy w programie Language Studio z włączoną niestandardową funkcją odpowiadania na pytania.
  • Kopia przykładu niestandardowego odpowiadania na pytania w języku C# lub JavaScript.

Informacje o tym przykładzie

Aby użyć odpowiedzi na pytania w botze, potrzebujesz istniejącego baza wiedzy. Bot może następnie użyć baza wiedzy, aby odpowiedzieć na pytania użytkownika.

Jeśli musisz utworzyć nowy baza wiedzy bota zestawu BOT Framework SDK, zobacz plik README dla niestandardowego przykładu odpowiadania na pytania.

C# question answering bot logic flow.

OnMessageActivityAsync parametr jest wywoływany dla każdego odebranych danych wejściowych użytkownika. Po wywołaniu uzyskuje dostęp do ustawień konfiguracji z pliku appsetting.json przykładowego kodu i nawiązuje połączenie z baza wiedzy.

Dane wejściowe użytkownika są wysyłane do baza wiedzy, a najlepsza zwrócona odpowiedź jest wyświetlana użytkownikowi.

Pobieranie ustawień połączenia baza wiedzy

  1. W programie Language Studio otwórz zasób językowy.

  2. Skopiuj następujące informacje do pliku konfiguracji bota:

    • Nazwa hosta dla punktu końcowego języka.
    • Element Ocp-Apim-Subscription-Key, który jest kluczem punktu końcowego.
    • Nazwa projektu, która działa jako identyfikator baza wiedzy.

Nazwa hosta jest częścią adresu URL punktu końcowego między https:// i /language, na przykład https://<hostname>/language. Twój bot potrzebuje nazwy projektu, adresu URL hosta i klucza punktu końcowego, aby nawiązać połączenie z baza wiedzy.

Napiwek

Jeśli nie wdrażasz tego rozwiązania w środowisku produkcyjnym, możesz pozostawić puste pola identyfikatora aplikacji i hasła bota.

Konfigurowanie i wywoływanie klienta baza wiedzy

Utwórz klienta baza wiedzy, a następnie użyj klienta, aby pobrać odpowiedzi z baza wiedzy.

Upewnij się, że pakiet NuGet Microsoft.Bot.Builder.AI.QnA jest zainstalowany dla projektu.

W pliku QnABot.cs w metodzie OnMessageActivityAsync utwórz klienta baza wiedzy. Użyj kontekstu kolei, aby wysłać zapytanie do baza wiedzy.

Bots/CustomQABot.cs

using var httpClient = _httpClientFactory.CreateClient();

var customQuestionAnswering = CreateCustomQuestionAnsweringClient(httpClient);

// Call Custom Question Answering service to get a response.
_logger.LogInformation("Calling Custom Question Answering");
var options = new QnAMakerOptions { Top = 1, EnablePreciseAnswer = _enablePreciseAnswer };
var response = await customQuestionAnswering.GetAnswersAsync(turnContext, options);

Testowanie bota

Uruchom przykład lokalnie na maszynie. Jeśli jeszcze tego nie zrobiono, zainstaluj program Bot Framework Emulator. Aby uzyskać dalsze instrukcje, zapoznaj się z przykładami README (C# lub JavaScript).

Uruchom emulator, połącz się z botem i wyślij komunikaty do bota. Odpowiedzi na pytania będą się różnić w zależności od informacji baza wiedzy.

Dodatkowe informacje

W przykładzie Niestandardowe odpowiadanie na pytania, wszystkie funkcje (C# lub JavaScript) pokazano, jak używać okna dialogowego usługi QnA Maker do obsługi monitu baza wiedzy i aktywnych funkcji uczenia.

  • Odpowiadanie na pytania obsługuje monity monitujące, znane również jako monity z wieloma zwrotami. Jeśli baza wiedzy wymaga więcej informacji od użytkownika, usługa wysyła informacje kontekstowe, których można użyć do monitowania użytkownika. Te informacje są również używane do tworzenia wszelkich kolejnych wywołań do usługi.
  • Odpowiadanie na pytania obsługuje również sugestie dotyczące uczenia aktywnego, dzięki czemu baza wiedzy poprawić się w czasie. Okno dialogowe usługi QnA Maker obsługuje jawne opinie dotyczące funkcji uczenia aktywnego.