SlideShare a Scribd company logo

Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop

Build a weather bot on Messenger using AWS, Wit.ai and the Serverless Framework.

1 of 62
Download to read offline
SERVERLESS MESSENGER BOT
WORKSHOP
Mikael Puittinen, Chief Technology Officer
Eetu Tuomala, Cloud Application Architect
1
16.11.2016
SC5 BRIEFLY
CLOUD
SOLUTIONS
BUSINESS
APPLICATIONS
DIGITAL
DESIGN
10
YEARS
60+
CUSTOMERS
200+
PROJECTS
HEL
JKL
85
HACKERS
DESIGNERS
~7
MEUR
2016 (FC)
VISIT OUR WEB SITE FOR MORE INFO: HTTPS://SC5.IO
INTELLIGENT
APPLICATIONS
RECOGNIZED SERVERLESS CONTRIBUTOR
PARTNERSHIPS CONTRIBUTIONS
§ Author of sc5-serverless-boilerplate
§ Author of serverless-authentication-boilerplate
§ Author of serverless-messenger-boilerplate
§ Author of serverless-mocha-plugin
§ Active serverless workshop & event organizer
(e.g. bot workshop at ServerlessConf London)
§ Founder and main organizer of Serverless
Finland (serverless.fi) community (175 members)
AWS Consulting Partner with trained and
certified architects & developers
Official Serverless Framework partner
(1 of 3 worldwide)
INTRODUCTION / PRE-REQUISITES
§ Introduction to AWS & Serverless Framework :
http://serverless.fi/docs/aws-serverless-intro.pdf
§ Technical pre-requisites for workshop:
http://serverless.fi/docs/workshop-preps/
§ This presentation:
http://serverless.fi/docs/messenger-workshop.pdf
INTRODUCTION TO
MESSENGER BOT COMPONENTS
5
MESSENGER BOT ARCHITECTURE
RECEIVE
SEND
CONTEXT
BACKEND(S)
NATURAL LANGUAGE
PROCESSING
CONVERSATION
FLOW
Ad

Recommended

Serverless Finland Meetup 10.5.2015: Serverless Framework and Serverless Arch...
Serverless Finland Meetup 10.5.2015: Serverless Framework and Serverless Arch...Serverless Finland Meetup 10.5.2015: Serverless Framework and Serverless Arch...
Serverless Finland Meetup 10.5.2015: Serverless Framework and Serverless Arch...Mikael Puittinen
 
Helsinki Serverless Meetup 15.6.2016 : AWS Services
Helsinki Serverless Meetup 15.6.2016 : AWS ServicesHelsinki Serverless Meetup 15.6.2016 : AWS Services
Helsinki Serverless Meetup 15.6.2016 : AWS ServicesMikael Puittinen
 
Connect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppConnect the Impossible with Azure Logic App
Connect the Impossible with Azure Logic AppFrançois Boucher
 
Inside Logic Apps
Inside Logic AppsInside Logic Apps
Inside Logic AppsBizTalk360
 
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...
Azure App Services для создания бэкенда мобильных приложений. Parse Open Sour...UA Mobile
 
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...
O365Con18 - Create an Immersive Experience with Office365 Data and Mixed Real...NCCOMMS
 
Serverless computing con Azure Functions
Serverless computing con Azure FunctionsServerless computing con Azure Functions
Serverless computing con Azure FunctionsHernan Guzman
 
Azure app service to create web and mobile apps
Azure app service to create web and mobile appsAzure app service to create web and mobile apps
Azure app service to create web and mobile appsKen Cenerelli
 

More Related Content

What's hot

ESPC15 - Introduction to AngularJS in an Office 365 context
ESPC15 - Introduction to AngularJS in an Office 365 contextESPC15 - Introduction to AngularJS in an Office 365 context
ESPC15 - Introduction to AngularJS in an Office 365 contextSébastien Levert
 
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...Sébastien Levert
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...NCCOMMS
 
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsServerlessConf
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Alexander Feschenko
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app serviceNabeel Khan
 
Office Web Apps Server 2013
Office Web Apps Server 2013Office Web Apps Server 2013
Office Web Apps Server 2013SPC Adriatics
 
O365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshareO365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshareatwork
 
