Použití služby QnA Maker k odpovídání na otázky

PLATÍ PRO: SDK v4

Poznámka:

Azure AI QnA Maker bude vyřazený 31. března 2025. Od 1. října 2022 nebudete moci vytvářet nové zdroje ani znalostní báze QnA Maker. Novější verze funkce pro otázky a odpovědi je teď dostupná jako součást jazyka Azure AI.

Vlastní odpověď na otázky, funkce jazyka Azure AI, je aktualizovaná verze služby QnA Maker. Další informace o podpoře otázek a odpovědí v sadě SDK služby Bot Framework najdete v tématu Principy přirozeného jazyka.

Služba QnA Maker zajišťuje konverzační vrstvu otázek a odpovědí nad vašimi daty. Robot díky tomu může odeslat dotaz do služby QnA Maker a získá odpověď, aniž by musel parsovat a interpretovat záměr dotazu.

Jedním ze základních požadavků při vytváření vlastní služby QnA Maker je naplnit ji otázkami a odpověďmi. V mnoha případech tyto otázky a odpovědi již existují v rámci obsahu, jako jsou nejčastější dotazy nebo dokumentace. Jindy může být vhodně odpovědi na otázky upravit tak, aby byly přirozenější a více konverzační.

Tento článek popisuje, jak používat existující znalostní báze služby QnA Maker z robota.

U nových robotů zvažte použití funkce pro odpovědi na otázky ve službě Azure Cognitive Service pro jazyk. Informace najdete v tématu Použití odpovědi na otázky.

Poznámka:

Sady SDK služby Bot Framework JavaScript, C# a Python budou nadále podporovány, ale sada Java SDK se vyřazuje s konečnou dlouhodobou podporou končící v listopadu 2023.

Stávající roboti sestavení pomocí sady Java SDK budou i nadále fungovat.

Pro nové vytváření robotů zvažte použití Power Virtual Agents a přečtěte si o výběru správného řešení chatovacího robota.

Další informace najdete v tématu Budoucnost vytváření robotů.

Požadavky

O této ukázce

Pokud chcete ve svém robotovi používat službu QnA Maker, potřebujete existující znalostní báze na portálu služby QnA Maker. Robot pak může pomocí znalostní báze odpovědět na otázky uživatele.

Pro vývoj nových robotů zvažte použití agentů Power Virtual Agents. Pokud potřebujete vytvořit nový znalostní báze pro robota sady SDK služby Bot Framework, projděte si následující články o službách Azure AI:

Tok logiky QnABot v C#

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 vzorového kódu a vyhledá hodnotu pro připojení k předem nakonfigurované znalostní báze služby QnA Maker.

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í hodnot pro připojení robota k znalostní báze

Tip

Dokumentace ke službě QnA Maker obsahuje pokyny, jak vytvářet, trénovat a publikovat znalostní báze.

  1. Na webu služby QnA Maker vyberte znalostní báze.
  2. Po otevření znalostní báze vyberte kartu NASTAVENÍ. Poznamenejte si hodnotu zobrazenou pro název služby. Tato hodnota je užitečná při hledání znalostní báze zájmu při použití rozhraní portálu služby QnA Maker. Nepoužívá se k připojení aplikace robota k tomuto znalostní báze.
  3. Posuňte se dolů a vyhledejte podrobnosti o nasazení a poznamenejte si následující hodnoty z ukázkového požadavku HTTP nástroje Postman:
    • POST /knowledgebases/<knowledge-base-id>/generateAnswer
    • Hostitel: <adresa URL hostitele>
    • Autorizace: EndpointKey <your-endpoint-key>

Adresa URL hostitele začne https:// a končí /qnamakerna , například https://<hostname>.azure.net/qnamaker. Váš robot potřebuje id znalostní báze, adresu URL hostitele a klíč koncového bodu pro připojení k vašemu znalostní báze služby QnA Maker.

Aktualizace souboru nastavení

Nejprve do souboru nastavení přidejte informace potřebné pro přístup k vašemu znalostní báze, včetně názvu hostitele, klíče koncového bodu a ID znalostní báze (kbId). Jedná se o hodnoty, které jste uložili na kartě NASTAVENÍ znalostní báze ve službě QnA Maker.

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

Poznámka:

Pokud chcete do existující aplikace robota přidat znalostní báze služby QnA Maker, nezapomeňte přidat informativní názvy položek QnA. Hodnota "name" v této části poskytuje klíč potřebný pro přístup k tomuto informacím z vaší aplikace.

Nastavení instance služby QnA Maker

Nejprve vytvoříme objekt pro přístup k znalostní báze služby QnA Maker.

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

V QnABot.cs v OnMessageActivityAsync metodě vytvořte instanci QnAMakeru. Třída QnABot je také tam, kde jsou staženy názvy informací o připojení uložené v appsettings.json výše. Pokud jste v souboru nastavení zvolili jiné názvy znalostní báze informací o připojení, nezapomeňte aktualizovat názvy, aby odpovídaly zvolenému názvu.

Roboti/QnABot.cs

C# (archivováno)

Volání služby QnA Maker z robota

Když robot potřebuje odpověď od QnAMakeru, zavolejte metodu GetAnswersAsync z kódu robota, abyste získali odpovídající odpověď na základě aktuálního kontextu. Pokud přistupujete ke svému vlastnímu znalostní báze, změňte níže uvedené žádné odpovědi, abyste uživatelům poskytli užitečné pokyny.

Roboti/QnABot.cs

C# (archivováno)

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# (archivované), JavaScriptu (archivované), Javě (archivované) nebo Pythonu (archivované)).

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.

Otestujte ukázkového robota.

Další informace

Ukázka vícenásobného otáčení služby QnA Maker (archivovaná) (multi-turn sample, JavaScript multi-turn sample (archived), Java multi-turn sample (archived), Python multi-turn sample (archived)) ukazuje, jak používat dialog QnA Maker k podpoře následných výzev a aktivních výukových funkcí služby QnA Maker.

  • QnA Maker podporuje následné výzvy, označované také jako výzvy s vícenásobným zapnutím. Pokud služba QnA Maker znalostní báze vyžaduje od uživatele další informace, služba QnA Maker 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í do služby QnA Maker. Sada SDK služby Bot Framework ve verzi 4.6 přidala podporu této funkce.

    Pokud chcete takový znalostní báze vytvořit, přečtěte si dokumentaci ke službě QnA Maker o tom, jak použít následné výzvy k vytvoření více otočení konverzace.

  • QnA Maker také podporuje 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í.

    Pokud chcete tuto funkci povolit na znalostní báze, přečtěte si dokumentaci ke službě QnA Maker týkající se návrhů aktivního učení.

Další kroky

QnA Maker je možné kombinovat s dalšími službami Azure AI, aby byl robot ještě výkonnější. Orchestrator služby Bot Framework nabízí způsob, jak ve svém robotovi kombinovat QnA se službou Language Understanding (LUIS).