In the closing scene of “Indiana Jones and the Last Crusade”, the protagonist is forced to choose. The guarding knight of the grail says, “You must choose. But choose wisely, for as the true Grail will bring you life, a false one will take it from you!”
As CUI (Conversational User Interface) gains credence, clients are wondering, “How do I build an effective bot?” Several platforms are available today. This post is an attempt to help you choose the right platform for your next successful bot.
NLP (Natural Language Processing)
The crux of a bot is the ability to convert human input into machine comprehensible tokens. Human language varies widely based on literacy, demographics and conversational abilities. To handle these variations, the bot platform needs to include:
- A powerful language processing engine that can break down the input correctly (Whether the user politely says “Will you please book my flight to Boston from New York?” or quips “NYC to BOS” in short, the NLP engine should be able to tokenize them equivalently)
- Rich ontology database to recognize context and ambiguous meanings (When the user says ‘interest’, do they mean the monetary rate or a favorable concern? It depends on the context and part of speech)
- Pragmatic canonical dictionary to identify common equivalences (user may say “dint” or the grammatically correct “didn’t” – the bot should be equipped to treat them just the same).
AI (Artificial Intelligence)
While NLP adds language comprehension skill, a bot needs more cognitive capabilities to serve customers smartly – capabilities include reasoning, pattern matching, learnability, perception. The bot platform can include these capabilities natively or through pluggable components allowing the developer to pick and choose. For instance, a bot can become adept at reading facial expression by using Face API.
Memory is yet another quality that a bot should possess. Akin to the human brain, memory can be:
- Short-term: When the user says “I like the second one”, she is clearly referring to the choices provided shortly earlier, which the bot should remember.
- Long-term: If the bot remembers the last chat with the customer and the problem they are having, it prevents the frustration of repeating.
The platform may allow usage of a cache grid or connecting to databases for persistent retention.
The platform should allow access to the bot through multiple channels – web, mobile, REST API or via popular IM front-ends such as Skype, WhatsApp or Facebook Messenger. A contemporary bot platform also supports use of unconventional interfaces innovatively. For example:
- Rich-media integration (bot displays a map showing directions)
- Voice and video (Speech recognition and gesture input)
- Selectable options (user selects available appointment slot rather than typing a time)
In a connected world, bots cannot work in a silo and need to talk to existing systems, services and apps. The day is not far when bots will talk to each other. How easily does the platform support such scenarios? How well can the platform scale to support emerging use cases? Answering these questions reveals the strength of the platform.
In addition to the above key factors, a few other influencing aspects are:
- Security and privacy
- Vendor lock-in
- Ease of development
There may not be a bot “holy grail”, but paying attention to these factors ensures you do not “choose poorly”. What have you chosen? We would like to know.