build a chatbot in 10 minutes!
TRANSCRIPT
Build a ChatBot in 10 Minutes!Serverless Summit 2017, Bangalore
@dwmkerr
#inserverless
Dave Kerr
Senior Expert, McKinsey & Company
…or… chatbot jugaad!
@dwmkerr
#inserverless
Thank-you to the organisers and sponsors!
Who am I?
@dwmkerr
#inserverless
I am a technology consultant.
@dwmkerr
#inserverless
Which is closer to this…
@dwmkerr
#inserverless
What am I going to talk about?
@dwmkerr
#inserverless
Chatbots!
@dwmkerr
#inserverless
Perfect for serverless technology. Today is about fun, not ROI!
…I’ve got to come clean about
something…
@dwmkerr
#inserverless
…I know almost nothing about
chatbots!
@dwmkerr
#inserverless
Lawrence Hunt, Selin Lanzafame, Dave Kerr
Introducing Lex
@dwmkerr
#inserverless
“Amazon Lex is an AWS service for building conversational interfaces for any applications using
voice and text. With Amazon Lex, the same conversational engine that powers Amazon Alexa
is now available to any developer, enabling you to build sophisticated, natural language
chatbots into your new and existing applications. Amazon Lex provides the deep functionality
and flexibility of natural language understanding (NLU) and automatic speech recognition
(ASR) so you can build highly engaging user experiences with lifelike, conversational
interactions, and create new categories of products.”
@dwmkerr
#inserverless
Say what?
@dwmkerr
#inserverless
Let’s see it in action!
@dwmkerr
#inserverless
Demo 1: Get a boring-bot running
https://github.com/dwmkerr/lex-starter-kit
refs/heads/demo1
@dwmkerr
#inserverless
We setup the project with make setup
@dwmkerr
#inserverless
We can deploy lex models with make deploy
Here’s how our conversation looks so far
@dwmkerr
#inserverless
Getting Input
@dwmkerr
#inserverless
Most conversations need input!
@dwmkerr
#inserverless
Demo 2: Getting Input with Slots
https://github.com/dwmkerr/lex-starter-kit
refs/heads/demo2
@dwmkerr
#inserverless
We configure the environment with make config
We can deploy lex models with make deploy
Our conversation flow is now more complete
Cool kids use the shell for
everythinggithub.com/dwmkerr/effective-shell
@dwmkerr
#inserverless
Intermission: Using lex-chat
https://github.com/dwmkerr/lex-chat
@dwmkerr
#inserverless
Using sessions to manage
conversation state
@dwmkerr
#inserverless
Sometimes we have state which we
build up over a conversation…
@dwmkerr
#inserverless
Demo 3: Sessions
https://github.com/dwmkerr/lex-starter-kit
refs/heads/demo3
@dwmkerr
#inserverless
Use the session to persist conversation state between
intents
This gets complex! When do you
clear a session?
At least you save time on the
scripting
@dwmkerr
#inserverless
Bootstrap your bots, and join in for
the next set of features!github.com/dwmkerr/lex-starter-kit
github.com/dwmkerr/lex-chat
@dwmkerr
#inserverless
Thanks!
@dwmkerr
dwmkerr.com
github.com/dwmkerr
linkedin.com/in/dwmkerr
Appendices
@dwmkerr
#inserverless
Tips and Tricks
• Question marks in intent utterances will break Lex!
• Train with realistic data
• Complicated or very variable slots are very hard to work with (e.g.
sentences), consider using cards
• Encrypt sensitive environment variables such as keys when using lambda
functions
@dwmkerr
#inserverless