SlideShare a Scribd company logo
1 of 116
Chatbots and
Serverless: A match
made in the Cloud
Gillian Armstrong
@virtualgill
QConSF
InfoQ.com: News & Community Site
• Over 1,000,000 software developers, architects and CTOs read the site world-
wide every month
• 250,000 senior developers subscribe to our weekly newsletter
• Published in 4 languages (English, Chinese, Japanese and Brazilian
Portuguese)
• Post content from our QCon conferences
• 2 dedicated podcast channels: The InfoQ Podcast, with a focus on
Architecture and The Engineering Culture Podcast, with a focus on building
• 96 deep dives on innovative topics packed as downloadable emags and
minibooks
• Over 40 new content items per week
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
serverless-chatbots
Purpose of QCon
- to empower software development by facilitating the spread of
knowledge and innovation
Strategy
- practitioner-driven conference designed for YOU: influencers of
change and innovation in your teams
- speakers and topics driving the evolution and innovation
- connecting and catalyzing the influencers and innovators
Highlights
- attended by more than 12,000 delegates since 2007
- held in 9 cities worldwide
Presented at QCon San Francisco
www.qconsf.com
Gillian Armstrong
@virtualgill
Technologist
Cognitive Technologies
Liberty IT
Gillian Armstrong @virtualgill
2016
2020
7%
SOURCE: US Census, Gartner,
Edison Research, Voicebot.ai
75%
Smart Speaker US Household
Ownership Forecast
2016
2020
7%
SOURCE: US Census, Gartner,
Edison Research, Voicebot.ai
75%
Smart Speaker US Household
Ownership Forecast
The world is
changing
fast
So we need to
be able to
learn fastThe world is
changing
fast
Gillian Armstrong @virtualgill
Change
Fast
Learn
Fast
use what we learn to
so we can keep
on learning
Gillian Armstrong @virtualgill
Change
Fast
Learn
Fast
Both Chatbots and Serverless let us
and
Gillian Armstrong @virtualgill
What is a
Chatbot???
What do you
mean byServerless???
???
???
???
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
A Serverless solution is one that costs
you nothing to run if nobody is using it
(excluding data storage cost)
For the purposes of this presentation...
- Paul Johnston
Gillian Armstrong @virtualgill
For the purposes of this presentation...
A Chatbot is something you can
interact with conversationally
using natural language
- me
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
CHANNEL/DEVICE
NLU NLP
INTENTS ENTITIES
I n t e r a c t i o n M o d e l
Fulfillment
MachineLearning
ASR TTS
CUX/VUX
A very quick
overview of a
Chatbot using
Conversational AI
Gillian Armstrong @virtualgill
CHANNEL/DEVICE
NLU NLP
INTENTS
I n t e r a c t i o n M o d e l
Fulfillment
MachineLearning
ASR TTS
CUX/VUX
Utterance
(“what the
user said”)
Automatic
Speech
Recognition
(Speech to Text)
Text to Speech
Mapping of Utterance to Intent
(“what the user meant”)
Extraction of Entities
(variables like time, place, number, etc)
Oh hey, there’s still UI design
Insert cool
serverless
architecture here
Conversational / Voice User Experience
(“how we sound and the words we say”)
Conversational User Interface
ENTITIES
Intent maps to Fulfillment
(“what we need to do”)
Gillian Armstrong @virtualgill
CHANNEL/DEVICE
NLU NLP
INTENTS
I n t e r a c t i o n M o d e l
Fulfillment
MachineLearning
ASR TTS
CUX/VUX
Design it so
a Human can
understand it
Train your Bot
to understand
Humans
Write code to make
it do something!
1
2
3
What we need to do…
ENTITIES
Gillian Armstrong @virtualgill
CHANNEL/DEVICE
NLU NLP
INTENTS
I n t e r a c t i o n M o d e l
Fulfillment
MachineLearning
ASR TTS
CUX/VUX
Design it so
a Human can
understand it
Train your Bot
to understand
Humans
Write code to make
it do something!
1
2
3
What we need to do…
Often starting
point and
focus
Hardcoded
and then
panic-written
after that
well-received
demo
Forgotten
ENTITIES
Gillian Armstrong @virtualgill
Design it so a
Human can
understand it
1
Gillian Armstrong @virtualgill
In a chatbot,
Conversation is
the Interface
Gillian Armstrong @virtualgill
Source: http://hosanna1.com/
Not a CSS
and HTML
problem!
Design
Matters!
Gillian Armstrong @virtualgill
Up to now we’ve
kept designing
based on what
came before
Gillian Armstrong @virtualgill
We’ve carried the
concept of menus
and commands
into our graphical
user interfaces
Gillian Armstrong @virtualgill
We base our web
forms on the
paper forms that
came before
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
Model your design on a
human, not a website
People are the original
conversational interface
Gillian Armstrong @virtualgill
When you start with
thinking about trying out
a design you may
discover that a chatbot
isn’t even the right thing
to build…
Gillian Armstrong @virtualgill
But assuming it is…
Gillian Armstrong @virtualgill
Be Clear
Be Helpful Be Nice
• Proactively offer help
• Get people back on track
• Repetition is annoying
• Repetition is annoying
• Take the blame – in a conversation the
human is never wrong
• Chatbots aren't smarter than a human
• Be understanding if people don’t want
to talk to you – offer alternatives.
1 minute
Conversational
Design
overview
• Keep your personality consistent
• Keep answers short and to the point
• Set expectations – what can you do
• Reflect back key information and
confirm before critical actions.
Gillian Armstrong @virtualgill
The Web is about Telling
the user what to do
Conversational UI is
about Listening to what
the user wants to do
Gillian Armstrong @virtualgill
Train your Bot
to understand
Humans
2
Gillian Armstrong @virtualgill
Amazon Lex Console
What the Web Tutorials told me
building a chatbot looked like…
Gillian Armstrong @virtualgill
BOOK MEETING
IntentUtterance
SAY HELLO
GET HELP
Fulfillment
Gillian Armstrong @virtualgill
IntentUtterance
As simple
providing a set
of sample
utterances!
Book Meeting at <TIME> on <DATE>
Set up Appointment
Create event on <DATE>
Set up Meeting
Book me a meeting at <TIME>
…
Hello
Hi there
Hey
Good Morning
…
Help
What can you do
Help me
I need help
…
BOOKMEETINGSAYHELLOGETHELP
Gillian Armstrong @virtualgill
Amazon Lex Console
SET OF
INTENTS
Represents the
functionality
the bot has
SAMPLE
UTTERANCES
Examples of what a
user might say to
trigger this Intent.
This is training data -
not a regex match.
Gillian Armstrong @virtualgill
Amazon Lex Console
SLOTS (ENTITIES)
are defined showing
type (place, name,
time, custom, etc.)
If the user does not supply this data
the bot knows to prompt for it.
The sample
utterances show
where to expect the
data to be supplied in
an utterance
Gillian Armstrong @virtualgill
FULFILLMENT location
defined.
Intent and Slot matches will
be sent to this lambda or
returned directly to client.
Amazon Lex Console
Gillian Armstrong @virtualgill
Amazon Lex Console
Publish to make
the functionality
live to users.
Build to create the
Interaction Model
Gillian Armstrong @virtualgill
Amazon Lex Console
Built-in Test
Console allows you
to test directly here
after building, but
before publishing.
Gillian Armstrong @virtualgill
Amazon Lex Console
Easy to connect
your bot to popular
channels through
console.
Gillian Armstrong @virtualgill
Amazon Lex Console
Chatbot Done…?
Gillian Armstrong @virtualgill
Sorry, I’m just a
baby bot. I’m still
learning.
Gillian Armstrong @virtualgill
Sorry, I’m just a
baby bot. I’m still
learning.
are you?
Gillian Armstrong @virtualgill
IntentUtterance
As simple
providing a set
of sample
utterances!
Book Meeting at <TIME> on <DATE>
Set up Appointment
Create event on <DATE>
Set up Meeting
Book me a meeting at <TIME>
…
Hello
Hi there
Hey
Good Morning
…
Help
What can you do
Help me
I need help
…
BOOKMEETINGSAYHELLOGETHELP
Gillian Armstrong @virtualgill
IntentUtterance
As complex
as providing a
set of sample
utterances!
Book Meeting at <TIME> on <DATE>
Set up Appointment
Create event on <DATE>
Set up Meeting
Book me a meeting at <TIME>
…
Hello
Hi there
Hey
Good Morning
…
Help
What can you do
Help me
I need help
…
BOOKMEETINGSAYHELLOGETHELP
Model your design on a
human
Get your sample utterances
from your users…
you wouldn’t make up other
machine learning training data!
Gillian Armstrong @virtualgill
Track metrics and review
conversation to improve your
Bot Interaction Model.
Learn
Fast
Sorry, I’m just a
baby bot. I’m still
learning.
Change
Fast
Gillian Armstrong @virtualgill
Look for Vocabulary used
Should we add new synonyms
Look for the Utterance Structure
Should we add new training data
Look for Interaction Patterns
Can we improve the conversation flow
Learn
Fast
Change
Fast
Reviewing Conversation Transcripts…
Gillian Armstrong @virtualgill
Chatbots aren’t magic
(although I wish they were)
Gillian Armstrong @virtualgill
Write code to
make it do
something!
3
Gillian Armstrong @virtualgill
Pop a lambda
here – and
you’re done!
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
CONTEXT
CONVERSATION
SESSION
CHAT
STREAM
ANALYTICS
NLP +
INTENT
MAPPING
FULFILLMENT…
Amazon
Lex
Amazon
VPC
AWS
Direct
Connect
AWS
Lambda
AWS
Lambda
Amazon
DynamoDB
Amazon
DynamoDB
AWS
Lambda
Amazon
CloudWatch
Amazon
ES
IAM
Amazon
Polly
Amazon
S3
AWS
X-Ray
Amazon API
Gateway
Amazon
Athena Amazon
S3
Amazon
API
Gateway
THE DIGITAL ASSISTANT BOT PLATFORM ARCHITECTURE
Number of
conversations
Length of
conversations
Functionality
being used
Number of Users
What people
want us to add
Where we are
getting it right
Where we are
getting it wrong
Examples of our
Conversational Analytics
Gillian Armstrong @virtualgill
Observability is critical
This lets you quickly learn
where there might be problems
with your system.
Gillian Armstrong @virtualgill
Why Serverless??
Gillian Armstrong @virtualgill
Lower Cost
lets us
Change
Fast
Learn
Fast
Off-loading Maintenance
lets us
Gillian Armstrong @virtualgill
Instead of custom
building and managing
your own servers, db, etc…
Gillian Armstrong @virtualgill
Use standard pieces –
that someone else has
built and manages - and
put them together to get
the system you want
Gillian Armstrong @virtualgill
Serverless Services
Gillian Armstrong @virtualgill
Lambdas are quick to develop,
isolate small pieces of
functionality and allow you to
scale different parts of the
conversation independently.
Gillian Armstrong @virtualgill
Ensure that
everything scales
- or at least know
your limits.
API
Lambda
functions
Amazon
DynamoDB
Gillian Armstrong @virtualgill
Serverless means you don’t
pay if no-one talks to your
bot…
…and lets you scale
seamlessly if everyone
wants to talk to your bot!
Gillian Armstrong @virtualgill
Cost
Usage
No usage,
no cost
Higher usage,
higher cost
Gillian Armstrong @virtualgill
Cost
Usage
Watch the
free tier…
Cost may not
be linear
Gillian Armstrong @virtualgill
Monolith
Some notes for
those with
existing systems
Gillian Armstrong @virtualgill
Monolith Microservices
async!
event
driven!
Gillian Armstrong @virtualgill
Monolith Microservices Function as a Service
Gillian Armstrong @virtualgill
REWRITE is not a
four-letter word
Gillian Armstrong @virtualgill
Model your design on a
human, not a website
People are the original
conversational interface
Gillian Armstrong @virtualgill
A good human conversation is
synchronous
You wait for a response
You expect a response
immediately
Gillian Armstrong @virtualgill
A Conversational
Architecture needs to
- Be fast!
- Appear synchronous to the
user (there should be a
response)
This is particularly critical for a voice-based bot
Gillian Armstrong @virtualgill
Monolith Microservices Function as a Service
Gillian Armstrong @virtualgill
Do not just lift and shift your
microservices into FaaS
Gillian Armstrong @virtualgill
invoke invoke invoke
Combining the time to invoke and the time to ‘spin up’
can hit performance and add complexity to your system.
Choose to ‘keep warm’ only as a last resort.
Do not end up with a collection of
distributed microservices
Gillian Armstrong @virtualgill
invoke
Shhhhhh….. It’s ok to have more than one
function in your Function as a Service…
Look for where you can pull functionality
into reusable libraries instead
Gillian Armstrong @virtualgill
Having said that… don’t just lift and shift
your microservices into FaaS
Gillian Armstrong @virtualgill
API API API
APIs designed for webforms tend to be
set up to collect sets of data page by page
Gillian Armstrong @virtualgill
API
A Conversation is non-linear – the user can give
partial information, or information that would have
been collected later on your webform.
Gillian Armstrong @virtualgill
REWRITE is not a
four-letter word
Gillian Armstrong @virtualgill
Both Serverless
and Chatbots
require new ways
of thinking about
your architecture.
Gillian Armstrong @virtualgill
CHANGE
FAST
LEARN
FAST
We get there iteratively by being able to
and
Gillian Armstrong @virtualgill
CHANGE
FAST
LEARN
FAST
Both Chatbots and Serverless let us
and
Gillian Armstrong @virtualgill
CHANGE
FAST
LEARN
FAST
Both Chatbots and Serverless let us
and
but Good Supporting Engineering Practices are
needed to do both with confidence and at scale
Gillian Armstrong @virtualgill
Amazon Lex Console
What the Web Tutorials told me
building a chatbot looked like…
Gillian Armstrong @virtualgill
CODE HERE
Fulfillment
in Code
Gillian Armstrong @virtualgill
CODE HERE
CODE HERE
Bot
Interaction
Model
in Code
Gillian Armstrong @virtualgill
CODE HERE
CODE HERE
CODE HERE
Design
in Code
Gillian Armstrong @virtualgill
CODE HERE
CODE HERE
CODE HERE
CODE HERE
CODE HERE
CODE HERE
CODE HERE
Infrastructure
in Code
Gillian Armstrong @virtualgill
CODE HERE
EVERYTHING
in Code
CODE HERE
CODE HERE
CODE HERE
CODE HERE
CODE HERE
CODE HERE
Gillian Armstrong @virtualgill
EVERYTHING
in Code
• Testable
• Traceable
• Repeatable
• Observable
Gillian Armstrong @virtualgill
Gillian Armstrong @virtualgill
CONTEXT
CONVERSATION
SESSION
CHAT
STREAM
ANALYTICS
NLP +
INTENT
MAPPING
FULFILLMENT…
Amazon
Lex
Amazon
VPC
AWS
Direct
Connect
AWS
Lambda
AWS
Lambda
Amazon
DynamoDB
Amazon
DynamoDB
AWS
Lambda
Amazon
CloudWatch
Amazon
ES
IAM
Amazon
Polly
Amazon
S3
AWS
X-Ray
Amazon API
Gateway
Amazon
Athena Amazon
S3
Amazon
API
Gateway
THE DIGITAL ASSISTANT BOT PLATFORM ARCHITECTURE
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Local and Pre-Commit
Hook Tests
• Unit Test
• Lambdas
• Libraries
• Static analysis
• Cloud Formation
• Code
• JSON for API calls
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
Build Tests
• Unit Test
• Lambdas
• Libraries
• Static analysis
• Cloud Formation
• Code
• JSON for API calls
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
All tests, builds, deploys and
alarms sent to Slack channels to
alert developers immediately
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
All tests, builds, deploys and
alarms sent to Slack channels to
alert developers immediately
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
AWS
CloudFormation
Templates
Amazon S3
deployment
bucket
Amazon
Lex
Model
Building
Service
Botbuilder
Lambda
function
Packaged
Fulfillment
Lambdas
Bot JSON files
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
All tests, builds, deploys and
alarms sent to Slack channels to
alert developers immediately
Deploy Tests
• Smoke Tests
• Component Tests
(Lex) Non-Prod Only
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
All tests, builds, deploys and
alarms sent to Slack channels to
alert developers immediately
Fully tested new
functionality
available in
minutes
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
All tests, builds, deploys and
alarms sent to Slack channels to
alert developers immediately
Live
Analytics
Fully tested new
functionality
available in
minutes
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
All tests, builds, deploys and
alarms sent to Slack channels to
alert developers immediately
Live
Analytics
‘Live’ Tests - APM
• Alarms
• Cloudwatch metrics
and Dashboards
• Centralized Logging
• Tracing
Gillian Armstrong @virtualgill
Conversation as Code - Amazon Lex
Fully Validated and Repeatable Bot Build and Deploy to any AWS Account
Everything written in CFN,
with JSON for API calls to
Amazon Lex Model Building
API as part of deploy
Code push triggers tests, and automatic build
and deploy across multiple environments
Live
Analytics
‘Live’ Tests - APM
• Alarms
• Cloudwatch metrics
and Dashboards
• Centralized Logging
• Tracing
Gillian Armstrong @virtualgill
If your chatbot stopped working, would you
know? Don’t just wait for user complaints!
Know what isn’t working and fix it, and keep
adding more of what is!
Monitor, no, seriously, monitor
Gillian Armstrong @virtualgill
Conversational Analytics are vital
Work out what metrics you need to track to
know how your chatbot is performing.
Know what isn’t working and fix it, and keep
adding more of what is!
Gillian Armstrong @virtualgill
Getting Feedback is vital
You won’t get it right first time – listen to
your users.
Know what isn’t working and fix it, and
keep adding more of what is!
Gillian Armstrong @virtualgill
Change
Fast
Learn
Fast
lets us
Being able to
Gillian Armstrong @virtualgill
Conversational UI is about
Listening to what the user
wants to do…
CHANGE
FAST
LEARN
FAST
…and that’s the secret to a great chatbot!
Gillian Armstrong @virtualgill
Got questions?
Let’s chat!
@virtualgill
KEY
TAKEAW
AYS • Model your Chatbot UI and Architecture
based on observing Humans and real
Conversation.
Break out of old mindsets!
• New tech still needs the good
engineering practices you already know
Gillian Armstrong @virtualgill
Appendix – Additional Information on Conversational Design
Starting out:
https://hackernoon.com/new-to-conversational-design-start-here-7f2f3a1b81bb
Error Handling in Chatbot Series:
Part 1 — Voice Recognition Errors: The one where we end up shouting at a computer
https://chatbotsmagazine.com/difficult-conversations-1-voice-recognition-error-handling-74d93056ddce
Part 2 – Conversational Errors: The one where it gets really interesting
https://chatbotsmagazine.com/helping-your-baby-bot-learn-to-chat-like-a-grown-up-bot-99f5170f1c55
Part 3 – Technical Faults: The one we want to pretend will never happen (or ‘Help! My chatbot has fallen over
and can’t get up’)
https://chatbotsmagazine.com/good-ux-when-your-chatbot-is-having-a-very-bad-day-e4f22885d7fb
You can find my other Blogs at https://medium.com/@virtualgill
Come talk to me on Twitter – I hang out there a lot @virtualgill
For my other talks and ways to get in contact with me head to http://virtualgill.io
Watch the video with slide
synchronization on InfoQ.com!
https://www.infoq.com/presentations/
serverless-chatbots

