Building Bots with IBM Watson Assistant
As an AI-powered chatbot framework for building conversational assistants, IBM Watson Assistant offers a variety of bot-building tools. Find out how you can use the Watson Assistant framework to create chatbots for enterprise communications, your own website, or deployment to different messaging applications.
August 27, 2019
You probably heard about Watson in 2011, when the rest of the world did. In an event that gave many people their first exposure to conversational AI, IBM Watson competed (and triumphed) against human contestants on the game show Jeopardy!. And Watson didn’t beat just anybody—it defeated two of the program’s most decorated champions. Clearly, Watson was smart.
Back then, Watson was still a closed system. Around the time of its Jeopardy! appearance, some IBM enterprise clients had begun using it for specialized use cases, but the technology wasn’t available to everyone. Today, all of that has changed. The Watson Assistant chatbot framework is available to virtually all developers, extending IBM AI technology to the masses.
To get a sense of what’s possible with Watson Assistant, let’s do a deep dive into the framework. Among other things, we’ll explore use cases, features, integrations, and the basics of the Watson Assistant machine learning engine.
What is IBM Watson Assistant?
Watson Assistant is a comprehensive chatbot framework with built-in machine learning capabilities. In terms of features, integrations, and overall flexibility, it carries its weight among the other major players in this space, including Amazon Lex, Dialogflow, and Microsoft Bot Framework.
Given the general IBM focus on the enterprise, it’s no surprise that large companies are using Watson Assistant to build sophisticated AI tools for a variety of internal purposes. However, even though Watson Assistant is powerful enough for ambitious projects, smaller organizations need not be intimidated. You can start using Watson Assistant for free, and there’s even a graphical user interface for non-developers who want to create and manage bots.
IBM Watson Assistant chatbot examples
To get a sense of what’s possible with Watson Assistant, let’s look at three different types of chatbots. The first two solve business problems for large companies. The third aggregates data to serve the public good.
Data analysis chatbot
According to an IBM case study, engineers at Woodside, an Australian oil and gas company, were spending lots of time identifying how to solve engineering problems (such as repairing large, sophisticated machinery) and pinpointing potential safety hazards in the field. To do everything properly, they had to consult large volumes of documentation. Ultimately, these efforts took four times as long as the actual engineering work.
To streamline operations, the company leveraged various IBM Watson products, including Watson Assistant, to create a cognitive system that engineers can activate to query information. Through a machine learning model and the assimilation of vast quantities of internal resources, the Woodside Watson project provided users with an accessible tool for finding the information they needed to complete tasks safely and correctly.
According to IBM literature, Watson reduced engineers’ research time by 75 percent and saved Woodside more than $10 million in regained time.
Virtual assistant chatbot
Alfredo is a virtual assistant that performs functions similar to the Woodside bot, except that it serves bank employees. Created by the Italian Commercial Bank, Creval Sistemi e Servizi (Creval), using IBM Watson Assistant, Alfredo fields questions from branch employees, so they don’t have to call the back office service desk.
Before Alfredo, back office employees would receive countless phone calls throughout the day—so many that they couldn’t even answer them all. In addition, they kept answering the same questions over and over.
Today, Creval branch employees ask Alfredo these questions first. Service desk calls have been reduced by 80 percent, and back office personnel can direct their efforts toward the problem-solving tasks they were trained to execute.
Public health chatbot
To improve water quality management in cities, WaterBot used Watson technologies to build a chatbot that aggregates water quality information submitted by users. Regular citizens can use WaterBot to send anonymous water quality data from their homes. On the backend, that data is subjected to rigorous analysis.
The goal is to identify systemic problems quickly, provide early warnings, and reduce health risks among the public. Currently, many water utilities only have the resources to perform weekly tests. WaterBot, in theory, will hone in on contamination events much more rapidly.
Pros and cons of Watson Assistant
Watson Assistant pros
For many types of chatbots, there’s a lot to like about Watson Assistant. For starters, it’s loaded with a highly capable machine learning engine. The framework also offers a free tier, extremely detailed Watson Assistant documentation, and a variety of SDKs so you can work on your bot in your preferred language. Since non-technical business users might end up managing your bot one day, there’s also a GUI that allows them to make changes. These users can even build a bot using the Watson Assistant GUI.
To bulk up its machine learning, Watson Assistant comes preloaded with industry-specific language models that could give you a head start building your bot. With these models at your disposal, you won’t have to train your bot in the basics. It will already know some vocabulary right out of the box.
If you’re concerned about privacy and data security, Watson Assistant might be your framework. Some vendors collect the information gathered by bots built using their tools, but IBM doesn’t do this. Instead, it gives you a choice to store data collected by your bot in a private cloud.
Watson Assistant cons
There are few true downsides to using IBM Watson Assistant. One potential issue has to do with use cases. Although it’s possible to build practically any kind of bot with this framework, its feature set is geared toward AI assistants. If you’re doing something different, like a basic gaming or e-commerce bot, the included tools may be more than you need for your project.
There’s also the question of infrastructure. If your organization is already tied into another vendor’s IT ecosystem, you might want to use that provider’s bot-building tools instead, if they have any. This scenario applies to businesses that already use other enterprise technologies built by Microsoft, Amazon, or Google.
Watson Assistant features and integrations
IBM counts the following among the most significant features of Watson Assistant:
- GUI. A straightforward dialog builder allows anyone to build and manage a bot.
- Machine learning models. Watson Assistant builds a machine learning model based on the intents and entities you feed it.
- Digressions. When users change the subject in a chat, your bot knows to follow their digression and then return to the matter at hand.
- Disambiguation. Your bot won’t assume it knows the answer to an ambiguous question. Instead it will ask for additional information until it can provide a valuable response.
- Accelerated language model building. With Watson Assistant, you can import chat logs so that the AI will recommend new intents. You can also avail yourself of the framework’s industry-specific starter language models.
- Personalization. Your bot can store data from interactions so that it recognizes returning users and personalizes their experience.
- Immediate handoff to a human. When needed, your bot can do this without intervention from IT.
Another plus, at least for many users, is full IBM Cloud integration. Your Watson Assistant chatbot is automatically hosted by IBM Cloud, so you don’t have to host it locally. As mentioned, you still can host your bot’s data on another cloud, such as a private cloud. This ability could be important for organizations that are subject to rigid data compliance rules.
As for integrations, the documentation includes specific instructions for integrating with Facebook Messenger, Intercom, and Slack. There’s also an official WordPress plugin for deploying your Watson Assistant chatbot to a site that runs on WordPress.
Regardless of the CMS, you really do need to deploy your bot to a dedicated domain. A .BOT domain is suited to this purpose, and it gives users a way to find your bot even when they’re not logged in to a third-party messaging app. You can deploy your Watson Assistant bot practically anywhere, so be sure to make your own bot-centric website one of those destinations.
IBM Watson Assistant pricing model
There are five price tiers for Watson Assistant:
- Lite. This is the free tier. You get 10,000 messages per month and 50 skills (more on those in a moment).
- Standard. For $0.0025 per message, you get unlimited messages, 20 skills, 10 versions per skill, and unlimited dialog notes.
- Plus. Get unlimited messages, 50 skills, 10 versions per skill, unlimited dialog notes, and service desk integrations. Pricing info isn’t public, but you can contact IBM for a 30-day trial.
- Premium. Available for a custom price, you get unlimited messages, 50 skills, 50 versions per skill, unlimited dialog notes, service desk integrations, and data isolation.
- Deploy Anywhere. Also subject to custom pricing, this plan is similar to the premium plan except that you get to host your bot on-premises or in any type of private, public, or hybrid cloud.
To understand what’s included in each plan, it helps to know what IBM means by skills and skill versions. A skill refers to an AI container that allows your bot to achieve something for a user. For example, a bot might be able to solve seven different kinds of problems. When that’s the case, you’d need a plan that includes seven different skills.
A skill version, on the other hand, is more granular. It’s a feature that lets you manage skills by separating the live deployment of a skill (that is, the live version) from versions that are in development. Ultimately, you can adjust the experience on a given skill and save those variations as different versions.
Supported programming languages
There are client libraries for the following languages, all of which are available in the API reference for Watson Assistant:
How machine learning works in IBM Watson Assistant
Watson Assistant learns like humans do—through training and experience. Training, of course, is the first part. You’ve got to train your bot to recognize what a user wants, and the Getting Started tutorial from the documentation is a good way to understand how that works. The basic process unfolds like this:
- Create a dialog skill. You’ll recall that a skill is a container for a particular AI function.
- Add intents. You need to feed some user intents into your skill. A good way to do this is to use the IBM prebuilt training data. Intents refer to different goals that users are trying to achieve.
- Associate entities with intents. This is how your bot knows what statements are indicative of which types of intents. It extracts entities (generally speaking, words that your users input) from users’ statements and matches them to intents, per your model.
- Build a dialog. Based on your intents and entities, your bot engages users in a conversation flow. This is your dialog.
- Deploy and observe. To help your bot learn, it needs to gain some experience out in the wild. Over time, you’ll notice areas where your bot excels and areas where you may need to feed it additional intents and entities.
- Iterate. Add more intents, entities, or even additional skills to your bot. This is how your bot gets “smarter” as it engages in new interactions.
How to get started with IBM Watson Assistant
The Getting Started tutorial offers a good overview of what to expect. Also, be sure to read through the extensive collection of Watson Assistant how-to guides. These guides include rundowns of creating skills, intents, dialogs, entities, and skill versions.
Other than that, all you have to do is sign up. The free tier gives you unfettered access to virtually all of the Watson Assistant bot-building tools. Start building a bot, and see whether the framework can help you meet your development goals.