SlideShare a Scribd company logo
1 of 65
Building advanced Chat Bots
& Voice Interactive Assistants
Stève SFARTZ
API Evangelist - Cisco DevNet
stsfartz@cisco.com, @SteveSfartz, github://ObjectIsadvantag
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
/Cisco/DevNet/SteveSfartz
• API Evangelist @CiscoDevNet
• Cisco Spark Apps & Tropo APIs
• code addict, nodejs, love story
with #golang
• France and all around Europe
• hosted @PIRL – Paris Innovation
Center & Research Lab
• twitter://@SteveSfartz
• github://ObjectIsAdvantag
“vision without
execution is
hallucination”
-- Thomas Edison
stsfartz@cisco.com
@SteveSfartz
3
 Zero to advanced Voice Machines, ChatBots
 Demoes & code samples
 +39-069-480-4685,
 QuizBot@sparkbot.io
 Challenges & Lessons learnt
T
so what’s on the menu
From Zero to advanced
Voice Machines with Tropo
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
What is Tropo ?
Cloud APIs enabling developers to quickly
and easily embed communication capabilities
into their applications and business processes.
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
+
• Ask
• Call
• Conference
• Hangup
• Record
• Reject
• Say
• Transfer
6
Tropo in a nutshell
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
say("hello world");
7
Text to Speech
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
Play an Audio File
say(“http://.../troporocks.mp3");
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Outbound Voice Call
call("+14155550100");
say("Tag, you’re it!");
9
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Send a Text Message
call("+14155550100",
{network:"SMS"}
);
say("Tag, you’re it!");
1
Asking a Question
var result = ask("What's your favorite
color? Choose red, blue or green.", {
choices:"red, blue, green"
});
say("You said " + result.value);
log("They said " + result.value);
1
Voicemail Application
record("Leave your message. Press
pound when finished.", {
beep:true,
timeout:10,
silenceTimeout:7,
maxTime:60,
terminator:'#',
recordFormat:"audio/mp3",
recordURI:"ftp://.../file.mp3" });
1
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
How to setup your own Voice Machine
• Signup at http://tropo.com
• Create a new Scripting app
• Point to an IVR script:
http://bit.ly/TROPO-IVR
• Pick a phone number
• Save the application
13
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Globally available
Global Outgoing Calls & Messages
Numbers in 42 countries
80 speech languages
14
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Account Types
• Free
• Low-volume
• Restricted use
• No production
usage
• 24x7 support
Developer
• Pre-paid
• Credit Card
• Self-service
signup
• Shared Cloud
• one minute billing
increments
Production
15
Check upcoming talks
via CodeMotion Rome’s
Voice Machine
+39 069 480 4685
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
CodeMotion Rome Voice Machine
IVR = Interactive Voice Responder
• Call +39 069 480 4685 and listen…
• Dial 1 to receive more details by SMS, 2 for next
• Check a session details on your mobile phone
• Text your email to the caller /! you’re texting US !!!
• Launch CiscoSpark, and meet the bot…
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
{CodeMotion} Rome Voice Machine
18
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
How to setup a custom IVR
• The IVR is composed of :
• a local phone number
• a custom script executed by the Tropo Scripting platform
dials #1
+39 069 480 4685
« Welcome »
details via SMS
calls
Voice Machine
script
19
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
IVR script highlights
• Forking a new session to send a SMS
20
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Join the Cisco DevNet code labs
https://github.com/CiscoDevNet/codemotion-rome-2017
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Serverless is great
• no deployment hurdles, scalability from day 1
… but
• tedious dev cycles (commit, push, test)
• painful to diagnose (read logs through)
 local emulators to the rescue
 run and debug locally
 integrate in a CI/CD tool chain
