Snel een chatbot maken met Chatfuel

Redactie
1

Inhoudsopgave

ChatfuelOm een chatbot voor Facebook Messenger te maken, hoef je niets te programmeren. Bij Chatfuel hoef je je alleen te richten op de inhoud en het gebruik. Wel werken spraakinterfaces compleet anders dan grafische.

Voor Facebook Messenger bestaan inmiddels meer dan 30.000 bots. Weerbot Poncho beantwoordt een vraag als ‘Do I need an umbrella tomorrow’ en een nieuwsbot zoals die van The Guardian geeft een overzicht van de headlines. Met e-commerce-bots wordt het zelfs mogelijk om online te winkelen. Een mogelijke verklaring voor de vele bots is de grote hoeveelheid bouwdozen. Daarmee is het vrij makkelijk zelf een bot te maken en te beheren.

Pipo

We demonstreren het opzetten van een bot aan de hand van onze ‘Sprookjespipo‘ (je vindt hem ook als je op Facebook zoekt op de naam). Sprookjespipo geeft je onderweg het nodige literaire vermaak . Zodra je een gesprek met Pipo begint, word je eerst door de bot verwelkomd en krijg je te zien wat hij kan: korte sprookjes vertellen. Vervolgens toont Pipo je drie verhaaltjes met een illustratie. Klik (of tik) je op een daarvan, dan kun je het sprookje lezen. Maakt het je niet uit welk sprookje je wilt zien, dan kun je ook ‘boeien’ of ‘whatever’ intypen. Pipo kiest dan zelf uit een van de zeven verhaaltjes.

Als je al eerder kennis met Pipo hebt gemaakt en je weet welke sprookjes hij kan vertellen, kun je meteen de titel of een bepaald woord uit de titel intypen. Na elk verhaal stelt Pipo je de vraag of je iets over de achtergrond van het betreffende sprookje wilt weten of dat je een ander sprookje wilt lezen.

Een kort sprookje voor tussendoor: met een deel van een titel (of woord) dien je een verzoek voor een verhaaltje in. Daarna toont Pipo het betreffende sprookje in hapklare brokjes.

Een kort sprookje voor tussendoor: met een deel van een titel (of woord) dien je een verzoek voor een verhaaltje in. Daarna toont Pipo het betreffende sprookje in hapklare brokjes.

 

Chatfuel

We hebben voor Pipo de service van Chatfuel gebruikt. Zolang je daar minder dan 100.000 conversaties per maand mee voert, kun je gratis een bot beheren. Om je meteen gerust te stellen: dat aantal haal je niet snel. Chatfuel plaatst in gratis bots een bescheiden reclamelink. Je kunt niet alleen bots maken voor Facebook Messenger, maar ook voor Telegram. We hebben ons hier beperkt tot Facebooks platform aangezien je daar potentieel veel meer gebruikers mee kunt bereiken.

Bij Chatfuel werk je compleet in een webinterface. Log eerst met je Facebook-account in op de homepage. Je krijgt dan een overzicht van de bots te zien. Als je op een van die bots klikt, opent Chatfuel de bijbehorende beheerpagina.

Als maker zul je de meeste tijd op de beheerpagina doorbrengen bij het menu Build. Daar staat een soort contentmanagementsystem voor de dialogen. Je maakt en bewerkt er zogenaamde cards, die je in blokken indeelt. De cards bevatten de berichten die een actieve bot aan zijn gesprekspartners meedeelt. Ze kunnen bijvoorbeeld teksten en afbeeldingen bevatten.

Twee cards zijn standaard al gedefinieerd: ‘Welcome message’ en ‘Default answer’. Met de eerste card heet de bot nieuwe gesprekspartners welkom. Bij de Sprookjespipo bevat die twee korte ‘text cards’ waarop staat wat er mogelijk is. Ook is er een foto van de kat van Sprookjespipo, die de bot vertegenwoordigt.

Antwoord geven

Het blok ‘Default answer’ vormt samen met de weergave van het hoofdmenu het belangrijkste inhoudsblok. Een bot toont het ‘Default answer’ als de gesprekspartner wat intypt waar de bot niet meteen een antwoord op kan geven. Na een korte introductie via de ‘Welcome message’ vraagt Pipo aan het eind of alles helder is. Het maakt niet uit of je dan ‘Ja’, ‘Prima’ of ‘Ok’ intypt, want er volgt altijd een standaardreactie. Daarnaast kun je dialogen ook doelgericht naar het ‘Default answer’ sturen. Pipo toont de inhoud van het ‘Default answer’ bijvoorbeeld als een sprookje uitgelezen is of als de gesprekspartner er nog een wil zien.

