Welke chatbot kiezen

Deel 2

Posted by Nicolas Pecher on December 16, 2019

Samenvatting en vervolg

Dit is het vervolg van mijn zoektocht naar het chatbot framework dat ik zal gebruiken voor mijn chatbot. In het eerste deel heb ik uitgelegd welke criteria ik gebruikt heb om een selectie te maken van potentiele chatbot frameworks. Ik heb hiervoor gebruik gemaakt van een heel goed artikel dat ik hier terugzet.

Dit is de lijst van de chatbots dat zal uitproberen of al uitgeprobeerd heb:

  • Amazon Lex
  • Google Dialogflow
  • Botkit
  • Rasa
  • Wit.ai

Amazon Lex en Botkit heb ik in het vorig deel al besproken, we gaan nu dus verder gaan met de overige frameworks.

Dialogflow

Om dialogflow te kunnen gebruiken is het zeer eenvoudig. Er wordt gewoon gevraagd naar uw google login en het is klaar. We krijgen daarna een control pannel te zien met alles dat wij nodig hebben om deze chatbot te maken. Dialogflow maakt deel uit van het Google Cloud Platform, wat wij hierop terugvinden is heel sterk vergelijkbaar met wat we op AWS en Microsoft Azure kunnen vinden (Hosting, databeheer, API’s, AI en zo voort).

Ik heb dus zoals voor Lex en Botkit een kleine chatbot gemaakt. Ik moet toegeven dat ik heel sterk verbaasd ben van hoe gemakkelijk ik deze heb kunnen deployen op een webpagina. Ik heb letterlijk op twee knoppen moeten drukken en een iFrame moeten plakken op mijn webpagina en het is klaar. Ik heb meteen berichten kunnen sturen en alles werkt perfect.

Na het uittesten van een simpele bot vraag ik me wel af of dialogflow een heel complex gesprek aan zou kunnen. Ik zou bijvoorbeeld graag willen dat de chatbot vorige antwoorden bijhoudt. Aangezien dit framework mij heel sterk interesseert heb ik een beetje verder getest en heb ik een chatbot proberen te maken dat een naam kan onthouden. Ik heb deze heel eenvoudige chatbot kunnen deployen en heb hem dus in dit artikel geplaatst. Om hem uit te testen moet u enkel “hi” of “hello” typen.

Na deze test is er nog steeds een vraag die ik mij stel, namelijk kan ik met deze chatbot wel een decision tree maken. Hiermee bedoel ik zou ik de chatbot kunnen laten vragen of de gebruiker een mop wil horen en in functie van het antwoord de mop tonen of niet. Of meer in verband met mijn project zou ik bijvoorbeeld aan de gebruiker kunnen vragen of hij het verschil kent tussen een professionele en een academische bachelor en in functie van het antwoord een verschillend antwoord geven van de chatbot.

Ik heb ook verder informatie gelezen over dialogflow. Hieruit heb ik twee interessante zaken kunnen trekken namelijk dat als we meer controle willen hebben over de integratie het aangeraden is om de API te gebruiken in plaats van de 1-klik integratie, zonder dit te doen is het niet mogelijk om de chatbot de conversatie te laten starten (de chatbot kan enkel reageren op triggers, hij kan de conversatie dus niet beginnen met “hallo mijn naam is chatbot…” zonder dat de gebruiker eerst een bericht stuurt). Daarnaast kan Dialogflow beschouwd worden als een chatbot framework voor beginners, niet programmeurs. Volgens mij is het de bedoeling van het eindwerk om een zekere moeilijkheidsgraad te hebben en te bewijzen dat ik een volwaardige programmeur ben, het zou dus spijtig zijn om voor een te gemakkelijke en misschien te beperkte framework te kiezen.

RASA

Zoals met Botkit wordt RASA via de CLI geïnstalleerd. Om de installatie te kunnen maken hebben wij tensorflow nodig, hierdoor moeten wij ook Python en Pip op ons systeem installeren indien wij het nog niet hebben. Rasa Open Source is de core van RASA-chatbots, we kunnen ook gebruik maken van Rasa X dat het veel eenvoudiger maakt om discussies te maken, te inspecteren en er training data van te maken door een UI te voorzien. Rasa X is wel niet open source.

Ik heb bij de installatie al enkele problemen gehad en enkel de installatie heeft mij zeker meer dan 45 min genomen. Daarna ben ik begonnen met de getting started tutorial. De moeilijkheidsgraad is hier vergelijkbaar met het Botkit framework. Maar de documentatie van dit framework is heel correct en dit helpt veel. De interface van Rasa X ziet er heel goed en modern uit. De werking van het framework wordt hierdoor veel duidelijker en het maken van een eenvoudige chatbot is redelijk gemakkelijk eens wij begrepen hebben hoe het werkt.

Dit framework zorgt ervoor dat wij een heel gemakkelijk aanpasbare chatbot kunnen maken. Er is ook een minimum kennis van programmatie nodig. Voor het deployen is het met Rasa veel moeilijker dan met de cloud services van AWS, tensorflow en Microsoft we moeten namelijk de app kunnen runnen op een server. De app wordt dan een rest API dat de antwoorden stuurt. Hierna moeten wij de data opnemen en in een chatbot lay-out teruggieten als wij de chatbot op een website willen gebruiken alleszins.

Wit.ai

Wit.ai ziet er heel simpel uit t.o.v. alle andere frameworks dat ik uitgeprobeerd heb. De focus ligt op deze applicatie vanaf het begin op het snel maken van een chatbot dat de context waarin hij gebruikt wordt begrijpt. Op de hoofdpagina dat “understanding” heet moet de gebruiker voorbeeldzinnen aangeven dat de chatbot moet begrijpen, in deze zin moet de gebruiker dan aangeven welke woorden de belangrijke informatie (intents) zijn. Bijvoorbeeld als ik schrijf: “mijn naam is nicolas” dan moet ik aangeven dat nicolas het belangrijk deel is of zal de chatbot al opmerken dat dit een naam is.

Wat ook opvalt is dat ik niet meteen kan zien waar ik de antwoorden op een intent moet ingeven. Ik zie ook niet waar ik mijn chatbot kan testen om te zien of hij antwoord wat ik verwacht.

Na verder lezen blijkt dat wit.ai enkel gebruikt wordt om intents te formuleren en om een chatbot te trainen. Hierna moeten wij gebruik maken van een andere service dat zich bezighoudt met het discussie aspect van de chatbot.

Volgens mij is het om deze reden eenvoudiger om Rasa te gebruiken dat de twee bij elkaar heeft, deels open source is en heel gemakkelijk aanpasbaar is. Ookal is het intent gedeelte van Wit.ai zeer intuitief en snel.

Afsluiting

In het derde en laatste deel zal ik een keuze maken tussen alle geteste frameworks. Hierna zal ik kunnen beginnen met het praktisch gedeelte van het project. Voor het moment zijn mijn lieveling frameworks AWS Lex, Dialogflow en RASA. Ik zal deze keuzes proberen te argumenteren en voor elk framework voor- en nadelen opsommen. Voor ik een definitieve keuze maak zou ik toch graag snel Botpress uitproberen dat ik enkele keren heb zien tevoorschijn komen in de artikels dat ik gelezen heb sinds mijn keuze voor de 5 frameworks dat ik tot nu toe uitgeprobeerd heb.

Bedankt voor het lezen.

Nicolas Pecher