Lessons learnt
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Tropo Ready!
• Tropo Ready!
• + URL to the project
• Browse the project
https://github.com/ObjectIsAdvantag/tropo-ready-vscode
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Tropo Emulator in practice
https://github.com/ObjectIsAdvantag/tropo-ready-vscode
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Best practices: ChatOps
Diagnose & follow real time activity
“Follow your
application usage in
real-time”
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Best practices: ChatOps
Diagnose & follow real time activity
“Follow your
application usage in
real-time”
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Best practices: ChatOps
Diagnose & follow real time activity
“Diagnose a Serverless script”
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
How to setup ChatOps
To stream logs and get
instant view about your
Voice Machine activity:
1. Create a ChatOps
room
2. Add an Incoming
Webhook
3. Post messages
Voice Machine
script
Log2Spark
library
/new
logs
POST
message
« ChatOps »
Room
1
2
3
28
From Zero to advanced
Chat Bots with Cisco Spark
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark
Secure & Open
Complete & Simple
Spark for Developers
User Integrations, APIs/SDKs...
Spark Hybrid Services
Cloud + Prem
Partner Services
Interconnect
Message Meeting Call
1:1 and team messaging Cloud-based phone systemAudio, video, and web meetings
30
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
‘Your App’
now with
Cisco Collab!
Spark APIs
extend Cisco Collaboration Cloud
GET
POST
DELETE
PUT
/Rooms
/Memberships
/Messages
/Webhooks
/People
31
/Teams
https://developer.ciscospark.com/
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
Meet the roomId bot
• Add roomId@sparkbot.io
to a room
1. The bot sniffs room identifier,
2. Posts the identifier in a 1-1 space,
3. And finally leaves the space you originally invited it to join
https://github.com/CiscoDevNet/node-sparkbot-samples
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
• nothing more than an API responding to
events
• a few lines of code with a Bot framework
What it takes to build a Chat Bot
33
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Run a bot sample
• Leverages the node-sparkbot framework
• aimed at Cisco Spark bot education
• https://github.com/CiscoDevNet/node-sparkbot
• Community frameworks
• Flint: https://github.com/flint-bot/flint
• BotKit: https://github.com/howdyai/botkit
https://github.com/CiscoDevNet/node-sparkbot-samples
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark Cloud
Service
1. interacts in spaces
via a Cisco Spark client
Cisco Spark User
Your Bot code running
On-premise or on a Public Coud
2. posts notifications to
registered WebHooks
Publicly accessible APIs
3. posts messages
as notifications fly in
Bot Architecture
 Register WebHook
events your bot is
interested to
listened to
 Messages /
created
 Memberships /
created
 As events happen
in spaces, receive
notifications from
Cisco Spark
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark Cloud
Service
1. interacts in spaces
via a Cisco Spark client
Cisco Spark User
DMZ
2. posts notifications to
registered WebHooks
Publicly accessible
3. responds to
Webhook events
Your Bot code running
on-premises
Enterprise secured
2b. forwards notifications
Bot Architecture: on-premises
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Cisco Spark Cloud
Service
1. interacts in Rooms
via the various Spark Clients
Cisco Spark User
Tunneling
infrastructure
Your Bot code running
on your local machine
2. posts notifications to
registered WebHooks
Dev environmentPublicly accessible
2b. forwards
Webhook events
3. responds to
Webhook events
Bot Architecture: dev machine
ngrok, localtunnel…
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bot Contest
Sign in on CiscoSpark
Meet the Bot
quizbot@sparkbot.io
Take the challenge
Win an iPhone7…
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Meet the QuizBot
39
https://github.com/LucaCalabrese/codemotion-spark-bot
Java, AWS, PostGreSQL, WebHooks @LukeCalab
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 40
@QuizBot help
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
@QuizBot now
41
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Enhance the User Experience
• Help command
• better show at the invite, welcome message
• But how much help do the bot really
provide?
• /hlp
• Help
• #help
• HELP!!!
 Fallback command
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Fallback command
43
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Add conversations to the game…
44
https://github.com/ObjectIsAdvantag/devnet-botkit-sample
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
…and context storage
45
https://github.com/CiscoDevNet/botkit-ciscospark-samples
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 46
Bot Frameworks survey
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bot community frameworks
• Flint, https://github.com/flint-bot/flint
• BotKit, https://github.com/howdyai/botkit
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Community frameworks for Cisco Spark
Flint
First Bot framework for
Cisco Spark
Highly tuned for the Cisco
Spark API (webhooks
events, moderation…)
Basic Key/Value data store
Coding best practices (ES6,
exception handling, logs,
retries, rate limitation)
BotKit
Largest community Bot
framework
Cross platform support with
code reuse (no magic
convert button: events
name, message formatting)
Advanced Key/Value data
store (user / space level)
Powerful conversational
paradigm
https://github.com/flint-bot/flint https://github.com/howdyai/botkit
Taking bots to the next
stage
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
• But who created the bot ?
• What is the usage policy ?
• How can I contact support, send feedback ?
• What about my data privacy ?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
@CiscoDevNet /about
51
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
Is the bot down ?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 53
Bot Metadata
HealthCheck
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Is the bot down ? a proposal
• Register the Bot in a Universal Database
• Chat services supported
• Healthcheck endpoints
• Author, Policies
• Metadata again…
• chatbot.land domain reserved
• who’s in ? twitter://@SteveSfartz
54
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
Hosting
• Many options: IaaS, Containers, PaaS
• Concerns: Availability, Scalability,
Security, Rate Limitation
• Pricing balance: who’s willing to pay for
the bot, and how much
• Heroku PaaS Free Dynos
• AWS/Google/Microsoft free plans
• Currently testing Serverless Functions
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Google Functions pricing
56
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Serverless Functions opportunity
57
https://github.com/ObjectIsAdvantag/devnetexpress-bot
Remember?
a bot is nothing more
than a POST endpoint
…
with an healthcheck !
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Serverless Functions opportunity
> gcloud alpha functions deploy sparkbot
--entry-point googlefunction
--stage-bucket objectisadvantag-functions
--trigger-http
--memory 128MB
--timeout 1s
58
https://github.com/ObjectIsAdvantag/devnetexpress-bot
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Serverless Functions opportunity
• An easy way to remove the Serverless burden
59
https://github.com/ObjectIsAdvantag/devnetexpress-bot
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
• Pick Bots coding best practices & frameworks
• Exception management, Retries
• Help, Fallback command, Healthcheck
• Conversations (test is challenging)
• Choose the best hosting approach
• Monitor your bot activity
• Chatops + Analytics
• Think twice before going to NLP and then
choose the best approach (local vs 3rd party)
https://devnetcreate.io/2017 Nick Marus’s Talk
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking bots to the next stage
Machine Learning
• The bot companion learns from
interactions
• Use case: classify my Twitter Followers
• Who’s ready to pay for it ?
• Data Privacy vs Real Cost
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Join the Cisco DevNet code labs
https://github.com/CiscoDevNet/codemotion-rome-2017
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Bot Contest
• Sign in on Cisco
Spark
• Meet the Bot
quizbot@sparkbot.io
• Take the challenge
• Win iPhone7…
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Meet Cisco at CodeMotion Rome
March 24th
9:40: It's all about Developers, discover Cisco DevNet
11:30: Build advanced Voice Assistants and Chat Bots
14:10: How to embed Video Calls and Messaging without
being a Media, WebRTC, XMPP or SIP expert
All day: Learn by taking a code lab with proctors
March 25th
11:30: Microservices and containers networking: Contiv,
an industry leading open source solution from Cisco
https://github.com/CiscoDevNet/codemotion-rome-2017
Thank you
@CiscoDevNet
@CiscoSparkDev
@SteveSfartz

