Different Approaches To Automation Of Dialog Flow Development
As Conversational AI develops and our digital assistants become more complex, the manual development and rigid process of dialog state flows requires a rethink. Three elements need to be introduced, contextual flexibility, automated development and NLG responses. Read more here…
Most areas of chatbot development have seen focus on what elements of the development process can be automated. Automation has touched areas like:
- Entities: detecting entities automatically with Named Entity Recognition (NER)
- Intents: with unsupervised clustering of utterances, sentences and conversations into semantically similar groupings.
- Search: this is one of the avenues a few providers have identified to bootstrap and fast-rack development.
- Large Language Models (LLM) are also part of the chatbot development automation vision.
- Knowledge base and quick reply (QnA) intents are being explored by frameworks like Oracle Digital Assistant.
As with most nascent technologies and implementations, many of these approaches are being seen as unworkable, not able to scale, etc. Most new ideas solicit the same response…this will never work, adoption will be zero, etc. etc.
But as we figure things out and work on efficiencies, these approaches will mature and will become mainstream.
Three Key Elements For Truly Flexible Dialogs
1️⃣ Contextual Flexibility
Context refers to the current conversation, from the start to the most recent dialog turn. Context can also be gleaned from previous conversations, other customer care interactions and back-end lookups like CRM, etc.
Context can change within the conversation, and being able to detect a contextual change from the user and adapt accordingly. Truly flexible context is the logical next step in chatbot progression. Rigid rule and state based management of dialogs are not sustainable. Digression and disambiguation are methods which can be employed to facilitate the process towards flexible context.
Knowledge is gathered in the form of intents, entities and more. Being able to pro-actively cluster user utterances can assist in being more effective in collecting knowledge during the conversation.
Being able to maximise user input (when the input is not expected) allows for efficiency in not having to ask the user to repeat themselves.
3️⃣ NLG Responses
The bot-response text messages are usually fixed, with placeholders where variables are inserted, the same way IVR’s do it. The ability to generate a text response based on few shot learning will lead to NLG (Generation) becoming more mainstream.
As I discuss in this article, generation will not only supersede bot response messages, but is able to maintain a few dialog turns in a very contextual and natural way, as seen below.
Automation Of Dialog Development
The safest and most efficient place to start with automating dialog flow development is the development process. Where the development of the dialog can be expedited by three methods.
1️⃣ Interactive Learning: a live interactive learning approach, where the call-flow is built out as the user interacts with the bot. In 2019 I considered the approach of Rasa, which they call Interactive Learning.
With Interactive Learning you can write dialogs (machine learning stories). This is where you write your stories while you are talking to your bot. And while you talk to your bot, the dialog flow is mapped in a browser. Rasa-X also needs to be considered here.
Interactive learning makes it easy to write stories by talking to your bot and providing feedback.
2️⃣ Dialog Driven: In Kore.ai conversation-driven Dialog builder automatically converts the mock-up conversations into a Dialog Flow. Designers can focus on visualising the end-user conversation before building the dialog.
This does remind somewhat of Rasa’s Interactive Learning and Conversation Visualisation.
Approaches to Dialog Development
Not that we have considered the automation of dialog development, let’s look at the main methods used for dialog developed…
1️⃣ Design Canvas
A design canvas environment is part and parcel of the vast majority of the Gartner leaders’ dialog design and development approach.
2️⃣ Dialog Configuration
Dialog configuration is more of a state machine approach, with multiple state tables. The biggest proponents of this approach are IBM Watson Assistant with their Dialog Skills & Action Skills, Microsoft Composer, and Power Virtual Agents.
Pro-code/Native code is used in the vast majority of “homegrown” solutions. Microsoft Bot Framework is also a big proponent of native or pro-code. Other frameworks which are pro-code, has a propriety programming language or markdown language for dialog development. Oracle Digital Assistant is a case in point.
4️⃣ Machine Learning Stories
The term Machine learning Stories was coined by Rasa, and the idea is to train a model which predicts the next most probable dialog turn based on the context of the conversation and/or current session.
Find more details here.
I would argue that many of these principles mentioned here, are required to get chatbots out of the trough of disillusionment and into the plateau of productivity.
And as methods are refined, some of these seemingly fringe ideas and approaches will become more mainstream.
Cobus Greyling - City of Johannesburg, Gauteng, South Africa | Professional Profile | LinkedIn
Rasa Hero. NLP/NLU, Chatbots, Voice, Conversational UI/UX, CX Designer, Developer, Ubiquitous User Interfaces…
Cobus Greyling - Medium
Read writing from Cobus Greyling on Medium. NLP/NLU/LLM, Chatbots, Voicebots, Conversational AI, Ubiquitous User…
Eliza Language Technology Community - Language Technology: Conversational AI, NLP/NLP, CCAI…
ELIZA - Where language technology enthusiasts unite.
Currently There Are Four Distinct Chatbot Dialog Development Approaches
Chatbot Dialog Design & Development Are Settling Into Four Main Categories
Five Approaches To Managing Conversational Dialog
And Which Elements Can Play A Supporting Role
Bootstrapping A Chatbot With A Large Language Model
How To Harness The Power Of OpenAI In Creating A Chatbot From Scratch