Als hoofdmenu biedt het ‘Default answer’ een paar sprookjes. Pipo gebruikt daarvoor een card van het type Gallery. Je kunt daarmee hooguit vijf sprookjes naast elkaar zetten, inclusief afbeelding, koptekst, omschrijving en een knop. Pipo toont er in het ‘Default answer’ drie met een illustratie. Daar kun je er een van kiezen. Zodra je bij Messenger op een van de knoppen tikt of klikt, roept Pipo het blok met de eerste cards van het betreffende sprookje op.

Je kunt met de knoppen ook willekeurige url’s oproepen – via de browser dus. Daarmee haal je de gesprekspartner wel uit Messenger. Dat is bijvoorbeeld handig als je het internetverkeer liever naar je eigen website wilt loodsen. Bij de bronvermeldingen van de sprookjes en de afbeeldingen staan url’s aangegeven die buiten Facebook Messenger om geopend worden.

In het beheerdeel van Chatfuel kun je tekst, afbeeldingen en andere meldingen voor je bot beheren.

In het beheerdeel van Chatfuel kun je tekst, afbeeldingen en andere meldingen voor je bot beheren.

 

Kort maar krachtig

Elk sprookje begint met een afbeelding en twee tot drie kleine postings van het begin. Als je een bot langere teksten wilt laten produceren, zul je ze over meerdere cards moeten verdelen; een posting kan namelijk hooguit 320 tekens bevatten. Ook op andere plekken, zoals bij de labels voor de knoppen, stelt Chatfuel erg duidelijke grenzen.

De maximale lengte van de postings is dan ook de reden dat Pipo alleen korte verhaaltjes vertelt. Als je een langer sprookje als Hans en Grietje in veel kleine delen zou lezen, zou de lol er al snel af zijn. Maar ook korte sprookjes kunnen uit tien of meer cards bestaan. Het gaat tegen het gebruik van messengers in om die allemaal in een keer weer te geven. Dan zou je je als lezer snel overrompeld voelen.

Om het verhaal structuur te geven, hebben we bij Pipo een techniek gebruikt die bekend is van nieuws-apps als Quartz en Resi. Pipo stelt een vraag, waarbij in de vorm van een knop slechts één antwoord mogelijk is, bijvoorbeeld ‘En toen?’ of ‘Wat gemeen!’ – een soort geleide dialoog. Bij Chatfuel kun je zo’n knop onder elke willekeurige text card hangen. Als de gesprekspartner dan op zo’n knop klikt, toont Pipo het volgende blok.

Aan het eind van een sprookje volgt een foto van onze kat met het woord ‘Einde’. Daarmee is duidelijk dat het verhaaltje afgelopen is. Daarna volgt een card van het type ‘Quick Reply’. Daar kun je meerdere antwoorden mee formuleren. Je kunt als lezer bepalen of je meer over het sprookje te weten wilt komen of nog een sprookje wilt lezen. Bij het eerste krijg je wat achtergrondinformatie over het sprookje en de gebruikte afbeelding, inclusief links naar de bronnen. Daarna kun je ook een ander sprookje uitkiezen.

Artificial intelligence

Pipo werkt op die manier al als een complete bot. Hij kan een vraag beantwoorden – en toont anders het standaardantwoord – en leidt je meteen naar de sprookjes. Je kunt de weg niet snel kwijtraken, het is allemaal redelijk rechttoe rechtaan.

Pipo zou alleen nog wat interactiever mogen zijn. Als je als terugkerende bezoeker al weet welk sprookje je wilt lezen, wil je dat ook direct zien. Daar gebruik je zogeheten AI-rules voor, die je kunt configureren bij ‘Set up AI’, links op de beheerpagina.

Die regels hebben overigens niets te maken met echte AI – oftewel artificial intelligence (kunstmatige intelligentie). Het gaat hier om simpele patroonherkenning: je kunt de bot met bepaalde tekst of blokken een antwoord op bepaalde keywords laten geven. Pipo gebruikt dat om makkelijk naar een sprookje te kunnen navigeren: als de gesprekspartner bijvoorbeeld ‘vorst’ of ‘Grootvadertje Vorst’ intypt, opent Pipo het Russische sprookje.