More Related Content

What's hot

NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
Hank Preston
 
Présentation cisco aci in action fundamentals - fcouderc - v6
Présentation cisco aci in action   fundamentals - fcouderc - v6Présentation cisco aci in action   fundamentals - fcouderc - v6
Présentation cisco aci in action fundamentals - fcouderc - v6
Dig-IT
 
DevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationDevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes Integration
Hank Preston
 

What's hot (20)

Device Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play SolutionDevice Programmability with Cisco Plug-n-Play Solution
Device Programmability with Cisco Plug-n-Play Solution
 
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap APIBuilding a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
Building a WiFi Hotspot with NodeJS: Cisco Meraki - ExCap API
 
How to Contribute to Ansible
How to Contribute to AnsibleHow to Contribute to Ansible
How to Contribute to Ansible
 
OpenStack Enabling DevOps
OpenStack Enabling DevOpsOpenStack Enabling DevOps
OpenStack Enabling DevOps
 
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
Open Device Programmability: Hands-on Intro to RESTCONF (and a bit of NETCONF)
 
UCS Management APIs A Technical Deep Dive
UCS Management APIs A Technical Deep DiveUCS Management APIs A Technical Deep Dive
UCS Management APIs A Technical Deep Dive
 
DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet Express - Spark & Tropo API - Lisbon May 2016DevNet Express - Spark & Tropo API - Lisbon May 2016
DevNet Express - Spark & Tropo API - Lisbon May 2016
 
NetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO ConfigurationsNetBox as the Source of Truth for Cisco NSO Configurations
NetBox as the Source of Truth for Cisco NSO Configurations
 
NSO: Network Service Orchestrator enabled by Tail-f Hands-on Lab
NSO: Network Service Orchestrator enabled by Tail-f Hands-on LabNSO: Network Service Orchestrator enabled by Tail-f Hands-on Lab
NSO: Network Service Orchestrator enabled by Tail-f Hands-on Lab
 
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
Webex Devices xAPI - DEVNET_2071 - Cisco Live - San Diego 2019
 
Présentation cisco aci in action fundamentals - fcouderc - v6
Présentation cisco aci in action   fundamentals - fcouderc - v6Présentation cisco aci in action   fundamentals - fcouderc - v6
Présentation cisco aci in action fundamentals - fcouderc - v6
 
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
Webex APIs for Admins - Cisco Live Orlando 2018 - DEVNET-3610
 
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
DevNet @TAG - Spark & Tropo APIs - Milan/Rome May 2016
 
Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019Javascript Essentials - Cisco Live Barcelona 2019
Javascript Essentials - Cisco Live Barcelona 2019
 
DevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes IntegrationDevNetCreate - ACI and Kubernetes Integration
DevNetCreate - ACI and Kubernetes Integration
 
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
Advanced coding & deployment for Cisco Video Devices - CL20B - DEVNET-3244
 
Cisco Connect Toronto 2017 - Model-driven Telemetry
Cisco Connect Toronto 2017 - Model-driven TelemetryCisco Connect Toronto 2017 - Model-driven Telemetry
Cisco Connect Toronto 2017 - Model-driven Telemetry
 
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
Webex APIs for Administrators - DEVNET_2610 - Cisco Live 2019
 
Leverage the Network
Leverage the NetworkLeverage the Network
Leverage the Network
 
Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?Meeting rooms are talking! are you listening?
Meeting rooms are talking! are you listening?
 

Viewers also liked

Viewers also liked (17)

Inquiry, Social Change, Implications for Art Education
Inquiry, Social Change, Implications for Art EducationInquiry, Social Change, Implications for Art Education
Inquiry, Social Change, Implications for Art Education
 
All About Factors & Smart Beta
All About Factors & Smart BetaAll About Factors & Smart Beta
All About Factors & Smart Beta
 
Slide online
Slide onlineSlide online
Slide online
 
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot 10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
10 Things You Didn’t Know About Mobile Email from Litmus & HubSpot
 
How to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's BuyerHow to Earn the Attention of Today's Buyer
How to Earn the Attention of Today's Buyer
 
