SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
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
 Zeroto 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)
 a local Emulator 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
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 enters the room
2. Sniffs the room identifier,
3. Posts the identifier in a 1-1 space,
4. And finally leaves the space you originally invited it to join
• Check the code
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
Cisco Spark 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
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking our 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
50
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking your bot to the next stage
Is the bot down ?
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 52
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
53
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
Taking your bot 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
55
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Serverless Functions opportunity
56
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
57
https://github.com/ObjectIsAdvantag/devnetexpress-bot
© 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public
The Serverless Functions opportunity
• Easy way to remove the Serverless burden
58
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 your bot to the next stage
Machine Learning
• The bot: my companion
• Learn from interactions
• 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
Thank you
@CiscoDevNet
@CiscoSparkDev
@SteveSfartz

Mais conteúdo relacionado

Mais procurados

The internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolutionThe internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolution
Yoni Davidson
 

Mais procurados (20)

Kubernetes - Cloud Native Application Orchestration - Catalin Jora
Kubernetes - Cloud Native Application Orchestration - Catalin JoraKubernetes - Cloud Native Application Orchestration - Catalin Jora
Kubernetes - Cloud Native Application Orchestration - Catalin Jora
 
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at JavanturaHands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
Hands-on cloud-native Java with MicroProfile, Kubernetes and Istio at Javantura
 
WebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the WebWebRTC - Brings Real-Time to the Web
WebRTC - Brings Real-Time to the Web
 
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
[WSO2 Integration Summit San Francisco 2019] Ballerina - Cloud Native Middlew...
 
[WSO2 Integration Summit San Francisco 2019] The API-driven World
[WSO2 Integration Summit San Francisco 2019] The API-driven World[WSO2 Integration Summit San Francisco 2019] The API-driven World
[WSO2 Integration Summit San Francisco 2019] The API-driven World
 
Convergence of Communities
Convergence of CommunitiesConvergence of Communities
Convergence of Communities
 
Docker adventures in Continuous Delivery - Alex Vranceanu
Docker adventures in Continuous Delivery - Alex VranceanuDocker adventures in Continuous Delivery - Alex Vranceanu
Docker adventures in Continuous Delivery - Alex Vranceanu
 
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinarMove Desktop Apps to the Cloud - RollApp & Embarcadero webinar
Move Desktop Apps to the Cloud - RollApp & Embarcadero webinar
 
apidays LIVE Paris 2021 - Edge Side APIs by Kevin Dunglas, Les Tilleuls
apidays LIVE Paris 2021 - Edge Side APIs by Kevin Dunglas, Les Tilleulsapidays LIVE Paris 2021 - Edge Side APIs by Kevin Dunglas, Les Tilleuls
apidays LIVE Paris 2021 - Edge Side APIs by Kevin Dunglas, Les Tilleuls
 
Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)Declarative Import with Magento 2 Import Framework (M2IF)
Declarative Import with Magento 2 Import Framework (M2IF)
 
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
 
The internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolutionThe internet of things in now , see how golang is a part of this evolution
The internet of things in now , see how golang is a part of this evolution
 
Seriously Open Cloud Native Java Microservices
Seriously Open Cloud Native Java MicroservicesSeriously Open Cloud Native Java Microservices
Seriously Open Cloud Native Java Microservices
 
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
[APIdays INTERFACE 2021] Now that we have K8s, can we stop re-inventing API p...
 
Innovation and scale - drivers and pitfalls to building API driven business p...
Innovation and scale - drivers and pitfalls to building API driven business p...Innovation and scale - drivers and pitfalls to building API driven business p...
Innovation and scale - drivers and pitfalls to building API driven business p...
 
[WSO2 Integration Summit San Francisco 2019] The Composable Enterprise
[WSO2 Integration Summit San Francisco 2019] The Composable Enterprise[WSO2 Integration Summit San Francisco 2019] The Composable Enterprise
[WSO2 Integration Summit San Francisco 2019] The Composable Enterprise
 
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET CoreITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
ITCamp 2017 - Raffaele Rialdi - A Deep Dive Into Bridging Node-js with .NET Core
 
use case ibm k8s_service+devops
use case ibm k8s_service+devopsuse case ibm k8s_service+devops
use case ibm k8s_service+devops
 
Samsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web AppsSamsung Indonesia: Tizen Web Apps
Samsung Indonesia: Tizen Web Apps
 
OpenAPI Generator The Babel Fish of The API World - apidays Live Australia
OpenAPI Generator The Babel Fish of The API World - apidays Live AustraliaOpenAPI Generator The Babel Fish of The API World - apidays Live Australia
OpenAPI Generator The Babel Fish of The API World - apidays Live Australia
 

Semelhante a Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz - Codemotion Rome 2017

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
 

Semelhante a Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz - Codemotion Rome 2017 (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...
 
How to Build Advanced Voice Assistants and Chatbots
How to Build Advanced Voice Assistants and ChatbotsHow to Build Advanced Voice Assistants and Chatbots
How to Build Advanced Voice Assistants and Chatbots
 
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
 
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...
 
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
 
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?
 
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...
 
Cisco Spark & Tropo API Workshop
Cisco Spark & Tropo API WorkshopCisco Spark & Tropo API Workshop
Cisco Spark & Tropo API Workshop
 
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
 
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
 
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
 
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
 
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...
 

Mais de Codemotion

Mais de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 

Último

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Último (20)

"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
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
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 

Building advanced Chats Bots and Voice Interactive Assistants - Stève Sfartz - Codemotion Rome 2017

  • 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  Zeroto 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)  a local Emulator 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 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 enters the room 2. Sniffs the room identifier, 3. Posts the identifier in a 1-1 space, 4. And finally leaves the space you originally invited it to join • Check the code 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 Cisco Spark 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. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking our 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 ?
  • 50. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public @CiscoDevNet /about 50
  • 51. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking your bot to the next stage Is the bot down ?
  • 52. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public 52 Bot Metadata HealthCheck
  • 53. © 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 53
  • 54. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking your bot 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
  • 55. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Google functions pricing 55
  • 56. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public The Serverless Functions opportunity 56 https://github.com/ObjectIsAdvantag/devnetexpress-bot Remember? a bot is nothing more than a POST endpoint … with an healthcheck !
  • 57. © 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 57 https://github.com/ObjectIsAdvantag/devnetexpress-bot
  • 58. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public The Serverless Functions opportunity • Easy way to remove the Serverless burden 58 https://github.com/ObjectIsAdvantag/devnetexpress-bot
  • 59. © 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
  • 60. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Taking your bot to the next stage Machine Learning • The bot: my companion • Learn from interactions • Classify my Twitter Followers • Who’s ready to pay for it ? • Data Privacy vs Real Cost
  • 61. © 2017 Cisco and/or its affiliates. All rights reserved. Cisco Public Join the Cisco DevNet code labs https://github.com/CiscoDevNet/codemotion-rome-2017
  • 62. © 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…
  • 63. © 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