Chatbots - Getting Started 2018
Resources for my July 2018 talks on chatbots. To see this introduction as presentation, render the PITCHME.md on GitPitch.
- Eine deutsche Version ist im Branch deutsch_httf.
- The IDUG EMEA 2018 version is accessible in the branch idug2018
- The IDUG NA 2019 version is accessible in the branch idugNA2019
Overview
Here is an overview of chatbot concepts. Wikipedia has this short description about chatbots :
A chatbot (also known as a talkbots, chatterbot, Bot, IM bot, interactive agent, or Artificial Conversational Entity) is a computer program or an artificial intelligence which conducts a conversation via auditory or textual methods.
Accordingly, chatbots have two tasks:
Understanding the user's intent and producing the correct answer.
To understand the user's intent and to produce the correct answer, some additional concepts are used:
- Intents are what the user aims for, the desired action or result of the interaction. An intent can be to retrieve a weather report.
- Entities are (real or virtual) subjects or objects. For the example of the weather report, entities can be the city or country, e.g., Friedrichshafen in Germany, or date and time information such as "today afternoon".
- A dialog, dialog flow or dialog tree is used to structure the interaction. Typically, an interaction lasts longer than the user providing input and the chatbot returning a single answer. A dialog can be highly complex with several levels, subbranches, (directed) links between dialog nodes and more.
For a weather chatbot, a dialog could be constructed that, after a greeting, asks the user about the location and time for a weather report, then asks if additional information, such as a weather outlook for the next few days, is needed. - Slots are supported by several chatbot systems. Slots are used to specify the data items that need to be specified in order to produce the result of an intent. To return a weather report, e.g., at least the location and maybe the date or time is needed.
- Context is state information that is carried from step to step for a specific user interaction. The context typically stores the information that is already gathered as input (see "slot"), result-related data or metadata, or general chat information, e.g., the user name.
The following architecture diagram is part of the Cloud Insurance Co demo. That demo features an insurance portal. A chatbot assist customers to file claims and to check coverage. Administrators have access to chat logs to improve customer satisfaction.
Resources
Tutorials & Demos
The following tutorials give a good introduction to chatbots:
- Getting started tutorial for Watson Assistant
- Build a database-driven Slackbot
- Build a voice-enabled Android chatbot
- Cloud insurance Co.
- Bot Asset Exchange
Related blog posts
I wrote quite a number of blog posts about chatbots. The articles have links to further information.
- Database-driven Slack chatbot with Conversation service
- Chatbots: Some tricks with slots in conversations
- Lively chatbots: Best Practices
- Building chatbots: more tipcs and tricks
- Lessons and Tips from a Chatbot Hackathon
- Watson Conversation: How to Manage Workspaces
- Extended: Manage and interact with Watson Assistant from the command line
Other resources
- Watson Conversation Variables has tips and tricks around processing context variables within Watson Assistant
- watson conversation tool: tool to manage and interact with Watson Assistant from the command line. Written in Python using the Watson SDK.