Jak si vytvořit Chatbota bez jediného řádku kódu za 20 min

10. 2. 2021 Azure, Programming

Pracujete na recepci, jste zdravotní sestřička nebo máte nějaký svůj business a neustále se vás někdo ptá na ty stejné otázky dokola a dokola? Co si zkusit vytvořit jednoduché chatbota založeného na znalostní databázi bez jediného řádku kódu?

Technické požadavky a vyžadované znalosti

Jak služba funguje

Tvorba je jednoduchá. Jaké všechny procesy se dějí pod pokličkou QnA makeru, pod kterým budeme bota tvořit?

Služba funguje následujícím způsobem:

obrázkové schéma fungování QnA Makeru | zdroj: microsoft.com
  1. uživatel aplikace odešle dotaz (např. zprávu)
  2. zprávu zpracuje webová aplikace, která ji odešle do služby Language Understanding (LUIS)
  3. LUIS zprávu zanalyzuje a díky vycvičenému modelu umělé inteligence vyvodí závěr a souvislost
  4. LUIS odešle zprávu službě Azure Search, která vyhledá v databázi dané informace
  5. webová aplikace si vytáhne informace z databáze a odešle příslušnou odpověď zpět uživateli aplikace

Tvorba chatbota

Proces si rozdělíme do 3 podkroků: založení znalostní databáze, tvorba, nastavení a výcvik znalostní databáze, publikování databáze a tvorba webové aplikace pro bota.

Založení znalostní databáze

1. Přejděte na stránku: https://www.qnamaker.ai/.

2. V pravém horním rohu se přihlaste (Sign in) pomocí svého Azure účtu.

přihlášení se do QnA makeru | zdroj: qnamaker.ai

3. V horní navigační liště máme 2 možnosti: My knowledge base (moje znalostní databáze) a Create a knowledge base (vytvořit znalostní databázi). My zvolíme druhou možnost, pro tvorbu nové databáze.

tvorba znalostní databáze | zdroj: qnamaker.ai

4. Zobrazí se nám průvodce zakládáním znalostní databáze. V prvním kroku jsme vyzváni, abychom si vytvořili prostředek na Azure. Klikneme tedy na tlačítko Create a QnA service a necháme se přesměrovat do Azure portálu.

tvorba služby znalostní databáze | zdroj: qnamaker.ai

5. Nyní je třeba celou službu správně nakonfigurovat. Pojďme si popsat jednotlivé parametry nastavení:

TIP: Informace o dalších předplatných si můžete nalézt na stránce: https://azure.microsoft.com/en-us/pricing/calculator/

tvorba prostředku v Azure portalu | zdroj: portal.azure.com

6. Po vyplnění všech parametrů jednoduše zvolíme možnost Create (vytvořit) a celá služba se nám začne nasazovat na servery Azure. Nelekejte se, tento proces obvykle trvá několik minut.

7. Konec nasazování služby nám potvrdí notifikační hláška v pravém horním rohu, která se zobrazí po kliknutí na symbol zvonku.

notifikační hláška v Azure portalu | zdroj: portal.azure.com

8. Nyní nám již zbývá dokončit propojení služby s portálem qnamaker.ai, a proto se vrátíme zpět do něj. Azure portál již můžeme zavřít.

9. Klikneme na tlačítko refresh (znovu načíst) – to z toho důvodu, aby tato webová stránka zaktualizovala informace a mohla načíst informace o již nově vytvořené službě na Azure.

propojíme prostředí QnA makeru s prostředkem | zdroj: qnamaker.ai

10. Z nabídky zvolíme informace tak, aby směřovaly k vytvořené službě. V mém příkladu to je:

TIP: V případě, že by se vám zobrazoval název šedivý a objevila se notifikační hláška, že nemáte dostatečné oprávnění, nelekejte se. Tento problém je způsoben špatným znovu načtením. Vyřešíte ho jednoduše tak, že celou stránku znovu načtete.

11. V třetím kroku vybereme název naší znalostní databáze.

název znalostní databáze | zdroj: qnamaker.ai

12. V rámci čtvrtého kroku se nám nabízí hned několik možností. My v tuto chvíli využijeme jen jednu z nich. Ostatní si ukážeme až později v nastavení celého studia.
Nastavíme Chit-chat našeho bota, tedy naimportujeme dataset již předpřipravených otázek a odpovědí, které budou určovat osobnost našeho bota. Máme na výběr z:

výběr osobnosti bota | zdroj: qnamaker.ai

