Odpovědi na otázky pomocí odpovědi na otázky

PLATÍ PRO: SDK v4

Funkce odpovědi na otázky ve službě Azure Cognitive Service pro jazyk poskytuje cloudové zpracování přirozeného jazyka (NLP), které umožňuje vytvořit nad daty přirozenou konverzační vrstvu. Používá se k vyhledání nejvhodnější odpovědi pro jakýkoli vstup z vašeho vlastního znalostní báze informací.

Tento článek popisuje, jak používat funkci odpovídání na otázky ve vašem robotovi.

Předpoklady

O této ukázce

Pokud chcete v robotovi použít odpovědi na otázky, potřebujete existující znalostní báze. Robot pak může pomocí znalostní báze odpovědět na otázky uživatele.

Pokud potřebujete vytvořit novou znalostní báze pro robota sady SDK služby Bot Framework, projděte si soubor README pro vlastní ukázku odpovídání na otázky.

C# question answering bot logic flow.

OnMessageActivityAsync je volána pro každý přijatý uživatelský vstup. Při zavolání přistupuje k nastavení konfigurace ze souboru appsetting.json ukázkového kódu a připojí se k znalostní báze.

Vstup uživatele se odešle do vašeho znalostní báze a nejlepší vrácená odpověď se zobrazí zpět uživateli.

Získání nastavení připojení znalostní báze

  1. V sadě Language Studio otevřete prostředek jazyka.

  2. Zkopírujte do konfiguračního souboru robota následující informace:

    • Název hostitele vašeho koncového bodu jazyka.
    • Jedná se o Ocp-Apim-Subscription-Keyklíč koncového bodu.
    • Název projektu, který funguje jako ID znalostní báze.

Název hostitele je součástí adresy URL koncového bodu mezi https:// adresou URL koncového bodu a /language, https://<hostname>/languagenapříklad . Robot potřebuje název projektu, adresu URL hostitele a klíč koncového bodu pro připojení k vašemu znalostní báze.

Tip

Pokud ho nenasazujete do produkčního prostředí, můžete ponechat pole ID aplikace a hesla robota prázdná.

Nastavení a volání klienta znalostní báze

Vytvořte klienta znalostní báze a pak pomocí klienta načtěte odpovědi z znalostní báze.

Ujistěte se, že je pro váš projekt nainstalovaný balíček NuGet Microsoft.Bot.Builder.AI.QnA .

V souboru QnABot.cs v OnMessageActivityAsync metodě vytvořte klienta znalostní báze. Kontext otáčení použijte k dotazování znalostní báze.

Roboti/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);

Otestování robota

Spusťte ukázku místně na svém počítači. Pokud jste to ještě neudělali, nainstalujte bot Framework Emulator. Další pokyny najdete v ukázce README (C# nebo JavaScript).

Spusťte emulátor, připojte se k robotovi a odešlete do robota zprávy. Odpovědi na vaše otázky se budou lišit v závislosti na informacích, které znalostní báze.

Další informace

Ukázka vlastní odpovědi na otázky (C# nebo JavaScript) ukazuje, jak pomocí dialogového okna QnA Maker podporovat následné výzvy a aktivní funkce učení znalostní báze.

  • Odpovědi na otázky podporují následné výzvy, označované také jako výzvy s vícenásobným zapnutím. Pokud znalostní báze vyžaduje od uživatele další informace, služba odešle kontextové informace, které můžete použít k zobrazení výzvy uživatele. Tyto informace slouží také k provádění jakýchkoli následných volání služby.
  • Odpovědi na otázky také podporují aktivní návrhy učení, což umožňuje znalostní báze v průběhu času zlepšit. Dialog QnA Maker podporuje explicitní zpětnou vazbu pro aktivní funkci učení.