The popularization of IoT is growing at rapid pace, with thousands of devices adding to The Internet every day. The use of IoT, both personal and industrial, is continuing to accelerate which is making human-to-machine communication more important than ever.
Watson Conversation service can add natural language interface to your IoT devices. It allows end-users to communicate with devices and channels by asking questions or giving instructions. Watson Conversation service provides an easy-to-use web application that helps you craft and deploy conversation flows.
A common use for this service is chatbots. With Watson Conversation, you can easily add a chatbot to your website to simulate a conversation and answer your customers’ questions.
Watson Conversation uses your domain expertise in the form of intents and entities to train Watson and obtain a more human-like communication. The results can be further refined by adding more examples of real conversations.
Watson Conversation service is not limited to chatbots. Screenless devices and channels are everywhere. From intercoms to legacy phones to cars and more.
Here is a list of devices and channels that can benefit from using Watson Conversation:
- Automated SMS/MMS
- Virtual Agents
- Automated Intercom
- Wearables (Watches, Smart Glasses, etc)
- Driverless Cars
- Legacy Phones
- Smart Homes
I’m sure you can come up with other examples. But you get the point. IoT is everywhere and the list is only going to grow bigger.
It’s All About Intents & Examples
A successful conversation flow starts with your domain expertise. The flow should begin with the users’ desired outcome. The outcome is express in the form of intents. For example, if a user want’s a list of available amenities, we can create an intent named #locate_amenity.
For each intent, you must provide several real life examples. For instance, to trigger the intent #get_weather you could provide the following examples:
- How is the weather looking next week
- Is it going to be cold tomorrow
- Tell me the weather for today
- What’s the temperature in New York
- Is it going to rain this week
The more examples, the better results you will get.
Another key concept in Watson Conversation is entities. Entities, help further explain the intent. In the last example, we could create the entity ‘day’ with the values= [Today, Tomorrow, Monday, Tuesday…] which will help us narrow the intent.
So, if the user inputs the sentence “Tell me the weather for today and tomorrow” we will get the #get_weather intent and the entities @today, @tomorrow as entities present in the sentence.
Getting Started With Watson Conversation
In your web browser go to the IBM Bluemix website and sign up for a free account. You can also sign into your existing IBM Bluemix account if you already have one.
Next, go the Bluemix Console and log in. If you are not familiar with the Bluemix Console, I recommend you spend few minutes getting familiar with the web interface.
Add a New Conversation Service From The Catalog
We need a new access to the service from the Conversation Service page. This page also contains relevant information including pricing plans.
At the dashboard click on the newly created service and launch the Watson Conversation tool.
Create a New Workspace
The next step is to create a new workspace. A workspace helps group several intents, entities, and dialogs into the same domain.
Add Intents & Entities
As I mentioned before, the most important thing when creating a conversation flow is the domain expertise. In this example, I added five intents and provided several examples for each. I also created several entities to help narrow the intents.
I suggest you spend some time getting familiar with the interface before you go into the next step.
Craft The Conversation With Dialog And Test The Flow
So far we’ve created intents and entities. That should give you an idea of how useful is this service. With the dialog tool, you can easily craft conversations by combining intents, entities, and conditionals.
I created a very simple conversation, that answer with a “Hello” every time the #gretting intent is triggered. Also, if the intent #report_issue and the entity @dishwasher are present in the same sentence, the dialog will answer with something like “No problem. I will report your dishwasher issue.”
This is the simplest example that I could come up with. Get creative, and start building new flows.
Awesome, we crafted a conversation using the Watson Conversation tool. Hopefully, by now you are excited about the possibilities with this service. As with the other Bluemix services, Watson Conversation has a Restful API to access the workspace programmatically. Also, you could add voice capabilities to your IoT device by using the Text to Speech and Speech to Text services.