13. Nyní již máme vše potřebné nastaveno a nezbývá nic jiného, než propojit službu s prostředím a pustit se konkrétně do tvorby mozku bota.

vytvoř znalostní databázi | zdroj: qnamaker.ai

Tvorba, nastavení a výcvik znalostní databáze

Nyní jsme se dostali do samotného QnA maker studia. Pojďme si ukázat části databáze, abyste si ji mohli pak sami nastavit, přizpůsobit a vycvičit.

Nastavení

Do nastavení přejdeme tak, že klikneme v horní navigační liště na možnost settings.

přejděme do nastavení | zdroj: qnamaker.ai

V prvním bloku máme možnost měnit název znalostní databáze.

Druhá část je již o něco zajímavější. Umí hned několik zajímavých věcí.

Chytré importování dat z html, Word nebo pdf souborů

První a dle mého jednou z nejzajímavější funkcí je možnost naimportovat data ze souboru, který má příponu .docx (tedy Word), pdf nebo z html stránky. Abychom mohli tuto možnost vyzkoušet, je třeba ji aktivovat tak, že kliknete na nabídku Enable multi-turn extraction from URLs, .pdf or .docx files.

zapnutí služby pro chytré importovaní | zdroj: qnamaker.ai

Zobrazí se nám nové dva boxy. Do prvního s nadpisem Default answer text napíšeme odpověď, která se nám přiřadí k otázkám, u kterých umělá inteligence nenajde žádný vysvětlující pojem. Typicky pokud máme dokument, v němž je nadpis druhé úrovně a pod ním hned bez jakéhokoliv komentáře nadpis třetí úrovně. Vepíšeme tedy do něho např. frázi So sorry, I don’t know.

Druhý box slouží již ke konkrétnímu importování soboru. My například zkusíme naimportovat slovník s pojmy umělé inteligence ze stránky https://studuj.digital/machine-learning-slovnik-pojmu/.

Někomu se může zdát, že je hulvátství do anglické databáze mít naimportována česká data. Nám to ovšem poslouží dobře – dokážeme si krásně ukázat rozdíl mezi osobností chatbota importovanou stránkou z webu.

nastavení služby pro chytré importovaní | zdroj: qnamaker.ai

Tato možnost se může v praxi využít např. pokud máte sepsaný nějaký návod na použití přístroje, školní řád či jakýkoliv jiný firemní nebo osobní dokument, z něhož chcete vytvořit znalostní databázi.

Importování otázek a odpovědí z externích souborů

Další možnost, jak naimportovat data, je nahrát databázi dotazů a odpovědí v databázovém formátu. Více informací o této nabídce naleznete na stránkách: https://docs.microsoft.com/en-us/azure/cognitive-services/qnamaker/.

Další nastavení

Další části nastavení umožňují naimportovat již vytvořenou databázi, exportovat stávající nebo nasdílet databázi napříč zařízeními. Nesou také informace sloužící k napojení, je-li již databáze vypublikovaná.

Prostředí pro editaci otázek a odpovědí

Pojďme si představit prostředí pro editování otázek a odpovědí.

Abychom ho viděli kompletní, zobrazíme si veškeré prvky. To tak, že zvolíme View options a pohlídáme si, abychom měli vše aktivované (viz obrázek).

prostředí editace| zdroj: qnamaker.ai
  1. vyhledávání
  2. přidání nové otázky a odpovědi
  3. nastavení zobrazení
  4. kontext odpovědi
  5. otázka a podobné fráze
  6. odpověď
  7. tlačítko odkazující na jinou otázku
  8. metadata
popis prostředí QnA makeru | zdroj: qnamaker.ai
Kontext odpovědi

Kontext odpovědi nám říká, jaká otázka je dané otázce nadřazená. Konkrétně vidíme např. na importovaném příkladu ze stránky studuj.digital, že nadpis Machine Learning – slovník je úrovně 1, obsah je ovšem až úroveň 2 a nadpisy jsou až nižší úroveň.

Tato metoda pomáhá pochopit strojovému učení, jaká otázka je relevantnější a také nám umožňuje přidávat tlačítka odkazující na jinou stránku.

Otázka a podobné fráze

Otázka obsahuje klíčová slova, která umělá inteligence analyzuje. Je dobré projít několikrát celou databázi a přidávat alternativní fráze, tj. otázky, které mají mít stejnou odpověď.

Odpověď