More Related Content

Similar to Serverless and Chatbots: A Match Made in the Cloud

Cultivating Lean Startup Teams When People Don't Know What Lean Is
Cultivating Lean Startup Teams When People Don't Know What Lean IsCultivating Lean Startup Teams When People Don't Know What Lean Is
Cultivating Lean Startup Teams When People Don't Know What Lean IsEmily Holmes
 
Introduction to Alexa Skill Building
Introduction to Alexa Skill BuildingIntroduction to Alexa Skill Building
Introduction to Alexa Skill BuildingChallTell
 
Build an Application from Idea to Release
Build an Application from Idea to ReleaseBuild an Application from Idea to Release
Build an Application from Idea to Releaseideatoipo
 
Designers shouldn't code - The wrong answer to the right question
Designers shouldn't code - The wrong answer to the right questionDesigners shouldn't code - The wrong answer to the right question
Designers shouldn't code - The wrong answer to the right questionMathias Hellquist
 
Cloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptxCloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptxSahithiGurlinka
 
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting TimeLet's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting TimeExcella
 
Build Mandarin AI Conversational Agent with Rasa
Build Mandarin AI Conversational Agent with RasaBuild Mandarin AI Conversational Agent with Rasa
Build Mandarin AI Conversational Agent with RasaHao-Yuan Chen
 
