Używanie funkcji QnA Maker do odpowiadania na pytania

DOTYCZY: ZESTAW SDK w wersji 4

Uwaga

Usługa Azure AI QnA Maker zostanie wycofana 31 marca 2025 r. Od 1 października 2022 r. nie będzie można tworzyć nowych zasobów ani baz wiedzy w programie QnA Maker. Nowsza wersja funkcji pytań i odpowiedzi jest teraz dostępna w ramach języka sztucznej inteligencji platformy Azure.

Niestandardowe odpowiadanie na pytania, funkcja języka azure AI, to zaktualizowana wersja usługi QnA Maker. Aby uzyskać więcej informacji na temat obsługi pytań i odpowiedzi w zestawie SDK platformy Bot Framework, zobacz Opis języka naturalnego.

Funkcja QnA Maker zapewnia konwersacyjną warstwę pytań i odpowiedzi nad danymi. Dzięki niej bot może wysłać pytanie do funkcji QnA Maker i odebrać odpowiedź bez konieczności analizowania i interpretowania intencji tego pytania.

Jednym z podstawowych wymagań związanych z tworzeniem własnej usługi QnA Maker jest wypełnienie jej pytaniami i odpowiedziami. W wielu przypadkach pytania i odpowiedzi istnieją już w zawartości, takiej jak często zadawane pytania lub inne dokumenty. Czasami możesz chcieć dostosować odpowiedzi na pytania w bardziej naturalny, konwersacyjny sposób.

W tym artykule opisano sposób używania istniejącego baza wiedzy usługi QnA Maker z bota.

W przypadku nowych botów rozważ użycie funkcji odpowiadania na pytania usługi Azure Cognitive Service for Language. Aby uzyskać informacje, zobacz Używanie odpowiedzi na pytania, aby odpowiedzieć na pytania.

Uwaga

Zestawy SDK języka JavaScript, C# i Python platformy Bot Framework będą nadal obsługiwane, jednak zestaw SDK języka Java jest wycofywany z ostatecznym długoterminowym wsparciem kończącym się w listopadzie 2023 r.

Istniejące boty utworzone za pomocą zestawu JAVA SDK będą nadal działać.

W przypadku tworzenia nowego bota rozważ użycie agentów usługi Power Virtual Agents i przeczytaj o wyborze odpowiedniego rozwiązania czatbota.

Aby uzyskać więcej informacji, zobacz Przyszłość tworzenia botów.

Wymagania wstępne

Informacje o tym przykładzie

Aby korzystać z usługi QnA Maker w botze, potrzebujesz istniejącej baza wiedzy w portalu usługi QnA Maker. Bot może następnie użyć baza wiedzy, aby odpowiedzieć na pytania użytkownika.

W przypadku tworzenia nowych botów rozważ użycie agentów usługi Power Virtual Agents. Jeśli musisz utworzyć nową baza wiedzy dla bota zestawu BOT Framework SDK, zobacz następujące artykuły dotyczące usług Azure AI:

Przepływ logiki języka C# QnABot

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 w celu znalezienia wartości umożliwiającej nawiązanie połączenia ze wstępnie skonfigurowanym baza wiedzy usługi QnA Maker.

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

Uzyskiwanie wartości w celu połączenia bota z baza wiedzy

Napiwek

Dokumentacja usługi QnA Maker zawiera instrukcje dotyczące tworzenia, trenowania i publikowania baza wiedzy.

  1. W witrynie usługi QnA Maker wybierz baza wiedzy.
  2. Po otwarciu baza wiedzy wybierz kartę USTAWIENIA. Zarejestruj wartość wyświetlaną dla nazwy usługi. Ta wartość jest przydatna do znajdowania baza wiedzy zainteresowań podczas korzystania z interfejsu portalu usługi QnA Maker. Nie jest używana do łączenia aplikacji bota z tą baza wiedzy.
  3. Przewiń w dół, aby znaleźć szczegóły wdrożenia i zarejestrować następujące wartości z przykładowego żądania HTTP narzędzia Postman:
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • Host: <twój-host-url>
    • Autoryzacja: EndpointKey <your-endpoint-key>