Azure App Service at Let's Dev This
Azure App Service at Let's Dev ThisAzure App Service at Let's Dev This
Azure App Service at Let's Dev ThisGuy Barrette
 
Azure App Service
Azure App ServiceAzure App Service
Azure App ServiceBizTalk360
 
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...European Collaboration Summit
 
SharePoint Office Web Apps 2013 presentation
SharePoint Office Web Apps 2013 presentationSharePoint Office Web Apps 2013 presentation
SharePoint Office Web Apps 2013 presentationjtbarrera
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API AppsBizTalk360
 
Extending Piwik At R7.com
Extending Piwik At R7.comExtending Piwik At R7.com
Extending Piwik At R7.comLeo Lorieri
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless ArchitectureCodePolitan
 
Brewing Beer with Windows Azure - NDC2013
Brewing Beer with Windows Azure - NDC2013Brewing Beer with Windows Azure - NDC2013
Brewing Beer with Windows Azure - NDC2013Maarten Balliauw
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development Chris O'Connor
 
Workflow Automation with Logic Apps
Workflow Automation with Logic AppsWorkflow Automation with Logic Apps
Workflow Automation with Logic AppsBizTalk360
 

What's hot (20)

ESPC15 - Introduction to AngularJS in an Office 365 context
ESPC15 - Introduction to AngularJS in an Office 365 contextESPC15 - Introduction to AngularJS in an Office 365 context
ESPC15 - Introduction to AngularJS in an Office 365 context
 
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
SharePoint Saturday Ottawa 2015 - Office 365 and PowerShell - A match made in...
 
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
O365Con18 - PowerApps build custom forms for SharePoint with Azure Maps - Bra...
 
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure FunctionsChris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
Chris Anderson and Yochay Kiriaty - Serverless Patterns with Azure Functions
 
Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.Azure App Service Architecture. Web Apps.
Azure App Service Architecture. Web Apps.
 
Continuous delivery with azure app service
Continuous delivery with azure app serviceContinuous delivery with azure app service
Continuous delivery with azure app service
 
Office Web Apps Server 2013
Office Web Apps Server 2013Office Web Apps Server 2013
Office Web Apps Server 2013
 
Azure app services API apps
Azure app services API appsAzure app services API apps
Azure app services API apps
 
O365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshareO365 saturday: How to (remote) control office 365 with windows azure-slideshare
O365 saturday: How to (remote) control office 365 with windows azure-slideshare
 
Azure App Service at Let's Dev This
Azure App Service at Let's Dev ThisAzure App Service at Let's Dev This
Azure App Service at Let's Dev This
 
Azure App Service
Azure App ServiceAzure App Service
Azure App Service
 
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
ECS19 - Damir Dobric - Designing and Operating modern applications with Micro...
 
SharePoint Office Web Apps 2013 presentation
SharePoint Office Web Apps 2013 presentationSharePoint Office Web Apps 2013 presentation
SharePoint Office Web Apps 2013 presentation
 