Behind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot TokyoBehind the Scenes: Launching HubSpot Tokyo
Behind the Scenes: Launching HubSpot Tokyo
 
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
Why People Block Ads (And What It Means for Marketers and Advertisers) [New R...
 
What is Inbound Recruiting?
What is Inbound Recruiting?What is Inbound Recruiting?
What is Inbound Recruiting?
 
Add the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-ThonAdd the Women Back: Wikipedia Edit-a-Thon
Add the Women Back: Wikipedia Edit-a-Thon
 
Fuse webinar
Fuse webinarFuse webinar
Fuse webinar
 
Snort manual
Snort manualSnort manual
Snort manual
 
Snort-IPS-Tutorial
Snort-IPS-TutorialSnort-IPS-Tutorial
Snort-IPS-Tutorial
 
Will Your Firm Thrive or Just Survive? The Critical Competency for Today’s Pr...
Will Your Firm Thrive or Just Survive? The Critical Competency for Today’s Pr...Will Your Firm Thrive or Just Survive? The Critical Competency for Today’s Pr...
Will Your Firm Thrive or Just Survive? The Critical Competency for Today’s Pr...
 
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
 
Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill
Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skillVoice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill
Voice Interfaces Usergroup Berlin - 05-10-2016 : Kay Lerch on Morse-Coder skill
 
How to Succeed With Rewarded Video Ads
How to Succeed With Rewarded Video AdsHow to Succeed With Rewarded Video Ads
How to Succeed With Rewarded Video Ads
 
Speech Recognition, Text to Speech, and Voice Interfaces
Speech Recognition, Text to Speech, and Voice InterfacesSpeech Recognition, Text to Speech, and Voice Interfaces
Speech Recognition, Text to Speech, and Voice Interfaces
 

Similar to Rome 2017: Building advanced voice assistants and chat bots

Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
Cisco DevNet
 
IoT and Digitization with Arduino and Raspberry Pi.pptx
IoT and Digitization with Arduino and Raspberry Pi.pptxIoT and Digitization with Arduino and Raspberry Pi.pptx
IoT and Digitization with Arduino and Raspberry Pi.pptx
MarcoC20
 

Similar to Rome 2017: Building advanced voice assistants and chat bots (20)

Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.Breizhcamp: Créer un bot, pas si simple. Faisons le point.
Breizhcamp: Créer un bot, pas si simple. Faisons le point.
 
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
Build advanced chat bots - Steve Sfartz - Codemotion Amsterdam 2017
 
Phone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo ServerlessPhone Communications in Javascript with Tropo Serverless
Phone Communications in Javascript with Tropo Serverless
 
From IoT to Human Interactions: Voice and Messages to the rescue - Stève Sfar...
From IoT to Human Interactions: Voice and Messages to the rescue - Stève Sfar...From IoT to Human Interactions: Voice and Messages to the rescue - Stève Sfar...
From IoT to Human Interactions: Voice and Messages to the rescue - Stève Sfar...
 
Build advanced Voice Assistants and Chat Bots - Stève Sfartz - Codemotion Mil...
Build advanced Voice Assistants and Chat Bots - Stève Sfartz - Codemotion Mil...Build advanced Voice Assistants and Chat Bots - Stève Sfartz - Codemotion Mil...
Build advanced Voice Assistants and Chat Bots - Stève Sfartz - Codemotion Mil...
 
Emulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API ProvidersEmulators as an Emerging Best Practice for API Providers
Emulators as an Emerging Best Practice for API Providers
 
DevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash courseDevNetCreate Workshop - build a react app - React crash course
DevNetCreate Workshop - build a react app - React crash course
 
IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016
IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016
IoT to Human interactions - Stève Sfartz - Codemotion Milan 2016
 
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
 
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
Stève Sfartz - Meeting rooms are talking! Are you listening? - Codemotion Ber...
 
IoT and Digitization with Arduino and Raspberry Pi.pptx
IoT and Digitization with Arduino and Raspberry Pi.pptxIoT and Digitization with Arduino and Raspberry Pi.pptx
IoT and Digitization with Arduino and Raspberry Pi.pptx
 
Embed Spark calling SDK in Your App - Olivier PROFFIT - Cisco Live Berlin 2017
Embed Spark calling SDK in Your App - Olivier PROFFIT - Cisco Live Berlin 2017Embed Spark calling SDK in Your App - Olivier PROFFIT - Cisco Live Berlin 2017
Embed Spark calling SDK in Your App - Olivier PROFFIT - Cisco Live Berlin 2017
 
Cisco Connect Toronto 2018 DevNet Overview
Cisco Connect Toronto 2018  DevNet OverviewCisco Connect Toronto 2018  DevNet Overview
Cisco Connect Toronto 2018 DevNet Overview
 
Magical meeting experiences
Magical meeting experiences Magical meeting experiences
Magical meeting experiences
 
Embedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your appsEmbedding Messages and Video Calls in your apps
Embedding Messages and Video Calls in your apps
 
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
Steve Sfartz - How to embed Messaging and Video in your apps - Codemotion Mil...
 
Meeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listeningMeeting rooms are talking. Are you listening
Meeting rooms are talking. Are you listening
 
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
Chatbots 101: design, code, deploy - Cisco Live Orlando 2018 - DEVNET-2896
 
Cisco Spark the Industry Challenge
Cisco Spark the Industry ChallengeCisco Spark the Industry Challenge
Cisco Spark the Industry Challenge
 
Cisco Paris DevNet Hackathon slideshow - Intro
Cisco Paris DevNet Hackathon slideshow - IntroCisco Paris DevNet Hackathon slideshow - Intro
Cisco Paris DevNet Hackathon slideshow - Intro
 

More from Cisco DevNet

NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
Cisco DevNet
 

More from Cisco DevNet (14)

Application Visibility and Experience through Flexible Netflow
Application Visibility and Experience through Flexible NetflowApplication Visibility and Experience through Flexible Netflow
Application Visibility and Experience through Flexible Netflow
 
NETCONF & YANG Enablement of Network Devices
NETCONF & YANG Enablement of Network DevicesNETCONF & YANG Enablement of Network Devices
NETCONF & YANG Enablement of Network Devices
 
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
NetDevOps for the Network Dude: How to get started with API's, Ansible and Py...
 
Choosing PaaS: Cisco and Open Source Options: an overview
Choosing PaaS:  Cisco and Open Source Options: an overviewChoosing PaaS:  Cisco and Open Source Options: an overview
Choosing PaaS: Cisco and Open Source Options: an overview
 
Doing Business with Tropo
Doing Business with TropoDoing Business with Tropo
Doing Business with Tropo
 
Introduction to the DevNet Sandbox and IVT
Introduction to the DevNet Sandbox and IVTIntroduction to the DevNet Sandbox and IVT
Introduction to the DevNet Sandbox and IVT
 
Introduction to Fog
Introduction to FogIntroduction to Fog
Introduction to Fog
 
CSTA - Cisco Security Technical Alliances, New Ecosystem Program Built on the...
CSTA - Cisco Security Technical Alliances, New Ecosystem Program Built on the...CSTA - Cisco Security Technical Alliances, New Ecosystem Program Built on the...
CSTA - Cisco Security Technical Alliances, New Ecosystem Program Built on the...
 
Introduction to ACI APIs
Introduction to ACI APIsIntroduction to ACI APIs
Introduction to ACI APIs
 
Flare: an overview
Flare: an overviewFlare: an overview
Flare: an overview
 
Enabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overviewEnabling Fast IT using Containers, Microservices and DAVROS models: an overview
Enabling Fast IT using Containers, Microservices and DAVROS models: an overview
 
Cisco Managed Private Cloud in Your Data Center: Public cloud experience on ...
Cisco Managed Private Cloud in Your Data Center:  Public cloud experience on ...Cisco Managed Private Cloud in Your Data Center:  Public cloud experience on ...
Cisco Managed Private Cloud in Your Data Center: Public cloud experience on ...
 
Starting the DevOps Train
Starting the DevOps TrainStarting the DevOps Train
Starting the DevOps Train
 
Getting Started with OpenStack
Getting Started with OpenStackGetting Started with OpenStack
Getting Started with OpenStack
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Rome 2017: Building advanced voice assistants and chat bots

  • 1. Building advanced Chat Bots & Voice Interactive Assistants Stève SFARTZ API Evangelist - Cisco DevNet stsfartz@cisco.com, @SteveSfartz, github://ObjectIsadvantag
  • 2. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public /Cisco/DevNet/SteveSfartz • API Evangelist @CiscoDevNet • Cisco Spark Apps & Tropo APIs • code addict, nodejs, love story with #golang • France and all around Europe • hosted @PIRL – Paris Innovation Center & Research Lab • twitter://@SteveSfartz • github://ObjectIsAdvantag “vision without execution is hallucination” -- Thomas Edison stsfartz@cisco.com @SteveSfartz
  • 3. 3  Zero to advanced Voice Machines, ChatBots  Demoes & code samples  +39-069-480-4685,  QuizBot@sparkbot.io  Challenges & Lessons learnt T so what’s on the menu
  • 4. From Zero to advanced Voice Machines with Tropo
  • 5. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public What is Tropo ? Cloud APIs enabling developers to quickly and easily embed communication capabilities into their applications and business processes.
  • 6. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public + • Ask • Call • Conference • Hangup • Record • Reject • Say • Transfer 6 Tropo in a nutshell
  • 7. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public say("hello world"); 7 Text to Speech
  • 8. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 8 Play an Audio File say(“http://.../troporocks.mp3");
  • 9. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Outbound Voice Call call("+14155550100"); say("Tag, you’re it!"); 9
  • 10. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Send a Text Message call("+14155550100", {network:"SMS"} ); say("Tag, you’re it!"); 1
  • 11. Asking a Question var result = ask("What's your favorite color? Choose red, blue or green.", { choices:"red, blue, green" }); say("You said " + result.value); log("They said " + result.value); 1
  • 12. Voicemail Application record("Leave your message. Press pound when finished.", { beep:true, timeout:10, silenceTimeout:7, maxTime:60, terminator:'#', recordFormat:"audio/mp3", recordURI:"ftp://.../file.mp3" }); 1
  • 13. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public How to setup your own Voice Machine • Signup at http://tropo.com • Create a new Scripting app • Point to an IVR script: http://bit.ly/TROPO-IVR • Pick a phone number • Save the application 13
  • 14. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Globally available Global Outgoing Calls & Messages Numbers in 42 countries 80 speech languages 14
  • 15. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Account Types • Free • Low-volume • Restricted use • No production usage • 24x7 support Developer • Pre-paid • Credit Card • Self-service signup • Shared Cloud • one minute billing increments Production 15
  • 16. Check upcoming talks via CodeMotion Rome’s Voice Machine +39 069 480 4685
  • 17. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public CodeMotion Rome Voice Machine IVR = Interactive Voice Responder • Call +39 069 480 4685 and listen… • Dial 1 to receive more details by SMS, 2 for next • Check a session details on your mobile phone • Text your email to the caller /! you’re texting US !!! • Launch CiscoSpark, and meet the bot…
  • 18. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public {CodeMotion} Rome Voice Machine 18
  • 19. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public How to setup a custom IVR • The IVR is composed of : • a local phone number • a custom script executed by the Tropo Scripting platform dials #1 +39 069 480 4685 « Welcome » details via SMS calls Voice Machine script 19
  • 20. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public IVR script highlights • Forking a new session to send a SMS 20
  • 21. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Join the Cisco DevNet code labs https://github.com/CiscoDevNet/codemotion-rome-2017
  • 22. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Serverless is great • no deployment hurdles, scalability from day 1 … but • tedious dev cycles (commit, push, test) • painful to diagnose (read logs through)  local emulators to the rescue  run and debug locally  integrate in a CI/CD tool chain Lessons learnt
  • 23. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Tropo Ready! • Tropo Ready! • + URL to the project • Browse the project https://github.com/ObjectIsAdvantag/tropo-ready-vscode
  • 24. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Tropo Emulator in practice https://github.com/ObjectIsAdvantag/tropo-ready-vscode
  • 25. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Best practices: ChatOps Diagnose & follow real time activity “Follow your application usage in real-time”
  • 26. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Best practices: ChatOps Diagnose & follow real time activity “Follow your application usage in real-time”
  • 27. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Best practices: ChatOps Diagnose & follow real time activity “Diagnose a Serverless script”
  • 28. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public How to setup ChatOps To stream logs and get instant view about your Voice Machine activity: 1. Create a ChatOps room 2. Add an Incoming Webhook 3. Post messages Voice Machine script Log2Spark library /new logs POST message « ChatOps » Room 1 2 3 28
  • 29. From Zero to advanced Chat Bots with Cisco Spark
  • 30. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco Spark Secure & Open Complete & Simple Spark for Developers User Integrations, APIs/SDKs... Spark Hybrid Services Cloud + Prem Partner Services Interconnect Message Meeting Call 1:1 and team messaging Cloud-based phone systemAudio, video, and web meetings 30
  • 31. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public ‘Your App’ now with Cisco Collab! Spark APIs extend Cisco Collaboration Cloud GET POST DELETE PUT /Rooms /Memberships /Messages /Webhooks /People 31 /Teams https://developer.ciscospark.com/
  • 32. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 32 Meet the roomId bot • Add roomId@sparkbot.io to a room 1. The bot sniffs room identifier, 2. Posts the identifier in a 1-1 space, 3. And finally leaves the space you originally invited it to join https://github.com/CiscoDevNet/node-sparkbot-samples
  • 33. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public • nothing more than an API responding to events • a few lines of code with a Bot framework What it takes to build a Chat Bot 33
  • 34. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Run a bot sample • Leverages the node-sparkbot framework • aimed at Cisco Spark bot education • https://github.com/CiscoDevNet/node-sparkbot • Community frameworks • Flint: https://github.com/flint-bot/flint • BotKit: https://github.com/howdyai/botkit https://github.com/CiscoDevNet/node-sparkbot-samples
  • 35. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco Spark Cloud Service 1. interacts in spaces via a Cisco Spark client Cisco Spark User Your Bot code running On-premise or on a Public Coud 2. posts notifications to registered WebHooks Publicly accessible APIs 3. posts messages as notifications fly in Bot Architecture  Register WebHook events your bot is interested to listened to  Messages / created  Memberships / created  As events happen in spaces, receive notifications from Cisco Spark
  • 36. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco Spark Cloud Service 1. interacts in spaces via a Cisco Spark client Cisco Spark User DMZ 2. posts notifications to registered WebHooks Publicly accessible 3. responds to Webhook events Your Bot code running on-premises Enterprise secured 2b. forwards notifications Bot Architecture: on-premises
  • 37. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Cisco Spark Cloud Service 1. interacts in Rooms via the various Spark Clients Cisco Spark User Tunneling infrastructure Your Bot code running on your local machine 2. posts notifications to registered WebHooks Dev environmentPublicly accessible 2b. forwards Webhook events 3. responds to Webhook events Bot Architecture: dev machine ngrok, localtunnel…
  • 38. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Bot Contest Sign in on CiscoSpark Meet the Bot quizbot@sparkbot.io Take the challenge Win an iPhone7…
  • 39. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Meet the QuizBot 39 https://github.com/LucaCalabrese/codemotion-spark-bot Java, AWS, PostGreSQL, WebHooks @LukeCalab
  • 40. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 40 @QuizBot help
  • 41. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public @QuizBot now 41
  • 42. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Enhance the User Experience • Help command • better show at the invite, welcome message • But how much help do the bot really provide? • /hlp • Help • #help • HELP!!!  Fallback command
  • 43. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Fallback command 43
  • 44. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Add conversations to the game… 44 https://github.com/ObjectIsAdvantag/devnet-botkit-sample
  • 45. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public …and context storage 45 https://github.com/CiscoDevNet/botkit-ciscospark-samples
  • 46. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 46 Bot Frameworks survey
  • 47. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Bot community frameworks • Flint, https://github.com/flint-bot/flint • BotKit, https://github.com/howdyai/botkit
  • 48. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Community frameworks for Cisco Spark Flint First Bot framework for Cisco Spark Highly tuned for the Cisco Spark API (webhooks events, moderation…) Basic Key/Value data store Coding best practices (ES6, exception handling, logs, retries, rate limitation) BotKit Largest community Bot framework Cross platform support with code reuse (no magic convert button: events name, message formatting) Advanced Key/Value data store (user / space level) Powerful conversational paradigm https://github.com/flint-bot/flint https://github.com/howdyai/botkit
  • 49. Taking bots to the next stage
  • 50. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage • But who created the bot ? • What is the usage policy ? • How can I contact support, send feedback ? • What about my data privacy ?
  • 51. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public @CiscoDevNet /about 51
  • 52. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage Is the bot down ?
  • 53. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 53 Bot Metadata HealthCheck
  • 54. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Is the bot down ? a proposal • Register the Bot in a Universal Database • Chat services supported • Healthcheck endpoints • Author, Policies • Metadata again… • chatbot.land domain reserved • who’s in ? twitter://@SteveSfartz 54
  • 55. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage Hosting • Many options: IaaS, Containers, PaaS • Concerns: Availability, Scalability, Security, Rate Limitation • Pricing balance: who’s willing to pay for the bot, and how much • Heroku PaaS Free Dynos • AWS/Google/Microsoft free plans • Currently testing Serverless Functions
  • 56. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Google Functions pricing 56
  • 57. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public The Serverless Functions opportunity 57 https://github.com/ObjectIsAdvantag/devnetexpress-bot Remember? a bot is nothing more than a POST endpoint … with an healthcheck !
  • 58. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public The Serverless Functions opportunity > gcloud alpha functions deploy sparkbot --entry-point googlefunction --stage-bucket objectisadvantag-functions --trigger-http --memory 128MB --timeout 1s 58 https://github.com/ObjectIsAdvantag/devnetexpress-bot
  • 59. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public The Serverless Functions opportunity • An easy way to remove the Serverless burden 59 https://github.com/ObjectIsAdvantag/devnetexpress-bot
  • 60. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage • Pick Bots coding best practices & frameworks • Exception management, Retries • Help, Fallback command, Healthcheck • Conversations (test is challenging) • Choose the best hosting approach • Monitor your bot activity • Chatops + Analytics • Think twice before going to NLP and then choose the best approach (local vs 3rd party) https://devnetcreate.io/2017 Nick Marus’s Talk
  • 61. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking bots to the next stage Machine Learning • The bot companion learns from interactions • Use case: classify my Twitter Followers • Who’s ready to pay for it ? • Data Privacy vs Real Cost
  • 62. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Join the Cisco DevNet code labs https://github.com/CiscoDevNet/codemotion-rome-2017
  • 63. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Bot Contest • Sign in on Cisco Spark • Meet the Bot quizbot@sparkbot.io • Take the challenge • Win iPhone7…
  • 64. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Meet Cisco at CodeMotion Rome March 24th 9:40: It's all about Developers, discover Cisco DevNet 11:30: Build advanced Voice Assistants and Chat Bots 14:10: How to embed Video Calls and Messaging without being a Media, WebRTC, XMPP or SIP expert All day: Learn by taking a code lab with proctors March 25th 11:30: Microservices and containers networking: Contiv, an industry leading open source solution from Cisco https://github.com/CiscoDevNet/codemotion-rome-2017

Editor's Notes

  1. Bots are fun !!! Thoughts and lessons learnt building: Voice Machines Chat Bots
  2. You’re in control
  3. TODO: Add URL to the VOICE Machine
  4. Understand how the Tropo Scripting platform manages your files For development, host your scripts on an external URL for changes to reflect instanlty Tropo will fetch your script everytime Host on Github gist, edit your favorite IDE When going live, host your scripts on Tropo Production File Servers
  5. Live coding
  6. Orange boxes represent custom code
  7. Let’s break it down into the 3 elements. SPARK MESSAGING – is an easy to use, always connected, service built on the idea of VIRTUAL ROOMS with a excellent MOBILE EXPERIENCE. Messaging, content sharing and BASIC conferencing capabilities are now all in one place. These “rooms” reduce the need for other tools like email and SHAREPOINT that were not truly built to support these types of workers and workstyles. SPARK MEETINGS – People shouldn’t have to worry about what KIND OF MEETING they’re having. Video Rooms, home office, branch office, Driver’s seat, Airport…Face to Face Video, Voice, and Content Sharing from any DEVICE, any ROOM, and any WORK ENVIRONMENT. Leveraging the #1 Web collaboration tool WebEx. SPARK CALL – This is your phone system or PBX in the cloud. One-touch directory dialing, Single Number Reach, Single Voicemail from any device, anywhere. All delivered in a single experience and managed through a single Cloud Collaboration Management Portal. Cloud Collaboration Management provides a single tool for administration, entitlement, management and reporting for Cisco Spark and Cisco WebEx Building on these 3 ELEMENTS . Cisco Spark is an Open Platform with… Open APIs for application integrations and a playground for developers Partner Services provides inbound dialing, and PSTN connectivity And Hybrid Services for integrating Cloud Spark applications with existing on prem investments
  8. We’ll leverage Spark APIs to implement this use case Spark APIs are accessible at https://developer.ciscospark.com/ This is where you get your API token and run thru the interactive documentation