27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf
27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf
27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdfEuropean Innovation Academy
 
Inclusive design principles for WordPress
Inclusive design principles for WordPressInclusive design principles for WordPress
Inclusive design principles for WordPressJoe Ortenzi
 
Build chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsBuild chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsThe Incredible Automation Day
 
Designing Voice-Driven Game Experiences | Dave Isbitski
Designing Voice-Driven Game Experiences | Dave IsbitskiDesigning Voice-Driven Game Experiences | Dave Isbitski
Designing Voice-Driven Game Experiences | Dave IsbitskiJessica Tams
 
Get started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google CloudGet started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google CloudDaniel Zivkovic
 
Focus fast bigd15_roger_belveal_2015-09-19
Focus fast bigd15_roger_belveal_2015-09-19Focus fast bigd15_roger_belveal_2015-09-19
Focus fast bigd15_roger_belveal_2015-09-19Roger Belveal
 
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Developmentjazoon13
 
Pixel Perfect Precision
Pixel Perfect PrecisionPixel Perfect Precision
Pixel Perfect PrecisionAlberto R
 
aOS Moscow - E1 - Bots and language understanding - Rick van Rousselt
aOS Moscow - E1 - Bots and language understanding - Rick van RousseltaOS Moscow - E1 - Bots and language understanding - Rick van Rousselt
aOS Moscow - E1 - Bots and language understanding - Rick van RousseltaOS Community
 

