ºÝºÝߣ

ºÝºÝߣShare a Scribd company logo
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
Build a ChatBot in 10 minutes!
Which is closer to this¡­
@dwmkerr
#inserverless
Build a ChatBot in 10 minutes!
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
everything
github.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

More Related Content

Build a ChatBot in 10 minutes!

Editor's Notes

  • #7: I do three things: Advise on strategy, typical McKinsey stuff Lead our engineering practice A lot of coding
  • #8: Lessons Learned: 2 mins 23/25 mins You cannot simply transplant existing projects onto a platform like kubernetes and expect it to scale. Anecdote: a week of time lost while the team try and get a complex multi-database solution working on Kubernetes, a day to run it on VMs. Lesson: Know what works. Stateless, or self organising homogenous nodes
  • #9: 5m mark: Serving clients across the world, deploying in airports, writing code.
  • #19: Show the readme Setup the environment variable Create the infrastructure Show the bucket and function Show the lambda function, no invocations Show the role and policy, you¡¯ll be glad you have it!
  • #24: Demo: 0. show the README and table show how there is a makefile in each project run the first two makefiles Show the circle file Show the travis file
  • #30: Show the readme Setup the environment variable Create the infrastructure Show the bucket and function Show the lambda function, no invocations Show the role and policy, you¡¯ll be glad you have it!
  • #33: Demo: 0. show the README and table show how there is a makefile in each project run the first two makefiles Show the circle file Show the travis file
  • #37: Lessons Learned: 2 mins 23/25 mins You cannot simply transplant existing projects onto a platform like kubernetes and expect it to scale. Anecdote: a week of time lost while the team try and get a complex multi-database solution working on Kubernetes, a day to run it on VMs. Lesson: Know what works. Stateless, or self organising homogenous nodes
  • #39: Show the readme Setup the environment variable Create the infrastructure Show the bucket and function Show the lambda function, no invocations Show the role and policy, you¡¯ll be glad you have it!