I am telling you 3 things about Chatbot

(so you don't have to learn it the hard way)

Cheuk Ting Ho



About me

Co-organizer of 

Open Source contribution

Creator of

Volenteer of


What is a chatbot?

A computer program designed to simulate conversation with human users, especially over the Internet. - Oxford Dictionaries

What is Turing test?

A person talks to both the person and the computer. The goal is to find out who his interlocutor is — a person or a machine.

Chatbot in business


  • Find out the weather  
    What’s the weather today?
  • Find your way home
    Navigate home.
  • Ask Google questions
    How many kilometres in a mile?
  • Play music 
    Play some Jazz music.
  • Ask for a joke
    Tell me a joke.

Chatbot in business

  • Answer questions about what is around you
  • Transferring money
  • Censorship — Avoids saying certain sensitive words

Chatbot in business

  • Healthcare — Symptom Checker Chatbot.
  • Provide relevant health and triage information based on symptoms;
  • However, the reliability has been challenged.

Chatbot in business

  • Rita — Revolut’s Intelligent Troubleshooting Assistant
  • For customer support
  • However, I prefer a real person

1. main components of a chatbot

4 Main components

  1. Natural language processing
    - Understanding of the user's message
    - Identifying intents and entities

  2. Dialog manager
    - Control the flow of the conversation
  3. Content
    - Scripts of what the chatbot's going to say
  4. Custom integrations / external data
    - Extra functions: e.g. sending data to DB, prompting external informations to users, sentiment analysis



App Development

Data Engineering

It's a team work to build chatbot

...from scratch

Luckily we have tools available

2. what a chatbot can and cannot do

1. Trying too hard

for passing the Turing test

Trying too hard to pass the Turing test

  • Pretend to be human
    - User feels that they are fooled
  • Handel too many things
    - User feels frustrated
  • End up passing back the conversation to a human to handle
  • Better be clear that user is chatting to a bot

2. Lack of clear dialog flow

Lack of Clear dialog flow

  • The best commercial bots will try to redirect conversation back to the planed dialog flow
    - aim to collect certain information form user
  • Handle one thing at a time
  • Minimize chitchat
    - which is not the chatbot's purpose and strength
  • User learn how to communicate with the bot

3. Not smart enough

Not Smart Enough

  • Not enough training data
    - Bad NLU model
  • Not enough content diversity
    - Not content generative model
    - Conversation feels dull
  • Avoid decision-tree types of bots
    - User rather fill in a form

Good Examples

Good Examples

  • Good NLP capability
    - multiple entirety extraction
    - adding event in iCalander
    - content extraction in Gmail
  • Tell users that they are chatting to an assistant (bot, not human)
  • Be clear what is wanted form the user
  • Fail gracefully
    - Redirect conversation vs asking for repeat

3. which one to choose


  • Open Source
  • Community support
  • Fully customisation
    - pipeline, model, functionality
  • Own deployment
  • Enterprise version available


  • IBM
  • Slack community
  • SDK for building with Watson API
  • Free version: 10,000 free API calls a month
  • Different pricing for different plans


  • Google
  • Dialogflow Google Group
  • SDK and code example available on GitHub
  • Free Standard Edition
  • Pay as you go Enterprise Edition


  • Amazon Web Service
  • Amazon Lex forums
  • SDKs: Java, JavaScript, Python, CLI, .NET, Ruby on Rails, PHP, Go, and CPP
  • Limited usage via AWS Free Tier
  • Or pay only for what you use


Documentation Configuration Testing
Rasa 😀😀😀😀 😀 😀😀
Watson 😀😀😀 😀😀😀😀😀 😀😀😀😀
Dialogflow 😀😀😀😀😀 😀😀😀 😀😀😀😀
Lex 😀 😀😀😀 😀😀😀😀


Flexibility Difficulty Price
Rasa 😀😀😀😀😀 😀 😀😀😀😀😀
Watson 😀😀 😀😀😀😀 😀😀
Dialogflow 😀😀 😀😀😀😀 😀😀
Lex 😀😀 😀😀😀 😀😀

My 2 cents

  • What is the purpose of your chatbot?
  • What resources do you have?
  • How you gonna deploy it?
  • What skill level do you have?
  • How much time do you want to invest in it?

Start building a chatbot !!!