Similar to Serverless and Chatbots: A Match Made in the Cloud (20)

Cultivating Lean Startup Teams When People Don't Know What Lean Is
Cultivating Lean Startup Teams When People Don't Know What Lean IsCultivating Lean Startup Teams When People Don't Know What Lean Is
Cultivating Lean Startup Teams When People Don't Know What Lean Is
 
Introduction to Alexa Skill Building
Introduction to Alexa Skill BuildingIntroduction to Alexa Skill Building
Introduction to Alexa Skill Building
 
Build an Application from Idea to Release
Build an Application from Idea to ReleaseBuild an Application from Idea to Release
Build an Application from Idea to Release
 
Designers shouldn't code - The wrong answer to the right question
Designers shouldn't code - The wrong answer to the right questionDesigners shouldn't code - The wrong answer to the right question
Designers shouldn't code - The wrong answer to the right question
 
50 Tech Tips Webinar Slides
50 Tech Tips Webinar Slides50 Tech Tips Webinar Slides
50 Tech Tips Webinar Slides
 
Cloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptxCloud AI GenAI Overview.pptx
Cloud AI GenAI Overview.pptx
 
Internationalization & Localization Process
Internationalization & Localization ProcessInternationalization & Localization Process
Internationalization & Localization Process
 
UX & UI Design 101
UX & UI Design 101UX & UI Design 101
UX & UI Design 101
 
