9. OPTION 1: Make a Fauxbot
Deploying your first chatbot @JoshSomma
10. OPTION 2: build a bot
Deploying your first chatbot @JoshSomma
SDKs available in a variety of languages
Step 1
Develop the bot, application and server
Step 2
11. OPTION 3: Develop a bot using…
Deploying your first chatbot @JoshSomma
AIML
&
AlaaS
12. What is AIML?
Deploying your first chatbot @JoshSomma
A.rtificial
I.ntelligence
M.arkup
L.anguage
13. AIML Categories
<category>
<pattern>WHAT IS YOUR NAME</pattern>
<template>My name is John.</template>
</category>
Deploying your first chatbot @JoshSomma
<template>
What the bot replies
<pattern>
Matches what the user says
14. AIML Context
<that/>&<topic>
Deploying your first chatbot @JoshSomma
<category>
<pattern>
* SMART PHONE *
</pattern>
<template>
Do you have a smartphone?
</template>
</category>
<category>
<pattern>YES</pattern>
<that>DO YOU HAVE A
SMARTPHONE</that>
<template>Do you have Apple or
Android?
</template>
</category>
15. AIML Learning
<learn/>&<learnf>
Deploying your first chatbot @JoshSomma
<category>
<pattern>THE SKY IS BLUE</pattern>
<template>I will remember that the sky is blue
<learn>
<category>
<pattern>WHAT COLOUR IS THE SKY</pattern>
<template>The sky is blue</template>
</category>
</learn>
</template>
</category>
<category>
<pattern>THE SKY IS BLUE</pattern>
<template>I will remember that the sky is blue
<learnf>
<category>
<pattern>WHAT COLOUR IS THE SKY</pattern>
<template>The sky is blue</template>
</category>
</learnf>
</template>
</category>
Who am I
Why i’m giving the talk
What I’ll be talking about
Headlines - FB messenger bot store; MSFT “conversation as platform” (Tay, Xioaice); Kik opening a bot store – change slide
Digital Assistants - Siri, Cortana, Alexa
Chatbots have been around a long time
What’s driving the growth and interest in chatbots?
Headlines - FB messenger bot store; MSFT “conversation as platform” (Tay, Xioaice); Kik opening a bot store
Digital Assistants - Siri, Cortana, Alexa
Chatbots have been around a long time
What’s driving the growth and interest in chatbots?
Machine learning and neural networks are producing much more sophisticated bots
AI is beating chess grandmasters and winning at “Go”
Sophistication of language recognition software is increasing
Big data analysis of billions of emails, text messages and search queries to determine language patterns
Mobile is the internet
Whole generations and geographies skipping desktop as a UI
Apps own the mobile experience
Many of the top apps are chat based messaging services
Chatbots integrate seamlessly into chat apps
Started as a messaging app but has now extended to become a full-fledged platform
Users make hotel reservations, split bills, make doctor appointments, buy movie tickets, and shop via text message.
20 milion companies using the platform as a key commerce and marketing channel
Originally had humans responding to text messages but are now replacing with bots to handle the interactions
Western tech companies are looking to emulate this success
Integrated with a payments system, bot based interactions are driving huge revenues
#Slackbot
Hipchat @Squiz
Hubot
Citymapper gobot
Refactor UI of existing applications to use a chat interface
Not a true bot experience but a good way to experiment with your users
github/hubot
Microsoft/BotBuilder
About AIML
A type of weak A.I. know as pattern matching
AIML is a form of XML that defines rules for matching patterns and determining responses.
Developed by Richard Wallace and open source community between 1995 – 2002
Specification 2.0 came in 2014
Similar to a scripting language
Supports variables, conditions, loops, arrays and key values pairs
Can return HTML and JavaScript
AIML bots are collections of files
Example of category
3 basic types of categories
Atomic
Default
Recursive
Can use <that> tag to refer to the last template the bot responded with
Can group categories under topics
Like programming languages or movies
<learn> tag can teach the bot categories within the conversation but the bot forgets the category
<learnf> writes a new aiml file with categories that can be accessed by other users