pondělí 3. června 2019

Nepovídejte si s chatboty, vytvářejte je!

Asi jste to už odněkud slyšeli, že je mnohem lepší budoucnost vytvářet, než ji jen prožívat. A to, že umělá inteligence a chatboti do budoucnosti patří, je neoddiskutovatelný fakt. Oni tedy jsou už součástí našich životů i dnes, jen o tom ještě (možná) nevíte. A ono je tak i správně, protože to, že na druhé strany helpdesku či jiné formy podpory není skutečný člověk, ale chatbot, by mělo být poznat možná co nejméně.

Pojďme se ale vrátit zpět k samotnému tématu. Co to vlastně ten chatbot je. Toto slovo vzniklo zkrácením slovního spojení chatovací robot a jedná se o program/aplikaci, která možná co nejpřesněji a nejpodobněji člověku odpovídá na naše otázky. Možná si říkáte, že takové programy jste už viděli před více než 10 lety, ale je tu jeden malý (a podstatný rozdíl). Tyto dřívější verze programů typu chatbot uměly odpovídat pouze na přesně zadané otázky a nic víc. Dnešní chatboti ve spojení s umělou inteligencí se ale snaží porozumět danému textu, analyzovat vaši otázku a na základě své znalostní databáze vám pak i co možná nejsprávněji odpovědět.

S chatbotem se tedy na mnoha místech můžete potkat jako koncový uživatel, ale jak jsem již psal, mnohem zábavnější je takového chatbota umět vytvořit. Co k tomu potřebujeme znát, jaké k tomu potřebujeme nástroje a jak takový proces vytvoření chatbota vlastně funguje? Asi nejlépe to symbolizuje následující obrázek.


1. Sběr podkladů - chatboti v dnešní době fungují tím, že se učí. Učit se mohou buď z vámi ručně zadaných otázek nebo z již dostupných zdrojů. Tím může být například webová stránka s nejčastějšími otázkami a odpověďmi (tzv. FAQ), již proběhlý a zaznamenaný chat v rámci podpory či dokonce soubory jako jsou manuály nebo produktové příručky.

2. Vytvoření chatbota - vytvořit chatbota si dnes může opravdu každý a nemusíte být žádný programátor. Z pohledu technického vybavení vám bude stačit jen služba Azure, kterou si ve formě Azure for Students, můžete zaregistrovat a zkoušet zcela zdarma.

3. Jakmile máte k dispozici zdroje a vytvořeného (zatím prázdného a nic odpovídajícího) chatbota, je na čase mu tyto zdroje "podstrčit).

4. A nakonec, abyste mohli chatbota používat nejenom v rámci prostředí Azure, ale i v rámci dalších nástrojů a služeb, je potřeba ho vypublikovat.

Tak jdeme na to.

Jestli máte nejprve posbíraná zdrojová data nebo vytvořeného chatbota anebo naopak je celkem jedno, začneme tedy vytvořením samotného chatbota.

1. Zaregistrujte se zdarma na stránce Azure for Students a získejte přístup k mnoha cloudovým technologiím. Pro registraci budete potřebovat opět zdarma dostupný školní účet Office 365 nebo soukromý účet Microsoft, kde ale budete muset ověřit (např. školní emailovou adresou nebo speciálním kódem), že jste opravdu student. Po dokončení registrace byste měli být přesměrováni do prostředí Azure.


2. Paradoxně toto prostředí teď ještě potřebovat nebudeme a přejdeme do služby QnA Maker, která právě slouží k vytvoření chatbota, který ale na pozadí využívá právě sílu a technologie Azure. Jakmile se do služby přihlásíte, uvidíte opět "pouze" prázdnou stránku bez jakékoliv vytvořené znalostní databáze. Klikněte tedy v horní části na tlačítko Create a knowledge base.