Welk sprookje

Met twee AI-regels maak je een soort inhoudsopgave en een randomweergave. Dankzij de eerste toont Pipo op een vraag als ‘Welk sprookje ken je?’ een tekstblok waarin alle zeven sprookjes staan. De randomweergave reageert op invoer als ‘boeien’, ‘is aan jou’, ‘whatever’ of ‘maakt niet uit’. Het antwoord toont een blok van het type ‘Go to Block’ (te vinden bij het ‘Most used’-gedeelte van de ‘Plugin’- cards. Zo’n card kan een verbinding met andere blokken maken, zodat je een randomweergave kunt maken. Activeer daarvoor de schakelaar ‘Random’ en voer meerdere doelblokken in.

Naast de bediening en de postings is ook de persoonlijkheid van de bot belangrijk – niemand praat immers graag tegen iets dat compleet onpersoonlijk overkomt. We hebben met relatief simpele methoden geprobeerd Pipo een gezicht te geven. Naast de foto waarmee de bot je verwelkomt, staan in de sprookjes ook emoji’s. Emojipedia bleek daarbij een goede hulp. Je vindt op die site enorm veel icoontjes. Als je een bepaalde emoiji zoekt, kun je een (Engels) zoekwoord intypen. Zodra je een goede gevonden hebt, kopieer je die met een klik naar het Klembord. Van daaruit kun je hem in de tekst plakken.

'AI'-regels helpen je met het afvangen van open vragen die een gesprekspartner stelt.

‘AI’-regels helpen je met het afvangen van open vragen die een gesprekspartner stelt.

Plugins

In veel gevallen zullen bots gebruikt worden als nieuwe GUI’s voor reeds bestaande systemen, bijvoorbeeld voor een boekingssysteem of een webwinkel. Daarbij zul je een groot deel van de acties zo configureren dat ze informatie uit een bepaalde bron halen. Chatfuel heeft daar een aantal interfaces voor, bijvoorbeeld RSS. Om de content van een RSSfeed weer te geven, selecteer je bij ‘Plugin’ een blok van het type ‘RSS import’.

Bij zo’n blok moet je een feed-url en een naam opgeven. Je kunt de weergave van de plugincontent aanpassen zoals je wilt. Zo kun je een knop laten plaatsen waarmee de gesprekspartner zich op de RSS-content kan abonneren. Het is ook mogelijk de labels te vervangen door een Nederlands woord. Aangezien we geen RSS-feed voor sprookjes kennen, hebben we als extraatje de feed van Fokke & Sukke geïntegreerd. Sprookjespipo zegt daar zelf niets over, maar als je vraagt naar ‘Fokke’ of ‘Sukke’ krijg je de drie meest recente tekeningen van deze stripfiguurtjes te zien.

Chatfuel biedt in de vorm van pluginblokken nog zo’n twintig andere API’s voor externe toepassingen. Die lopen uiteen van een Google-zoekopdracht via Twitter (IFTTT) tot WordPress (via Zapier). De JSON-API is waarschijnlijk de meest uitgebreide interface. Chatfuel kan gebruikersinvoer opslaan of – afhankelijk van invoer – variabelen bewaren. Je kunt die met JSON naar externe applicaties overhevelen en de antwoorden als cards weergeven. Doordat gegevens met externe toepassingen uitgewisseld kunnen worden, groeit het aantal mogelijkheden enorm.

Starten maar!

Als je bots en fragmenten met Chatfuel hebt gemaakt, kun je ze voor publicatie eerst testen onder live omstandigheden. Klik bij het Dashboard rechtsboven op ‘Test this chatbot’ en dan op ‘Open in Messenger’. Daarmee start Chatfuel een testsessie die alleen toegankelijk is voor de beheerder van de bot.

Bij ‘Configure’ van het back-end van Chatfuel kun je administratieve details van de bot instellen. Denk aan de tijdzone die doorslaggevend is als je berichten automatisch en op een bepaalde tijd naar gebruikers wilt sturen. Je kunt daar ook andere beheerders uitnodigen om je te helpen de bot op de juiste manier op te zetten.

Je kunt een bot een vast menu geven die je in Facebook Messenger onderin ziet (in de webinterface met drie streepjes). Dat menu is echter niet te vergelijken met dat van een toepassing of app. Het grafische menu is eerder een hulp die van pas komt als een gesprekspartner zich vergist heeft. Chatfuel kan maar één optie toevoegen. Teveel regels zorgen alleen voor verwarring. Pipo heeft de opties ‘Overzicht van sprookjes’ en ‘Bot herstarten’. Chatfuel voegt zelf nog een extra item toe met reclame voor de dienst – de enige tegenprestatie voor de verder gratis service waarmee je moet leven.

Bij ‘Configure’ kun je de bot online zetten. Daarvoor moet je Chatfuel het recht geven om op je Facebook-pagina’s te mogen publiceren. Daarna moet je alleen nog een Facebook-pagina voor de bot maken. We hebben een pagina voor een ‘fictief figuur’ geconfigureerd en die dus ‘Sprookjespipo’ genoemd. Daarna maakt Chatfuel een bot die bij die pagina hoort.

Analyse

Facebook is in 2016 pas begonnen met het integreren van botfuncties in Messenger. Geheel vlekkeloos is de samenwerking daardoor nog niet. Op veel plekken merk je dat dingen nog geoptimaliseerd moeten worden. Zo zie je aan een Facebook-pagina niet standaard of er een bot achter zit. Als je de bezoekers van de Facebook-pagina met de bot wilt laten communiceren, moet je op die pagina onder de omslagfoto eerst de knop ‘Bericht versturen’ toevoegen.

Als de bot actief is, laat Chatfuel bij ‘Analyze’ interessante gebruiksstatistieken zien, zoals de populairste blokken. Je kunt daar ook zien welke sprookjes het meest gelezen worden. Bij ‘Popular user inputs’ laat Chatfuel zien welke vragen de gebruikers aan de bot stellen. Soms kun je daar vragen tegenkomen die je niet verwacht had. Dat is waardevolle informatie om je bot op de juiste manier uit te breiden. Een uitvoerige analyse van de communicatiewegen is er echter niet. Als je precies wilt zien hoe afzonderlijke gesprekspartners met de bot gecommuniceerd hebben, vind je alle chats bij de ‘Berichten’ van de bijbehorende Facebook-pagina.

Bij ‘Broadcast’ kun je je gebruikers als beheerder af en toe aan de bot herinneren door berichten te pushen. De berichten worden dan wel ongevraagd verstuurd. Doe dat dus niet te vaak, anders kunnen gebruikers de meldingen als spam gaan zien. Je zou het bijvoorbeeld kunnen doen als je een paar nieuwe sprookjes toegevoegd hebt. Het is ook mogelijk om de berichten automatisch op een bepaald tijdstip te laten versturen.

Conclusie

Met bots worden compleet nieuwe toepassingen mogelijk. Er zijn van begin af aan nauwelijks drempels te nemen. Iedereen kan chatten en veel mensen gebruiken Facebook Messenger. Om met de bot te babbelen, hoef je niets te installeren. Je begint gewoon meteen een gesprek.

Met diensten als Chatfuel is het vrij makkelijk om zelf een bot te maken en beheren. We merkten bij het maken van Pipo al vrij snel dat je in korte tijd wel enkele gebruikers kunt overhalen om de bot uit te proberen. Maar die zijn ook net zo snel weer weg. Het is bij het beheren van een bot de kunst om de juiste clientèle aan te trekken en die continu meerwaarde te bieden. Dan zullen ze je ook blijven volgen.

(Jo Bager / Marcel van der Meer)

Meer over

AI

Deel dit artikel

Lees ook

Spotify streamen naar versterker? Zo doe je het met een Raspberry Pi!

Om Spotify te kunnen streamen naar een niet-smart AV-receiver of analoge versterker die geen muziek-streaming­mogelijkheden heeft, heb je met een Rasp...

Google Gemini gebruiken: dit kun je allemaal met de chatbot van Google

Eerst kon je alleen ChatGPT gebruiken, maar nu is het ook mogelijk om Gemini van Google te gebruiken. Beide chatbots die gebaseerd zijn op AI kunnen w...

1 Praat mee
avatar
  Abonneer  
nieuwsteoudste
Laat het mij weten wanneer er
Marco den Teuling
Admin
Marco den Teuling

De gratis versie van Chatfuel is nog steeds te gebruiken, maar met enkele beperkingen: https://docs.chatfuel.com/configure/chatfuel-pro/pro-free-plan-changes Onze sprookjespipo is niet meer beschikbaar, maar de workshop kan nog wel als introductie dienen.