Let's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting TimeLet's Sharpen Your Agile Ax, It's Story Splitting Time
Let's Sharpen Your Agile Ax, It's Story Splitting Time
 
Sharpen your Agile Axe by Brian Sjorber
Sharpen your Agile Axe by Brian SjorberSharpen your Agile Axe by Brian Sjorber
Sharpen your Agile Axe by Brian Sjorber
 
Build Mandarin AI Conversational Agent with Rasa
Build Mandarin AI Conversational Agent with RasaBuild Mandarin AI Conversational Agent with Rasa
Build Mandarin AI Conversational Agent with Rasa
 
27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf
27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf
27_07_Landing Pages_Gilles de Clerck_EIA Porto 2022.pdf
 
Inclusive design principles for WordPress
Inclusive design principles for WordPressInclusive design principles for WordPress
Inclusive design principles for WordPress
 
Build chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functionsBuild chatbots with api.ai and Google cloud functions
Build chatbots with api.ai and Google cloud functions
 
Designing Voice-Driven Game Experiences | Dave Isbitski
Designing Voice-Driven Game Experiences | Dave IsbitskiDesigning Voice-Driven Game Experiences | Dave Isbitski
Designing Voice-Driven Game Experiences | Dave Isbitski
 
Get started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google CloudGet started with Dialogflow & Contact Center AI on Google Cloud
Get started with Dialogflow & Contact Center AI on Google Cloud
 
Focus fast bigd15_roger_belveal_2015-09-19
Focus fast bigd15_roger_belveal_2015-09-19Focus fast bigd15_roger_belveal_2015-09-19
Focus fast bigd15_roger_belveal_2015-09-19
 
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software DevelopmentJAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
JAZOON'13 - Sven Peters - How to do Kick-Ass Software Development
 
Pixel Perfect Precision
Pixel Perfect PrecisionPixel Perfect Precision
Pixel Perfect Precision
 
aOS Moscow - E1 - Bots and language understanding - Rick van Rousselt
aOS Moscow - E1 - Bots and language understanding - Rick van RousseltaOS Moscow - E1 - Bots and language understanding - Rick van Rousselt
aOS Moscow - E1 - Bots and language understanding - Rick van Rousselt
 

More from C4Media

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoC4Media
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileC4Media
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020C4Media
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsC4Media
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No KeeperC4Media
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like OwnersC4Media
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaC4Media
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideC4Media
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDC4Media
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine LearningC4Media
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at SpeedC4Media
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsC4Media
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsC4Media
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerC4Media
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleC4Media
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeC4Media
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereC4Media
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing ForC4Media
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data EngineeringC4Media
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreC4Media
 

More from C4Media (20)

Streaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live VideoStreaming a Million Likes/Second: Real-Time Interactions on Live Video
Streaming a Million Likes/Second: Real-Time Interactions on Live Video
 
Next Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy MobileNext Generation Client APIs in Envoy Mobile
Next Generation Client APIs in Envoy Mobile
 
Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020Software Teams and Teamwork Trends Report Q1 2020
Software Teams and Teamwork Trends Report Q1 2020
 
Understand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java ApplicationsUnderstand the Trade-offs Using Compilers for Java Applications
Understand the Trade-offs Using Compilers for Java Applications
 
Kafka Needs No Keeper
Kafka Needs No KeeperKafka Needs No Keeper
Kafka Needs No Keeper
 
High Performing Teams Act Like Owners
High Performing Teams Act Like OwnersHigh Performing Teams Act Like Owners
High Performing Teams Act Like Owners
 
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to JavaDoes Java Need Inline Types? What Project Valhalla Can Bring to Java
Does Java Need Inline Types? What Project Valhalla Can Bring to Java
 
Service Meshes- The Ultimate Guide
Service Meshes- The Ultimate GuideService Meshes- The Ultimate Guide
Service Meshes- The Ultimate Guide
 
Shifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CDShifting Left with Cloud Native CI/CD
Shifting Left with Cloud Native CI/CD
 
CI/CD for Machine Learning
CI/CD for Machine LearningCI/CD for Machine Learning
CI/CD for Machine Learning
 
Fault Tolerance at Speed
Fault Tolerance at SpeedFault Tolerance at Speed
Fault Tolerance at Speed
 
Architectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep SystemsArchitectures That Scale Deep - Regaining Control in Deep Systems
Architectures That Scale Deep - Regaining Control in Deep Systems
 
ML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.jsML in the Browser: Interactive Experiences with Tensorflow.js
ML in the Browser: Interactive Experiences with Tensorflow.js
 
Build Your Own WebAssembly Compiler
Build Your Own WebAssembly CompilerBuild Your Own WebAssembly Compiler
Build Your Own WebAssembly Compiler
 
User & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix ScaleUser & Device Identity for Microservices @ Netflix Scale
User & Device Identity for Microservices @ Netflix Scale
 
Scaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's EdgeScaling Patterns for Netflix's Edge
Scaling Patterns for Netflix's Edge
 
Make Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home EverywhereMake Your Electron App Feel at Home Everywhere
Make Your Electron App Feel at Home Everywhere
 
The Talk You've Been Await-ing For
The Talk You've Been Await-ing ForThe Talk You've Been Await-ing For
The Talk You've Been Await-ing For
 
Future of Data Engineering
Future of Data EngineeringFuture of Data Engineering
Future of Data Engineering
 
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and MoreAutomated Testing for Terraform, Docker, Packer, Kubernetes, and More
Automated Testing for Terraform, Docker, Packer, Kubernetes, and More
 

Recently uploaded

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 

Recently uploaded (20)

Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 