[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally[Roine] Serverless: Don't Take It Literally
[Roine] Serverless: Don't Take It Literally
 
Connector API Apps
Connector API AppsConnector API Apps
Connector API Apps
 
Extending Piwik At R7.com
Extending Piwik At R7.comExtending Piwik At R7.com
Extending Piwik At R7.com
 
Serverless Architecture
Serverless ArchitectureServerless Architecture
Serverless Architecture
 
Brewing Beer with Windows Azure - NDC2013
Brewing Beer with Windows Azure - NDC2013Brewing Beer with Windows Azure - NDC2013
Brewing Beer with Windows Azure - NDC2013
 
2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development 2013 - Back to the Future with Client/Server Development
2013 - Back to the Future with Client/Server Development
 
Workflow Automation with Logic Apps
Workflow Automation with Logic AppsWorkflow Automation with Logic Apps
Workflow Automation with Logic Apps
 

Similar to Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop

Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien
 
European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...Sébastien Levert
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCisco DevNet
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberKMS Technology
 
AI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You TypedAI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You TypedMarvin Heng
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Okko Oulasvirta
 
Mobile for SharePoint with Windows Phone
Mobile for SharePoint with Windows PhoneMobile for SharePoint with Windows Phone
Mobile for SharePoint with Windows PhoneEdgewater
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco DevNet
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynotegoodfriday
 
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...Comunidade Portuguesa de SharePoiint
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to AppsGilles Pommier
 
GAB2017 - Azure function to build serverless SharePoint apps
GAB2017 - Azure function to build serverless SharePoint appsGAB2017 - Azure function to build serverless SharePoint apps
GAB2017 - Azure function to build serverless SharePoint appsRiwut Libinuko
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Cisco DevNet
 
Best Practices with WSO2 Developer Studio
Best Practices with WSO2 Developer Studio Best Practices with WSO2 Developer Studio
Best Practices with WSO2 Developer Studio WSO2
 
Firefox os-introduction
Firefox os-introductionFirefox os-introduction
Firefox os-introductionzsoltlengyelit
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsShailen Sukul
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynotegoodfriday
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Jonas Follesø
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceTechWell
 

Similar to Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop (20)

Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 appsChris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
Chris O'Brien - Comparing SharePoint add-ins (apps) with Office 365 apps
 
European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...European SharePoint Conference 2018 - Build an intelligent application by con...
European SharePoint Conference 2018 - Build an intelligent application by con...
 
Coding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using SparkCoding 102 REST API Basics Using Spark
Coding 102 REST API Basics Using Spark
 
Behavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using CucumberBehavior Driven Development and Automation Testing Using Cucumber
Behavior Driven Development and Automation Testing Using Cucumber
 
AI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You TypedAI: Mobile Apps That Understands Your Intention When You Typed
AI: Mobile Apps That Understands Your Intention When You Typed
 
Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases Finland Azure User Group #8 DevOps Mobile Client Releases
Finland Azure User Group #8 DevOps Mobile Client Releases
 
Mobile for SharePoint with Windows Phone
Mobile for SharePoint with Windows PhoneMobile for SharePoint with Windows Phone
Mobile for SharePoint with Windows Phone
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API Workshop
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynote
 
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
SPugPt Meeting 35: Manage govern and drive adoption of share point online wit...
 
2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps2014 SharePoint Saturday Melbourne Apps or not to Apps
2014 SharePoint Saturday Melbourne Apps or not to Apps
 
GAB2017 - Azure function to build serverless SharePoint apps
GAB2017 - Azure function to build serverless SharePoint appsGAB2017 - Azure function to build serverless SharePoint apps
GAB2017 - Azure function to build serverless SharePoint apps
 
Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610Webex APIs for Administrators - CL20B - DEVNET-2610
Webex APIs for Administrators - CL20B - DEVNET-2610
 
Best Practices with WSO2 Developer Studio
Best Practices with WSO2 Developer Studio Best Practices with WSO2 Developer Studio
Best Practices with WSO2 Developer Studio
 
Firefox os-introduction
Firefox os-introductionFirefox os-introduction
Firefox os-introduction
 
SharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning ModelsSharePoint 2013 App Provisioning Models
SharePoint 2013 App Provisioning Models
 
Day One Keynote
Day One KeynoteDay One Keynote
Day One Keynote
 
Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008Silverlight 2 for Developers - TechEd New Zealand 2008
Silverlight 2 for Developers - TechEd New Zealand 2008
 
Windows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile WorkforceWindows Azure: Connecting the Dots for a Mobile Workforce
Windows Azure: Connecting the Dots for a Mobile Workforce
 
Con3036 soaring-through-the-clouds-oow2016-160920214845
Con3036 soaring-through-the-clouds-oow2016-160920214845Con3036 soaring-through-the-clouds-oow2016-160920214845
Con3036 soaring-through-the-clouds-oow2016-160920214845
 

Recently uploaded

P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetMatthewTHawley
 
Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxmavinoikein
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!Anthony Dahanne
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfssuser82c38d
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsssuser82c38d
 
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...ISPMAIndia
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!ISPMAIndia
 
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...emili denli
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfssuser82c38d
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Asher Sterkin
 
SPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementSPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementISPMAIndia
 
Self scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsSelf scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsBram Vogelaar
 
Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Flexsin
 
OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20Shane Coughlan
 
sql ppt for students who preparing for sql
sql ppt for students who preparing for sqlsql ppt for students who preparing for sql
sql ppt for students who preparing for sqlbharatjanadharwarud
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...ISPMAIndia
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...confluent
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriISPMAIndia
 
App Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxApp Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxPoojitha B
 

Recently uploaded (20)

P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 Smartsheet
 
Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptx
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdf
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp students
 
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!
 
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdf
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024
 
SPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product ManagementSPM 2024 – Overview of and benefits of AI in Product Management
SPM 2024 – Overview of and benefits of AI in Product Management
 
Self scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloadsSelf scaling Multi cloud nomad workloads
Self scaling Multi cloud nomad workloads
 
Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...
 
OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20
 
sql ppt for students who preparing for sql
sql ppt for students who preparing for sqlsql ppt for students who preparing for sql
sql ppt for students who preparing for sql
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
 
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
Industry 4.0: Building the Unified Namespace with Confluent, HiveMQ and Spark...
 
AI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit BendigiriAI Product Management by Abhijit Bendigiri
AI Product Management by Abhijit Bendigiri
 
eLearning Content Development Company Code and Pixels.pdf
eLearning Content Development Company Code and Pixels.pdfeLearning Content Development Company Code and Pixels.pdf
eLearning Content Development Company Code and Pixels.pdf
 
App Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptxApp Builder - Hierarchical Data Apps.pptx
App Builder - Hierarchical Data Apps.pptx
 

Serverless Finland Meetup 16.11.2016: Messenger Bot Workshop

  • 1. SERVERLESS MESSENGER BOT WORKSHOP Mikael Puittinen, Chief Technology Officer Eetu Tuomala, Cloud Application Architect 1 16.11.2016
  • 3. RECOGNIZED SERVERLESS CONTRIBUTOR PARTNERSHIPS CONTRIBUTIONS § Author of sc5-serverless-boilerplate § Author of serverless-authentication-boilerplate § Author of serverless-messenger-boilerplate § Author of serverless-mocha-plugin § Active serverless workshop & event organizer (e.g. bot workshop at ServerlessConf London) § Founder and main organizer of Serverless Finland (serverless.fi) community (175 members) AWS Consulting Partner with trained and certified architects & developers Official Serverless Framework partner (1 of 3 worldwide)
  • 4. INTRODUCTION / PRE-REQUISITES § Introduction to AWS & Serverless Framework : http://serverless.fi/docs/aws-serverless-intro.pdf § Technical pre-requisites for workshop: http://serverless.fi/docs/workshop-preps/ § This presentation: http://serverless.fi/docs/messenger-workshop.pdf
  • 8. Messenger Platform Beta Launched April 2016 Over 1Bn monthly users Over 33k bots
  • 10. RICH UI ELEMENTS: BUTTONS
  • 11. RICH UI ELEMENTS: CAROUSEL
  • 12. RICH UI ELEMENTS: WEB VIEWS
  • 14. MESSENGER BOT SETUP QUICK GUIDE 1. Create a Facebook page 2. Register a Facebook application 3. Create an endpoint for your bot and hook it to the Facebook app 4. Listen to messages from Messenger 5. Post back responses to the Messenger Platform 6. Get your Facebook application approved to reach the public
  • 15. Messenger Platform API documentation available at: https://developers.facebook.com/docs/messenger-platform/
  • 17. CONVERSATION WORKFLOW (DETERMINISTIC) ”I want a coffee” ”Small or Large?” ”Small” ”Large” Serve small coffee Serve large coffee ”I don’t know””You must specify a size ”Actually, can I have tea instead?”
  • 18. WIT.AI APPROACH § Stories to define ”rules”/”heuristics” for the conversation § Context to define current state => No need for hard coded flows. A combination of stories with rules based on context allow to define complex converstations
  • 19. CONTEXTS ”I want a coffee” ”I want a large coffee” { ”user_id”: 123435, ”name”: ”John Smith”, ”intent”: ”purchase”, ”order”: { ”type”: ”coffee” ”qty”: 1 } } { ”user_id”: 123435, ”name”: ”John Smith”, ”intent”: ”purchase”, ”order”: { ”type”: ”coffee” ”size”: ”large” ”qty”: 1 } }
  • 20. NATURAL LANGUAGE PROCESSING ”How is the weather tomorrow?” { ”user_id”: 123435, ”name”: ”John Smith”, ”intent”: ”weather”, ”date”: ”2016-10-27T08:11:42.222Z” } ”What’s the weather in London?” { ”user_id”: 123435, ”name”: ”John Smith”, ”intent: ”weather”, ”location”: ”London" }
  • 21. SAMPLE WIT.AI CONVERSATION (1) REQUEST RESPONSE { "type": "merge", "entities": { "location": [{ "body": "Brussels", "value": { "type": "value", "value": "Brussels", "suggested": true}, "start": 11, "end": 19, "entity": "location"} ] }, "confidence": 1 } What’s the weather in Brussels?
  • 22. SAMPLE WIT.AI CONVERSATION (2) REQUEST RESPONSE { “type”: “action”, “action”: “fetch-forecast” } { ”loc”: ”Brussels” }
  • 23. SAMPLE WIT.AI CONVERSATION (3) REQUEST RESPONSE { “type”: “msg”, “msg”: “It’s gonna be sunny in Brussels” } { ”loc”: ”Brussels”, ”forecast”: ”Sunny” }
  • 24. The node-wit module provides higher level method runActions() that hides the logic of iterating the contexts with Wit.ai.
  • 25. Wit.ai HTTP API documentation available at: https://wit.ai/docs/http Node.js SDK available at https://github.com/wit-ai/node-wit
  • 27. serverless-messenger-boilerplate and its documentation available at https://github.com/SC5/serverless-messenger-boilerplate
  • 28. BOILERPLATE ARCHITECTURE Messenger Bot Service 3rd Party Svcs facebookBot fbMessengerTopic witAiTopic witAiHandlersessions
  • 29. BOILERPLATE STRUCTURE example.env Template for .env (Facebook / Wit.ai secrets) <= COPY TO .env facebook-bot/ facebookBot function fb-messenger.js Facebook Messenger interop handler.js Function entrypoint lib/ Common libraries used by both functions messageQueue.js Library for reading / publishing to SNS session.js Library for reading / updating user session (DynamoDB) package.json ADD NODE MODULES REQUIRED BY YOUR BOT HERE serverless.yml Service configuration (functions, endpoints, resources) test/ Serverless-mocha-plugin tests facebookBot.js Tests for facebookBot function witAiHandler.js Tests for witAiHandler function webpack.config Configuration for Webpack deployment (serverless-webpack plugin) wit-ai/ witAiHandler function handler.js Entrypoint for function my-wit-actions.js Your bot logic (Wit.ai actions) <= IMPLEMENT YOUR BOT LOGIC HERE wit-ai.js Bot logic built interop on Wit.ai
  • 30. .ENV FILE (FROM EXAMPLE.ENV) FACEBOOK_BOT_VERIFY_TOKEN User defined verification token for the Facebook App FACEBOOK_BOT_PAGE_ACCESS_TOKEN Facebook-generated access token for the page WIT_AI_TOKEN API token for Wit.ai FACEBOOK_ID_FOR_TESTS Facebook ID used to post messages in tests. Available from the sessions table SERVERLESS_PROJECT Service name (keep in sync with service name in serverless.yml)
  • 31. DECOUPLING WITH SNS § Lambda SNS subscriptions: see serverless.yml § Posting and decoding messages done with messageQueue.js § Sample endpoint at facebookBot/handler.js § In production environments, SNS could be strengthened e.g. with SQS to guarantee delivery
  • 32. LOCAL DEVELOPMENT AND TESTING (SERVERLESS-MOCHA-PLUGIN) § serverless-mocha-plugin included in boilerplate with predefined tests for facebookBot and witAiHandler functions in the test/ directory § Run all tests : sls invoke test § Run tests for facebookBot : sls invoke test –f facebookBot § Run tests for witAiHandler: sls invoke test –f witAiHandler § (Create new tests with sls create test –f functionName) § Comment out line that sets process.env.SILENT in test/*.js if you want messages to be sent during testing
  • 33. OPTIMIZED DEPLOYMENT (SERVERLESS-WEBPACK) § serverless-webpack plugin included to streamline deployment package and accelerate cold start of Lambda functions § Pre-configured in webpack.config
  • 36. 1. CREATE SERVERLESS PROJECT > sls install -u https://github.com/SC5/serverless-messenger-boilerplate > mv serverless-messenger-boilerplate weather-bot § Change service name to e.g. “weather-bot” in serverless.yml, then install node modules and copy example.env to .env > npm install > cp example.env .env § Generate a random verification token to VERIFY_TOKEN in .env § Deploy the service and memorize the URL > sls deploy
  • 37. SETUP FACEBOOK PAGE AND APPLICATION
  • 38. CREATE A FACEBOOK PAGE § Go to http://facebook.com/pages/create § Create new page § Skip all following steps
  • 39. CREATE FACEBOOK APPLICATION § Go to https://developers.facebook.com/quickstarts/?platform=web § Click ”Skip and Create App ID” § Fill in info § Create app ID
  • 40. SETUP MESSENGER TOKEN § ”Get Started” for Messenger § Generate a token for your page § Copy token to .env (FACEBOOK_BOT_PAGE_ACCES S_TOKEN) § Save changes and deploy your service > sls deploy
  • 41. SETUP MESSENGER WEBHOOK § Initiate ”Setup Webhooks” § Enter the endpoint URL that you got during deployment § Enter your verify token from .env (FACEBOOK_VERIFY_TOKEN) § Verify and Save
  • 42. SUBSCRIBE THE WEBHOOK TO THE FACEBOOK PAGE 1. Under ”Webhooks”, select your page and subscribe
  • 43. TRY IT § Send message to your Facebook page
  • 44. FACEBOOK APPLICATION ACCESS Access to unapproved applications is limited to developers only. If you want to give access to other users, you should provide ”Developer” / ”Testers” roles to them from the ”Roles” panel (accessible from the left sidebar)
  • 46. REGISTER TO OPENWEATHERMAP 1. Go to https://openweathermap.org/appid 2. Sign up 3. Copy API key and set it to WEATHER_API_TOKEN in .env
  • 48. REGISTER + CREATE WIT.AI APP § Go to https://wit.ai § Register (if not already done) § Create a new App
  • 49. CONNECT THE ENDPOINT WITH WIT.AI § Go to Settings § Copy the Server Access Token ID to .env (WIT_AI_TOKEN) § Deploy your service > sls deploy
  • 50. LET THE BOT INTRODUCE ITSELF § Create a new story § Add user input and intent § Add a response with ”Bot Sends” § Remember to save the story
  • 52. ADD LOGIC TO THE STORY § Add a new story § Type in your user input § Add entity intent with value weather § Select the location and add new entity wit/location § Select the date and add new entity wit/datetime § Add action getWeather with ”Bot Executes” § Set context key location && datetime && description && temperature § Add a response using ”Bot sends” § Save
  • 53. IMPLEMENT LOGIC FOR FETCHING WEATHER § Copy snippet ”getWeather.js” from examples/weather-bot to my-wit-actions.js § Copy file weather.js from examples/weather-bot to the wit-ai directory > sls deploy function -f witAiHandler
  • 54. TRY IT! § An inquiry with date and location information works! § But if we drop out the date, we do not get the right response. Let’s fix that!
  • 55. FORK THE STORY WITHOUT A DATE § Click the fork icon next to the context keys § Create new context key location && description && temperature (without datetime) § Create new response § Save
  • 56. TRY IT! § The current weather is now given if no date is provided § But if we do not provide a location, the bot should probably ask for it!
  • 57. ASK ADDITIONAL QUESTIONS FROM THE USER § Click the bookmark icon next to the getWeather action and create a bookmark getWeather § Create new fork with context key missingLocation § Add a bot response for asking the location § Add a user response and set intent and wit/location entities § Add Jump to getWeather bookmark created earlier
  • 60. WIT.AI UNDERSTANDING § Use Wit.ai understanding to train model § Enter expressions, set entities and validate to improve accuracy
  • 61. WIT.AI INBOX § Use Wit.ai inbox to train model based on incoming messages § Validate expressions that have been entered by users § Preview API output for expressions
  • 62. THANK YOU! mikael.puittinen@sc5.io / @mpuittinen eetu.tuomala@sc5.io / @hopeatussi