3.  Je potřeba v Azure vytvořit službu nazvanou QnA service a propojit jí se znalostní databází, kterou vytváříte v tomto prostřetí QnAMaker. Klikněte tedy na modré tlačítko Create a QnA service a budete okamžitě přesměrováni do prostředí Azure do části pro vytvoření této služby. Zde je potřeba vyplnit pár základních informací a hned se budete moci vrátit opět do QnA Makeru.
  • Název - zde zadejte název (bez diakritiky a mezer) služby, např. ChatbotDemo
  • Předplatné - zde máte možnost si vybrat z jakých vám dostupných předplatných v Azure chcete tuto službu "platit". V rámci Azure for Students máte tuto službu "zdarma", ponechte tedy volbu Azure for Students. 
  • Cenová úroveň - pro základní testovací účely stačí varianta F0
  • Skupina prostředků - zde si vybíráte, jakou skupinu prostředků v rámci Azure chcete pro tohoto chatbota využít. Pravděpodobně nebudete mít vytvořenou ještě žádnou, klepněte tedy na tlačítko Vytvořit nový a zadejte nový název skupiny prostředků. 
  • Umístění - zde si můžete vybrat, v jakém datovém centru bude tato služba vytvořena, pokud by se jednalo o reálné nasazení, vždy je nejlepší vybírat umístění, které je nejblíže ne vám, ale zákazníkům, kteří tuto službu budou využívat. 
  • Cenová úroveň hledání - vyberte úroveň F.
  • Poloha hledání - Západní Evropa
  • Název aplikace - zde musíte zadat název, který není ještě v rámci Azure použit. 
  • Umístění webu - Západní Evropa
  • App Insights - slouží pro monitorování a správu výkonu aplikací, pro tyto účely ji nevyužijeme
Jakmile máte toto všechno zadáno, klepněte na tlačítko Vytvořit a služba se začne vytvářet. Její vytvoření a nasazení do nové skupiny prostředků by mělo trvat ve většině případů maximálně několik desítek sekund. 




4. Nyní se můžete vrátit do služby QnA Maker na stránku pro vytvoření znalostní databáze a po klepnutí na tlačítko Refresh byste měli vidět tuto službu v seznamu nabízených prostředků. 


5. Nyní si stačí jen ve třetím kroků QnA Maker průvodce pojmenovat vaší znalostní databázi a čeká nás čtvrtý krok, ve kterém je již možné naplnit znalostní databázi informačními zdroji pro chatbota. Jak jsem psal, podporovaných zdrojů je opravdu velké množství od webových adres, PDF/DOC/XLS/HTML/TXT souborů a kompletní dokumentaci včetně příkladů najdete na této stránce. Můžeme nechat pro první vytvoření chatbota tuto možnost zatím prázdnou a zkusíme ho naučit odpovídat pomocí ručně zadaných otázek, tj. v kroku 5 klepneme na tlačítko Create your KB. Znalostní databáze je vytvořena a jde se na učení vašeho prvního chatbota.


6. V nově zobrazené stránce klepněte na tlačítko + Add QnA pair pro zadání první otázky a odpovědi.  Můžu se třeba zkusit zeptat na některé otázky ohledně systému Windows. Ve sloupci Question tedy zadám otázku, ve sloupci Answer Odpověď. Všimněte si, že otázek můžete zadávat pro vaši odpověď více. Tak to ale přeci funguje i v běžném životě, že tu samou odpověď můžete dostat na různé položenou otázku. Naopak, u odpovědí můžete zadávat tzv. follow-up, což znamená, že po zobrazení odpovědi se zobrazí ještě odkaz/tlačítko, kde uživatel najde více informací. Jakmile máte zadanou alespoň základní sadu otázek a odpovědí, můžete nechat začít chatbota se učit a to klepnutím na tlačítko Save and train.  Pokud je otázek málo, chatbotovi to bude trvat pár desítek vteřin, pokud mu jako zdroj dodáte ale webovou stránku, kde je několik desítek otázek a odpovědí, jeho trénování může trvat pochopitelně déle





7. Jakmile je chatbot vytrénováním, je čas si ho vyzkoušet a to pomoci tlačítka Test. Nejprve mu můžete zkusit zadat jednu z přesných otázek, kterou jste ho učili. Pravděpodobně vám odpověděl správně, zkuste se ho teď ale zeptat na jednu z otázek ještě jinou, kterou "nezná". Na pozadí se bude snažit rozpoznat, kterou odpověď má k otázce přiřadit. Každá Vaše otázka má tzv. Confidence Score, které má rozmezí od 0-100 a udává, jak moc přesná byla položená otázka vzhledem k již zadaným a naučeným otázkám (největší přesnost je 100). Tuto hodnotu si můžete zobrazit po klepnutí na položku Inspect pod každou vámi zadanou otázkou a hodí se ke zjišťování, proč chatbot např. někdy neodpověděl tak jak má. Ne vždy nás totiž napadnou všechny možné formy otázek, jakými se mohou uživatelé na dotaz zeptat a toto je ideální způsob, jak případně zjistit a přidat do možných otázek nějakou další. 






8. Chatbot je vytvořen a naučen - gratuluji k vašemu prvnímu chatbotovi. Příště se podíváme na další možnosti, jako je publikování chatbota a propojení s Facebook Messengerem, takže chatbota budete moci např. využít i na facebookových stránkách, které spravujete. 

Žádné komentáře:

Okomentovat