Build a ChatBot in 10 minutes!

Post on 22-Jan-2018

227 views 1 download

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