Informace, která se odešle uživateli, který se na něco zeptá. Odpověď může být různě formátovaná, může obsahovat obrázky, odkazy, seznamy, smajlíky.

U stylování odpovědí si dejte pozor na to, pokud byste chtěli v budoucnu službu propojit s externí chatovací platformou. Např. Messenger od Facebook má jiné požadavky na formátování než např. Microsoft Teams nebo Skype.

Tlačítko odkazující na jinou otázku

Tato novinka přišla nedávno do QnA makeru. Umožňuje odeslat uživateli s odpovědí tlačítko, které mu může dát možnost se prokliknout rovnou na jinou odpověď.

Metadata

Metadata jsou data o datech. Mohou nám tedy sloužit jako jakési poznámky, pokud používáme složitější databázi a potřebujeme si v ní zavést systém.

Výcvik znalostní databáze

Po každé editaci znalostní databáze je třeba databázi uložit a vycvičit model umělé inteligence.

Velice důležitou součástí tvorby je také opravování chyb a přidávání alternativních frází a odpovědí. I toto všechno se dá provádět v studiu QnA maker.

ladění frází otázek a odpovědí | zdroj: qnamaker.ai

Chat spustíme kliknutím na tlačítko test. (1.)

Začneme si s botem psát a pokud se nám nějaká odpověď nezdá správná, prověříme ji. Odpověď se prověřuje tak, že klikneme na tlačítko Inspect (2.) a zobrazí se nám výcvikové zobrazení.

Pod číslem 3. se skrývá prostor pro dopsání alternativních frází dotazů, na které by se mohl návštěvník ptát a mají mít stejnou dopověď.

Pod číslem 4. se skrývají odpovědi. U nich můžeme pozorovat hned několik věcí. Skóre přesnosti a pokud si není umělá inteligence zcela jistá, je důležité zvolit z nabízených frází tu nejvíce relevantní. Pokud se nám ani jedna odpověď nebude zdát vhodná, dopíšeme vlastní frázi.

Po úpravě vždy práci uložíme a necháme model znovu vycvičit.

Tipy a triky k práci v QnA makeru

Publikování databáze a tvorba webové aplikace

Po dotvoření znalostní databáze již nezbývá nic jiného, než ji vypublikovat a propojit s webovou aplikací. Pojďme si ukázat jak na to.

1. V prostředí QnA makeru přejdeme na kartu publish (publikovat) a zvolíme možnost Publish (publikovat).

publikace znalostní databáze | zdroj: qnamaker.ai

Zobrazí se nám okno s možností propojení. Zde jsou dva scénáře. První – technicky náročnější je ten, že si znalostní databázi propojíte se svoji vlastní webovou aplikací pomocí volání HTTP. Druhý jednodušší, který zvolíme i my, je nechat veškeré propojení na Azure a jen vytvořit novou službu. Zvolíme tedy tlačítko Create Bot (vytvořit bota).

tvorba bota | zdroj: qnamaker.ai

TIP: Pokud již máte webovou aplikaci typu chatbot založenou, zvolte možnost View all your bots… a jednoduše si ji propojte dle instrukcí.

2. Otevře se nám nové okno opět s Azure portálem. Tvorba je podobná, jako když jsme na začátku vytvářeli prostředky pro Znalostní databázi. Navíc je za vás již spousta informací předvytvořena. My změníme jenom pár drobností:

tvorba webové aplikace bota | zdroj: portal.azure.com

3. Po vyplnění zvolíme možnost Create a prostředek se nám začne opět nasazovat.

4. Jakmile se prostředek nasadí, přejdeme k němu a podíváme se na jeho možnosti.

přejděme k prostředku | zdroj: portal.azure.com

Testovací chat

Bota lze testovat přímo z řídícího prostředí webové aplikace. Stačí zvolit Test in Web Chat a můžete začít.

testování bota | zdroj: portal.azure.com

Přidání do externích chatovacích platforem

Webovou aplikaci lze snadno napojit na bezpočet externích chatovacích služeb. Informace, jaké všechny je možné použít a jak je napojit naleznete zde: https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0.

kanály do kterých jde bota přidat | zdroj: portal.azure.com

Záznam z konference

Pokud více upřednostňujete formu videa, o celém procesu tvorby jsem hovořil i na konferenci studuj.live.

Závěr

Detailně jsme si ukázali, jak si vytvořit vlastního chatbota. Věřím, že přesně v takových aplikacích umělé inteligence a dalších moderních technologiích je budoucnost a vědět o nich a umět s nimi je obrovskou výhodou.