Wilson Mar bio photo

Wilson Mar

Hello!

Calendar YouTube Github

LinkedIn

Computers interacting with people by voices, without keyboards

US (English)   Norsk (Norwegian)   Español (Spanish)   Français (French)   Deutsch (German)   Italiano   Português   Estonian   اَلْعَرَبِيَّةُ (Egypt Arabic)   Napali   中文 (简体) Chinese (Simplified)   日本語 Japanese   한국어 Korean

Overview

This is a hands-on introduction to chatbots by various vendors.

amazonregistry.com/bot lists development tools:

  • Amazon Lex
  • Dialogflow
  • Gupshup
  • Microsoft Bot Framework
  • Pandorabots

Description

Chat bots provide a conversational user interface where short messages are exchanged via text or voice interactions.

Academics have identified two types of dialog systems:

  • Goal-oriented, and
  • General conversation (using “generative” and “selective” models)

Some refer to Chatbots as “chatterbots” because they simulate the conversation or “chatter” of a human being. A user can ask a chatbot a question or make a command, and the chatbot responds or performs the requested action.

The computer’s fluency is made possible by recent advances in AI. Machine Learning algorithms are used to “learn” based on many previous real conversations to train it. Because Machine Learning models take into account all past history, chatbots can become better than people.

Companies working on chatbots:

  • Google Dialogflow
  • Microsoft Bot Framework to Bot Services
  • Amazon’s Lex chat bot
  • BotKit

  • Wit.ai acquired by Facebook
  • Salesforce Live Bot (Recast)
  • SAP Conversational AI
  • IBM Watson Assistant

  • Botworx.ai
  • Chatfuel
  • BotPress like WordPress
  • BotMan for PHP
  • Rasa Stack NLU in-house
  • GupShup
  • Botsify for human agent handover
  • Pandorabots
  • Flow XO
  • ManyChat
  • MobileMonkey
  • CoRover

Use case examples

Perhaps the world’s first chatbot is ELIZA developed by Joseph Weizenbaum at MIT. It used an early implementation of natural language processing (NLP), communicating through text rather than spoken language like Alexa. And it was not capable of learning from conversations with humans.

XiaoIce, a chatbot Microsoft launched in China, “has more than 200 million users, has engaged in 30 billion conversations, and has an average conversation length of 23 turns, which averages out to about half an hour, achieving human parity at translation from Chinese to English. Japan-based Rinna and the US-based Zo)

The Dominos Pizza chatbot app takes users through ordering, without a keyboard.

Google’s Dialogflow

Google’s Dialogflow is a flexible tool to build omni-channel chatbots with less coding. It supports all major messaging channels: Facebook Messenger, Slack, Skype, Kik, Line, Telegram, Twitter, Viber etc. And it supports Natural Language Processing in 20+ languages working on more than 400M+ Google Assistant devices.

Dialogflow integrates well to custom apps due to its REST API of Google Actions.

Microsoft Bot Framework

https://dev.botframework.com details Microsoft’s Bot Framework: a complete bot building environment (SDK) introduced at BUILD 2016 for C# .NET and JavaScript NodeJs developers to build, connect, deploy, and manage intelligent bots to naturally interact with users on a website, app, Cortana, Microsoft Teams, Skype, Slack, Facebook Messenger, and more.

It has 2 major components - Channel connectors and BotBuilder SDKs: Channel connectors allow you to connect the chatbot to messaging channels. BotBuilder SDKs implement business logic in the chatbot. BotBuilder SDKs support C#, Javascript, Java, Python. BotBuilder comes with an Emulator for local debugging and visualization of conversations – really helpful for the developers during development.

It’s very easy for developers to connect the Bot Builder SDK with any Natural Language Understanding (NLU) services. Bot Builder SDK on Github has many code samples for developers to get started.

Microsoft’s Azure Bot services

This is an enhanced version of instructions here

  1. Log into your Azure portal
  2. Search for a Bot Service.
  3. New to see a choice of an Azure Bot Service Bot:

    • Web App Bot is deployed to an Azure App Service Web App
    • Bot Channel Registration to host wherever you want
    • Functions Bot are deployed to an Azure Functions App.

  4. Select “Web App Bot”.
  5. Click Create
  6. Bot name needs to unique among all (not just to you).
  7. The princing page says you get 10,000 messages per month free on Premium channels.
  8. Azure Bot Service

    Alternately, use the Bot Framework Emulator

The Bot Framework supports RIA (Rich Attachments).

Microsoft’s Connector service translates Channel JSON to Bot activities.

C# apps are created using Visual Studio 2015 on, with Visual Studio Extentions updated.

Templates

Matthew Kruczek: Getting Started with Building Bots with Microsoft’s Bot Framework 17 Jan 2017

BotKit

Botkit is an opensource NodeJs based SDK framework recently acquired by Microsoft. BotKit is hosted on your own server. Botkit also provides a web chat plugin embeded on websites. Botkit is the leading developer tool for building chatbots, apps and custom integrations for major messaging platforms: Slack, Cisco Webex, Cisco Jabber, Microsoft Teams, Facebook Messenger Twilio SMS, Twilio IPM, Microsoft Bot Framework, Google Hangouts Chat.

BotKit can be easily used with all the major NLP platforms.


How it works

Chatbots use an encoder and a decoder.

A neural conversational model - speaker embeddings.

cosine similarity function

triplet loss

Videos

https://clarity.fm/joebond/expertise/chatbots

More

This is one of a series on AI, Machine Learning, Deep Learning, Robotics, and Analytics:

  1. AI Ecosystem
  2. Machine Learning
  3. Testing AI

  4. Microsoft’s AI
  5. Microsoft’s Azure Machine Learning Algorithms
  6. Microsoft’s Azure Machine Learning tutorial
  7. Microsoft’s Azure Machine Learning certification

  8. Python installation
  9. Juypter notebooks processing Python for humans

  10. Image Processing
  11. Tessaract OCR using OpenCV
  12. Amazon Lex text to speech

  13. Code Generation

  14. Multiple Regression calculation and visualization using Excel and Machine Learning
  15. Tableau Data Visualization