Serverless and Chatbots: A Match Made in the Cloud

  • 1. Chatbots and Serverless: A match made in the Cloud Gillian Armstrong @virtualgill QConSF
  • 2. InfoQ.com: News & Community Site • Over 1,000,000 software developers, architects and CTOs read the site world- wide every month • 250,000 senior developers subscribe to our weekly newsletter • Published in 4 languages (English, Chinese, Japanese and Brazilian Portuguese) • Post content from our QCon conferences • 2 dedicated podcast channels: The InfoQ Podcast, with a focus on Architecture and The Engineering Culture Podcast, with a focus on building • 96 deep dives on innovative topics packed as downloadable emags and minibooks • Over 40 new content items per week Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ serverless-chatbots
  • 3. Purpose of QCon - to empower software development by facilitating the spread of knowledge and innovation Strategy - practitioner-driven conference designed for YOU: influencers of change and innovation in your teams - speakers and topics driving the evolution and innovation - connecting and catalyzing the influencers and innovators Highlights - attended by more than 12,000 delegates since 2007 - held in 9 cities worldwide Presented at QCon San Francisco www.qconsf.com
  • 4.
  • 6. 2016 2020 7% SOURCE: US Census, Gartner, Edison Research, Voicebot.ai 75% Smart Speaker US Household Ownership Forecast
  • 7. 2016 2020 7% SOURCE: US Census, Gartner, Edison Research, Voicebot.ai 75% Smart Speaker US Household Ownership Forecast The world is changing fast
  • 8. So we need to be able to learn fastThe world is changing fast Gillian Armstrong @virtualgill
  • 9. Change Fast Learn Fast use what we learn to so we can keep on learning Gillian Armstrong @virtualgill
  • 10. Change Fast Learn Fast Both Chatbots and Serverless let us and Gillian Armstrong @virtualgill
  • 11. What is a Chatbot??? What do you mean byServerless??? ??? ??? ??? Gillian Armstrong @virtualgill
  • 14. A Serverless solution is one that costs you nothing to run if nobody is using it (excluding data storage cost) For the purposes of this presentation... - Paul Johnston Gillian Armstrong @virtualgill
  • 15. For the purposes of this presentation... A Chatbot is something you can interact with conversationally using natural language - me Gillian Armstrong @virtualgill
  • 17. CHANNEL/DEVICE NLU NLP INTENTS ENTITIES I n t e r a c t i o n M o d e l Fulfillment MachineLearning ASR TTS CUX/VUX A very quick overview of a Chatbot using Conversational AI Gillian Armstrong @virtualgill
  • 18. CHANNEL/DEVICE NLU NLP INTENTS I n t e r a c t i o n M o d e l Fulfillment MachineLearning ASR TTS CUX/VUX Utterance (“what the user said”) Automatic Speech Recognition (Speech to Text) Text to Speech Mapping of Utterance to Intent (“what the user meant”) Extraction of Entities (variables like time, place, number, etc) Oh hey, there’s still UI design Insert cool serverless architecture here Conversational / Voice User Experience (“how we sound and the words we say”) Conversational User Interface ENTITIES Intent maps to Fulfillment (“what we need to do”) Gillian Armstrong @virtualgill
  • 19. CHANNEL/DEVICE NLU NLP INTENTS I n t e r a c t i o n M o d e l Fulfillment MachineLearning ASR TTS CUX/VUX Design it so a Human can understand it Train your Bot to understand Humans Write code to make it do something! 1 2 3 What we need to do… ENTITIES Gillian Armstrong @virtualgill
  • 20. CHANNEL/DEVICE NLU NLP INTENTS I n t e r a c t i o n M o d e l Fulfillment MachineLearning ASR TTS CUX/VUX Design it so a Human can understand it Train your Bot to understand Humans Write code to make it do something! 1 2 3 What we need to do… Often starting point and focus Hardcoded and then panic-written after that well-received demo Forgotten ENTITIES Gillian Armstrong @virtualgill
  • 21. Design it so a Human can understand it 1 Gillian Armstrong @virtualgill
  • 22. In a chatbot, Conversation is the Interface Gillian Armstrong @virtualgill
  • 23. Source: http://hosanna1.com/ Not a CSS and HTML problem! Design Matters! Gillian Armstrong @virtualgill
  • 24. Up to now we’ve kept designing based on what came before Gillian Armstrong @virtualgill
  • 25. We’ve carried the concept of menus and commands into our graphical user interfaces Gillian Armstrong @virtualgill
  • 26. We base our web forms on the paper forms that came before Gillian Armstrong @virtualgill
  • 28. Model your design on a human, not a website People are the original conversational interface Gillian Armstrong @virtualgill
  • 29. When you start with thinking about trying out a design you may discover that a chatbot isn’t even the right thing to build… Gillian Armstrong @virtualgill
  • 30. But assuming it is… Gillian Armstrong @virtualgill
  • 31. Be Clear Be Helpful Be Nice • Proactively offer help • Get people back on track • Repetition is annoying • Repetition is annoying • Take the blame – in a conversation the human is never wrong • Chatbots aren't smarter than a human • Be understanding if people don’t want to talk to you – offer alternatives. 1 minute Conversational Design overview • Keep your personality consistent • Keep answers short and to the point • Set expectations – what can you do • Reflect back key information and confirm before critical actions. Gillian Armstrong @virtualgill
  • 32. The Web is about Telling the user what to do Conversational UI is about Listening to what the user wants to do Gillian Armstrong @virtualgill
  • 33. Train your Bot to understand Humans 2 Gillian Armstrong @virtualgill
  • 34. Amazon Lex Console What the Web Tutorials told me building a chatbot looked like… Gillian Armstrong @virtualgill
  • 35. BOOK MEETING IntentUtterance SAY HELLO GET HELP Fulfillment Gillian Armstrong @virtualgill
  • 36. IntentUtterance As simple providing a set of sample utterances! Book Meeting at <TIME> on <DATE> Set up Appointment Create event on <DATE> Set up Meeting Book me a meeting at <TIME> … Hello Hi there Hey Good Morning … Help What can you do Help me I need help … BOOKMEETINGSAYHELLOGETHELP Gillian Armstrong @virtualgill
  • 37. Amazon Lex Console SET OF INTENTS Represents the functionality the bot has SAMPLE UTTERANCES Examples of what a user might say to trigger this Intent. This is training data - not a regex match. Gillian Armstrong @virtualgill
  • 38. Amazon Lex Console SLOTS (ENTITIES) are defined showing type (place, name, time, custom, etc.) If the user does not supply this data the bot knows to prompt for it. The sample utterances show where to expect the data to be supplied in an utterance Gillian Armstrong @virtualgill
  • 39. FULFILLMENT location defined. Intent and Slot matches will be sent to this lambda or returned directly to client. Amazon Lex Console Gillian Armstrong @virtualgill
  • 40. Amazon Lex Console Publish to make the functionality live to users. Build to create the Interaction Model Gillian Armstrong @virtualgill
  • 41. Amazon Lex Console Built-in Test Console allows you to test directly here after building, but before publishing. Gillian Armstrong @virtualgill
  • 42. Amazon Lex Console Easy to connect your bot to popular channels through console. Gillian Armstrong @virtualgill
  • 43. Amazon Lex Console Chatbot Done…? Gillian Armstrong @virtualgill
  • 44. Sorry, I’m just a baby bot. I’m still learning. Gillian Armstrong @virtualgill
  • 45. Sorry, I’m just a baby bot. I’m still learning. are you? Gillian Armstrong @virtualgill
  • 46. IntentUtterance As simple providing a set of sample utterances! Book Meeting at <TIME> on <DATE> Set up Appointment Create event on <DATE> Set up Meeting Book me a meeting at <TIME> … Hello Hi there Hey Good Morning … Help What can you do Help me I need help … BOOKMEETINGSAYHELLOGETHELP Gillian Armstrong @virtualgill
  • 47. IntentUtterance As complex as providing a set of sample utterances! Book Meeting at <TIME> on <DATE> Set up Appointment Create event on <DATE> Set up Meeting Book me a meeting at <TIME> … Hello Hi there Hey Good Morning … Help What can you do Help me I need help … BOOKMEETINGSAYHELLOGETHELP Model your design on a human Get your sample utterances from your users… you wouldn’t make up other machine learning training data! Gillian Armstrong @virtualgill
  • 48. Track metrics and review conversation to improve your Bot Interaction Model. Learn Fast Sorry, I’m just a baby bot. I’m still learning. Change Fast Gillian Armstrong @virtualgill
  • 49. Look for Vocabulary used Should we add new synonyms Look for the Utterance Structure Should we add new training data Look for Interaction Patterns Can we improve the conversation flow Learn Fast Change Fast Reviewing Conversation Transcripts… Gillian Armstrong @virtualgill
  • 50. Chatbots aren’t magic (although I wish they were) Gillian Armstrong @virtualgill
  • 51. Write code to make it do something! 3 Gillian Armstrong @virtualgill
  • 52. Pop a lambda here – and you’re done! Gillian Armstrong @virtualgill
  • 56.
  • 57. Number of conversations Length of conversations Functionality being used Number of Users What people want us to add Where we are getting it right Where we are getting it wrong Examples of our Conversational Analytics Gillian Armstrong @virtualgill
  • 58. Observability is critical This lets you quickly learn where there might be problems with your system. Gillian Armstrong @virtualgill
  • 60. Lower Cost lets us Change Fast Learn Fast Off-loading Maintenance lets us Gillian Armstrong @virtualgill
  • 61. Instead of custom building and managing your own servers, db, etc… Gillian Armstrong @virtualgill
  • 62. Use standard pieces – that someone else has built and manages - and put them together to get the system you want Gillian Armstrong @virtualgill
  • 64. Lambdas are quick to develop, isolate small pieces of functionality and allow you to scale different parts of the conversation independently. Gillian Armstrong @virtualgill
  • 65. Ensure that everything scales - or at least know your limits. API Lambda functions Amazon DynamoDB Gillian Armstrong @virtualgill
  • 66. Serverless means you don’t pay if no-one talks to your bot… …and lets you scale seamlessly if everyone wants to talk to your bot! Gillian Armstrong @virtualgill
  • 67. Cost Usage No usage, no cost Higher usage, higher cost Gillian Armstrong @virtualgill
  • 68. Cost Usage Watch the free tier… Cost may not be linear Gillian Armstrong @virtualgill
  • 69. Monolith Some notes for those with existing systems Gillian Armstrong @virtualgill
  • 71. Monolith Microservices Function as a Service Gillian Armstrong @virtualgill
  • 72. REWRITE is not a four-letter word Gillian Armstrong @virtualgill
  • 73. Model your design on a human, not a website People are the original conversational interface Gillian Armstrong @virtualgill
  • 74. A good human conversation is synchronous You wait for a response You expect a response immediately Gillian Armstrong @virtualgill
  • 75. A Conversational Architecture needs to - Be fast! - Appear synchronous to the user (there should be a response) This is particularly critical for a voice-based bot Gillian Armstrong @virtualgill
  • 76. Monolith Microservices Function as a Service Gillian Armstrong @virtualgill
  • 77. Do not just lift and shift your microservices into FaaS Gillian Armstrong @virtualgill
  • 78. invoke invoke invoke Combining the time to invoke and the time to ‘spin up’ can hit performance and add complexity to your system. Choose to ‘keep warm’ only as a last resort. Do not end up with a collection of distributed microservices Gillian Armstrong @virtualgill
  • 79. invoke Shhhhhh….. It’s ok to have more than one function in your Function as a Service… Look for where you can pull functionality into reusable libraries instead Gillian Armstrong @virtualgill
  • 80. Having said that… don’t just lift and shift your microservices into FaaS Gillian Armstrong @virtualgill
  • 81. API API API APIs designed for webforms tend to be set up to collect sets of data page by page Gillian Armstrong @virtualgill
  • 82. API A Conversation is non-linear – the user can give partial information, or information that would have been collected later on your webform. Gillian Armstrong @virtualgill
  • 83. REWRITE is not a four-letter word Gillian Armstrong @virtualgill
  • 84. Both Serverless and Chatbots require new ways of thinking about your architecture. Gillian Armstrong @virtualgill
  • 85. CHANGE FAST LEARN FAST We get there iteratively by being able to and Gillian Armstrong @virtualgill
  • 86. CHANGE FAST LEARN FAST Both Chatbots and Serverless let us and Gillian Armstrong @virtualgill
  • 87. CHANGE FAST LEARN FAST Both Chatbots and Serverless let us and but Good Supporting Engineering Practices are needed to do both with confidence and at scale Gillian Armstrong @virtualgill
  • 88. Amazon Lex Console What the Web Tutorials told me building a chatbot looked like… Gillian Armstrong @virtualgill
  • 89. CODE HERE Fulfillment in Code Gillian Armstrong @virtualgill
  • 90. CODE HERE CODE HERE Bot Interaction Model in Code Gillian Armstrong @virtualgill
  • 91. CODE HERE CODE HERE CODE HERE Design in Code Gillian Armstrong @virtualgill
  • 92. CODE HERE CODE HERE CODE HERE CODE HERE CODE HERE CODE HERE CODE HERE Infrastructure in Code Gillian Armstrong @virtualgill
  • 93. CODE HERE EVERYTHING in Code CODE HERE CODE HERE CODE HERE CODE HERE CODE HERE CODE HERE Gillian Armstrong @virtualgill
  • 94. EVERYTHING in Code • Testable • Traceable • Repeatable • Observable Gillian Armstrong @virtualgill
  • 97. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Gillian Armstrong @virtualgill
  • 98. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Local and Pre-Commit Hook Tests • Unit Test • Lambdas • Libraries • Static analysis • Cloud Formation • Code • JSON for API calls Gillian Armstrong @virtualgill
  • 99. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments Gillian Armstrong @virtualgill
  • 100. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments Build Tests • Unit Test • Lambdas • Libraries • Static analysis • Cloud Formation • Code • JSON for API calls Gillian Armstrong @virtualgill
  • 101. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments All tests, builds, deploys and alarms sent to Slack channels to alert developers immediately Gillian Armstrong @virtualgill
  • 102. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments All tests, builds, deploys and alarms sent to Slack channels to alert developers immediately Gillian Armstrong @virtualgill
  • 103. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments AWS CloudFormation Templates Amazon S3 deployment bucket Amazon Lex Model Building Service Botbuilder Lambda function Packaged Fulfillment Lambdas Bot JSON files Gillian Armstrong @virtualgill
  • 104. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments All tests, builds, deploys and alarms sent to Slack channels to alert developers immediately Deploy Tests • Smoke Tests • Component Tests (Lex) Non-Prod Only Gillian Armstrong @virtualgill
  • 105. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments All tests, builds, deploys and alarms sent to Slack channels to alert developers immediately Fully tested new functionality available in minutes Gillian Armstrong @virtualgill
  • 106. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments All tests, builds, deploys and alarms sent to Slack channels to alert developers immediately Live Analytics Fully tested new functionality available in minutes Gillian Armstrong @virtualgill
  • 107. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments All tests, builds, deploys and alarms sent to Slack channels to alert developers immediately Live Analytics ‘Live’ Tests - APM • Alarms • Cloudwatch metrics and Dashboards • Centralized Logging • Tracing Gillian Armstrong @virtualgill
  • 108. Conversation as Code - Amazon Lex Fully Validated and Repeatable Bot Build and Deploy to any AWS Account Everything written in CFN, with JSON for API calls to Amazon Lex Model Building API as part of deploy Code push triggers tests, and automatic build and deploy across multiple environments Live Analytics ‘Live’ Tests - APM • Alarms • Cloudwatch metrics and Dashboards • Centralized Logging • Tracing Gillian Armstrong @virtualgill
  • 109. If your chatbot stopped working, would you know? Don’t just wait for user complaints! Know what isn’t working and fix it, and keep adding more of what is! Monitor, no, seriously, monitor Gillian Armstrong @virtualgill
  • 110. Conversational Analytics are vital Work out what metrics you need to track to know how your chatbot is performing. Know what isn’t working and fix it, and keep adding more of what is! Gillian Armstrong @virtualgill
  • 111. Getting Feedback is vital You won’t get it right first time – listen to your users. Know what isn’t working and fix it, and keep adding more of what is! Gillian Armstrong @virtualgill
  • 112. Change Fast Learn Fast lets us Being able to Gillian Armstrong @virtualgill
  • 113. Conversational UI is about Listening to what the user wants to do… CHANGE FAST LEARN FAST …and that’s the secret to a great chatbot! Gillian Armstrong @virtualgill
  • 114. Got questions? Let’s chat! @virtualgill KEY TAKEAW AYS • Model your Chatbot UI and Architecture based on observing Humans and real Conversation. Break out of old mindsets! • New tech still needs the good engineering practices you already know Gillian Armstrong @virtualgill
  • 115. Appendix – Additional Information on Conversational Design Starting out: https://hackernoon.com/new-to-conversational-design-start-here-7f2f3a1b81bb Error Handling in Chatbot Series: Part 1 — Voice Recognition Errors: The one where we end up shouting at a computer https://chatbotsmagazine.com/difficult-conversations-1-voice-recognition-error-handling-74d93056ddce Part 2 – Conversational Errors: The one where it gets really interesting https://chatbotsmagazine.com/helping-your-baby-bot-learn-to-chat-like-a-grown-up-bot-99f5170f1c55 Part 3 – Technical Faults: The one we want to pretend will never happen (or ‘Help! My chatbot has fallen over and can’t get up’) https://chatbotsmagazine.com/good-ux-when-your-chatbot-is-having-a-very-bad-day-e4f22885d7fb You can find my other Blogs at https://medium.com/@virtualgill Come talk to me on Twitter – I hang out there a lot @virtualgill For my other talks and ways to get in contact with me head to http://virtualgill.io
  • 116. Watch the video with slide synchronization on InfoQ.com! https://www.infoq.com/presentations/ serverless-chatbots