Adres URL hosta rozpocznie się od i zakończy się ciągiem https:///qnamaker, takim jak https://<hostname>.azure.net/qnamaker. Twój bot potrzebuje identyfikatora baza wiedzy, adresu URL hosta i klucza punktu końcowego, aby nawiązać połączenie z baza wiedzy usługi QnA Maker.

Aktualizowanie pliku ustawień

Najpierw dodaj informacje wymagane do uzyskania dostępu do baza wiedzy — w tym nazwy hosta, klucza punktu końcowego i identyfikatora baza wiedzy (kbId) — do pliku ustawień. Są to wartości zapisane na karcie USTAWIENIA baza wiedzy w usłudze QnA Maker.

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

Uwaga

Aby dodać baza wiedzy usługi QnA Maker do istniejącej aplikacji bota, pamiętaj, aby dodać tytuły informacyjne dla wpisów pytań i odpowiedzi. Wartość "name" w tej sekcji zawiera klucz wymagany do uzyskania dostępu do tych informacji z poziomu aplikacji.

Konfigurowanie wystąpienia usługi QnA Maker

Najpierw utworzymy obiekt na potrzeby uzyskiwania dostępu do baza wiedzy usługi QnA Maker.

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

W QnABot.cs w metodzie OnMessageActivityAsync utwórz wystąpienie QnAMaker. Klasa QnABot jest również miejscem, w którym są pobierane nazwy informacji o połączeniu zapisanych w appsettings.json powyżej. Jeśli w pliku ustawień wybrano różne nazwy dla informacji o połączeniu baza wiedzy, pamiętaj, aby zaktualizować nazwy w tym miejscu, aby odzwierciedlić wybraną nazwę.

Boty/QnABot.cs

C# (zarchiwizowane)

Wywoływanie usługi QnA Maker z bota

Gdy bot potrzebuje odpowiedzi z usługi QnAMaker, wywołaj GetAnswersAsync metodę z kodu bota, aby uzyskać odpowiednią odpowiedź na podstawie bieżącego kontekstu. Jeśli uzyskujesz dostęp do własnych baza wiedzy, zmień poniższy komunikat bez odpowiedzi, aby podać przydatne instrukcje dla użytkowników.

Boty/QnABot.cs

C# (zarchiwizowane)

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# (zarchiwizowanym),JavaScript (zarchiwizowanym), Java (zarchiwizowanym)lub Python (zarchiwizowanym)).

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.

Przetestuj przykładowego bota.

Dodatkowe informacje

Przykład wieloetkowy usługi QnA Maker (przykład zarchiwizowany w języku C#, przykład zarchiwizowany), przykładowy multi-turn języka Java (zarchiwizowane) w języku Java, przykład wieloełowy języka Python (zarchiwizowany)) pokazuje, jak używać okna dialogowego usługi QnA Maker do obsługi monitów monitów usługi QnA Maker i aktywnych funkcji uczenia.

  • Usługa QnA Maker obsługuje monity dotyczące monitów, znanych również jako monity wielowrotne. Jeśli usługa QnA Maker baza wiedzy wymaga dodatkowych informacji od użytkownika, usługa QnA Maker 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 QnA Maker. W wersji 4.6 zestaw SDK platformy Bot Framework dodał obsługę tej funkcji.

    Aby utworzyć taki baza wiedzy, zapoznaj się z dokumentacją usługi QnA Maker, aby dowiedzieć się, jak utworzyć wiele kolei konwersacji za pomocą monitów monitów.

  • Usługa QnA Maker 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.

    Aby włączyć tę funkcję w baza wiedzy, zobacz dokumentację usługi QnA Maker dotyczącą sugestii dotyczących uczenia aktywnego.

Następne kroki

Usługa QnA Maker może być połączona z innymi usługami azure AI, aby zwiększyć możliwości bota. Bot Framework Orchestrator umożliwia łączenie pytań i odpowiedzi z usługą Language Understanding (LUIS) w botze.