Drop #128 (2022-10-28): Weekend Project ↣ Chatty Chatty Bot Bot
Botkit; Botpress; BotMan
The rapid evolution of large language models has been a boon for those would seek to usurp humans even further from the loop when it comes to Q&A sessions for encounters such as product/service inquiries, customer complaints, and generalized help requests. I will admit to likely preferring automated assistance in some contexts, especially as these bots get smarter.
Today's drop has three resources you can pick from to toss together a quick, topical bot over the weekend. Each is in a different source language (one which doesn't make it to this newsletter much), to give y'all some flexibility in tinkering.
An initial disclaimer: this component is part of Microsoft's Bot Framework, so if you despise that org as much as I do, then mebbe pick from the other two.
Botkit is an open-source developer tool for building chatbots, apps and custom integrations for major messaging platforms. Said integrations remove the need to add your own UX/UI into the mix, but are free to roll your own as you see fit, since one of the "adapters" is made for the generic web.
Botkit features are well-documented, and I estimate most readers could have a respectable, domain-centric bot presentable by Monday.
If you've never been bot like this before (y'all have unfortunately caught me on a song-title-pun day), I'd highly suggest just diving into this one if you're bot-curious.
NOTE: Botpress is dual-licensed under AGPLv3 and the Botpress Proprietary License, which you can dig into at the repo. Said constraints may be enough for some to stop reading this section.
Botpress [GH] is "the standard developer stack to build, run and improve Conversational-AI applications. Powered by natural language understanding, a messaging API and a fully featured studio, Botpress allows developers around the globe to build remarkable chatbots without compromise"
You can either choose the freemium route, or roll up your sleeves and either install the framework locally, or begin with one of their Docker images.
Once nice feature of Botpress is that you can go old school with it and just make a rule-based bot. Said bot is pretty daft, as it doesn't understand much of anything about conversations. You provide pre-populated responses or one-word answers to anything a user inputs. It's the easiest method, but will end up feeling like something from the 1980's.
The "AI" based one groks "Natural Language"; i.e. it can perform:
Intent Classification: recognizing what the user wants.
Entity Extraction: extracting structured information from messages like dates, time, cities, names, and more.
Slot tagging: identify necessary parameters to fulfill given tasks.
Language Identification: knowing in which language the user is writing.
Spell Checking: giving you one less thing to worry about by making sure your user's text input is spelled correctly by fixing typo and other errors.
Out of Scope Recognition: identifying instances when a user says something that the chatbot cannot understand.
Said groking is done by the Botpress OpenBook framework.
This one is pretty powerful, and I will def not judge if you decide to just use the service itself, as they've done a pretty great job commodifying the bot setup experience.
It would have been SO COOL if this bot just responded with "Na na na na na na na na na na na…" to every input.
We're heading into the PHP lowlands with this last framework. BotMan [GH] is "the most popular PHP chatbot framework in the world." Like the other two resources mentioned today, BotMan has integrations into most everything you might want to use a chatbot with; and, like Botpress, this has a "dumb" mode and a "fa[i]ncy" mode. The AI mode is powered by Google's Dialogflow, so you'll eventually end up spending some coin if your bot becomes popular.
While I encouraged y'all to use Botkit if you're looking for super-easy bot onboarding, this one may be the most straightforward to get up and running, if you can tolerate or are good at PHP.
The speed at which NLP/AI models are becoming commodities is quite remarkable. As complex language models become increasingly more prevalent, it may come to a point where one really cannot tell if there is a human on the other side of the blinking cursor.
If you do end up making any bots, drop a link to your creation[s]! ☮