SlideShare a Scribd company logo
Beyond Web Interfaces
Fabrizio Ciacchi / Spryker Systems GmbH.
2018 Spryker Systems GmbH 2
I’m Fabrizio
Software Engineer at Spryker
http://ciacchi.it - https://spryker.com
What is this talk about?
● Give you insights so you can
start to look into the best
articles, tools and books;
● Tell you real examples of
(chat/voice) bots. How to
implement them, so to solve
real problems;
● Discuss solutions and ideas
on how bots should solve
existing problems.
2018 Spryker Systems GmbH
It’s the next Far West
3
“Alexa, add soap to my shopping cart”
“I would like to see who sells shoes nearby”
2018 Spryker Systems GmbH
It’s the next Far West
4
Alexa
Hey Siri
Hey
Cortana
Ok Google
Cloud (AWS)
AI (Lex, Polly)
Machine Learning
Alexa (Voice-bot)
https://aws.amazon.com/mac
hine-learning/
Cloud (Azure)
AI & ML
Any Windows device?
https://azure.microsoft.com/en-us/o
verview/ai-platform/
Apple Watch
Siri/Assistant
Shortcuts
(not to mention Apple Car)
Google Cloud
Google Home
Tensorflow
Dialogflow
https://dialogflow.com/
Facebook
Messenger / WhatsApp
PyTorch / Wit.ai
Marketplace
https://pytorch.org/
IBM
Watson & Cloud
https://www.ibm.com/cloud/ai
2018 Spryker Systems GmbH
User Journey
5
Search - 50 results
Response - 2 sec
Checkout - 4/5 steps
10 results
300-500 msec
1-2 steps
3 results
100 msec*
1 click
Chat VS Voice
2018 Spryker Systems GmbH
Similarities
7
− Convey small information
− Users want to ask for info
− Time interaction is short
− Narrow down to intent/response
shipment
tomorrow
30
seconds
getShipmentInfo
2018 Spryker Systems GmbH
Differences
8
− Voice better for informative skills
− Voice has longer message/interactions
− Use cases are different
− Different technologies
Where is my
shipment?
It will be delivered tomorrow
shipment
tomorrow
getShipmentInfo Check (shipment) of (order)
Tell me more
DILBERT
2018 Spryker Systems GmbH
Start simple
10
− My example uses a Simple PHP Application:
Can be Symfony, Spryker or any other framework
− Botman with Regular Expressions
https://botman.io/
Lavaravel module - Open source - Works also in Symfony
https://gist.github.com/fciacchi/30bcff6d77ff40ae811740efa338adf0
− Use Docker & Ngrok
https://gist.github.com/fciacchi/0a85530efb0f05396c21778af22ff1cc
https://ngrok.com/
$ ./ngrok http -subdomain=yousubdomain -region eu 192.168.99.100:80
http://localhost:4040
2018 Spryker Systems GmbH
Conversations in PHP
11
− Then you can start grouping the
intents and the conversations
https://botman.io/2.0/conversations
2018 Spryker Systems GmbH
Backend Design
12
Build a Facebook Bot: https://blog.spryker.com/how-to-build-bot-5-steps
2018 Spryker Systems GmbH
Wit.ai
13
CONFIDENCE
2018 Spryker Systems GmbH
And a Conversation manager
14
We start with a
State machine
context-1context-2context-3
Intent xyv (sub: step 1)
Intent def (sub: step 2)
….
sessionnavigation
Next
Previous
Last
….
SESSION
Last Intent: getRestaurants
Context: context-2
Item selected: 3
Location: Berlin
Filter:
- type: sushi
- price: $$
….
2018 Spryker Systems GmbH
Example Location
15
City: Berlin
Airport: TXL, SXF
SESSION
Zip Code: 10117
Address: Friedrichstraße 43
Lat: 52.520450
Lon: 13.407320 3h
1d
Speaking of Alexa
Alexa Skill creator
172018 Spryker Systems GmbH - Fabrizio Ciacchi
https://developer.amazon.com/designing-for-voice/
Get the Skill’s JSON
182018 Spryker Systems GmbH - Fabrizio Ciacchi
https://skillinator.io/
NodeJS function 1/2
19
https://console..amazon.com/console/home
https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1#
"getCalendarByDay": function () {
var speechOutput = "I didn't understand. Can you repeat?";
var self = this;
var daySlotRaw = this.event.request.intent.slots.day.value;
console.log(daySlotRaw);
var daySlot = resolveCanonical(this.event.request.intent.slots.day);
console.log(daySlot);
var url = 'https://flybybot.eu.ngrok.io/ikarus/alexa/calendar?day='+daySlot;
2018 Spryker Systems GmbH - Fabrizio Ciacchi
Lambda function 2/2
20
...
https.get( url, function( response ) {
var str = '';
response.on('data', function (chunk) {
str += chunk;
});
response.on('end', function () {
jsonResponse = JSON.parse(str);
console.log("RESPONSE ---> " + jsonResponse.response);
self.emit(':ask', 'On ' + daySlot + ' ' + jsonResponse.response);
} );
} );
},
2018 Spryker Systems GmbH - Fabrizio Ciacchi
Model: https://gist.github.com/fciacchi/61d42439f413d8faffd4a284b2aaee99
Lambda: https://gist.github.com/fciacchi/4415a55b3dbc5eeede3bdccf76fc663e
2018 Spryker Systems GmbH
A simple Alexa skill dialog
21
2018 Spryker Systems GmbH
A simple Alexa skill dialog
22
2018 Spryker Systems GmbH
Design to a new level
23
Build Lambda function for Google and Amazon:
https://www.raizlabs.com/dev/2017/01/build-ai-assi
stant-api-ai-amazon-lambda/
API Design
2018 Spryker Systems GmbH
Use HTTP verbs
25
− There are many HTTP verbs and you can apply them on both collections or elements.
Make it simple and stick to it.
− HTTP verbs should be mapped 1-to-1 to CRUD operations.
(but use encoded IDs/structure)
2018 Spryker Systems GmbH
Use HTTP response codes
26
− There are many HTTP response codes, use it!
− 200 (GET)
− 201 + Location (POST)
− 204 (PUT/DELETE)
− 301 Moved Permanently
− 404 Resource not found (/customers/5 -> does not exists)
− 405 Method not allowed (should tell which verbs are allowed)
− 409 Conflict (try to insert twice the same resource)
− 415 Unsupported media type
− 422 Unprocessable entity (wrong payload POST)
− 500 Managed Exceptions
2018 Spryker Systems GmbH
DDD Approach
27
− Use the ‘Domain’ definition as in the Domain Driven Design to define your API:
− Customer is one domain
− Wishlist is one domain
− Cart is one domain
Interesting Reading:
https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/
30%
Saved in Wrong API Calls
− JSON API:
http://jsonapi.org/
− JWT token:
https://jwt.io/
− REST API Refactor:
https://www.slideshare.net/ciacchi/rest-api-
a-real-case-scenario
− Build REST API with
Symfony:
https://williamdurand.fr/2012/08/02/rest-api
s-with-symfony2-the-right-way/
Why design good API?
Design Tips
2018 Spryker Systems GmbH
Design tips
30
Ulrike Eisengräber @ Rasa.com
http://blog.rasa.com/13-rules-for-cui-design/
● Rule n.3: Offer Informative Feedback.
● Rule 12: Make Use Of Familiar Concepts.
● Rule 8: Reduce Short-term Memory Load.
● Rule 5: Prevent Errors & Rule 11: Have A Fallback Option
● Rule 4: Design Dialogs To Provide Closure
● But you can also try new things...
When is the next train?
What time is my appointment?
2018 Spryker Systems GmbH
VisualBots
31
DROP
Welcome
Question 1 -37%
Question 2 -4%
Question 3 0%
… 0%
Question 9 0%
https://www.visualbots.io/
Livio Marcheschi
2018 Spryker Systems GmbH
Latest News
32
https://developers.facebook.com/docs/mes
senger-platform/send-messages/personas/
FB Mess. Personas
https://techcrunch.com/2018/09/20/the-lo
ng-list-of-new-alexa-devices-amazon-ann
ounced-at-its-hardware-event/
New Alexa Devices Portal FB/Alexa
http://bit.ly/fb-portal-alexa
Machine Learning
2018 Spryker Systems GmbH
Machine Learning
34
Machine Learning For Dummies, IBM Limited Edition
2018 Spryker Systems GmbH
Links to Learn
− Facebook Developer Circle
https://www.facebook.com/groups/DevCBerlin/
− Session 1: Intro to Machine Learning
Wen-Ru Sheu / Backend Engineer @Visual Meta GmbH
http://bit.ly/ml-session-1
https://tinyurl.com/machinelearning-intro-1
− Session 2: Neural Networks
Christopher Lennan / Senior Data Scientist @Idealo.de
http://bit.ly/ml-session-2
https://tinyurl.com/machinelearning-intro-2
− Session 3: Natural Language Processing (Lennan + Sheu)
http://bit.ly/ml-session-3
https://tinyurl.com/machinelearning-intro-3
− ML 101:
http://bit.ly/machine-learning-101
− Build Intelligent Bots in Python:
https://speakerdeck.com/kprzystalski/building-intelligent-bots-in-python
− Start With NLP:
https://towardsdatascience.com/an-easy-introduction-to-natural-language-processing-b1e2801291c1
35
2018 Spryker Systems GmbH
Books
36
− https://oreil.ly/2pDdHYH https://oreil.ly/2G9ZR7d http://bit.ly/2G7Ggo4
2018 Spryker Systems GmbH
Some Examples
37
https://youtu.be/WLu6K8w8P1Q https://youtu.be/O5Jz_67iN30
https://youtu.be/elqsMF2Bd4k
spryker.com / ciacchi.it
fabrizio.ciacchi@gmail.com
twitter @sprysys @ciacchi
Thanks
http://ciacchi.it/CodeteCon-v4-2018-Ciacchi-Bot.pdf
Beyond Web
Interfaces
Fabrizio Ciacchi
Icons designed by Freepik from Flaticon

More Related Content

PPTX
Your Next App Might Just Be a Bot: Building Conversational Bots with Python
PDF
LF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
PPTX
APIStrat 2017: API Design in the Age of Bots, IoT, and Voice
PDF
Generative AI Integration: A Simple Guide
PDF
Want to integrate your business phone system or contact center with your CRM?
PDF
Future of the Web with Conversational Interface
PDF
Future Trends in Bot Development Services.pdf
PDF
“From Eliza to Siri and beyond: Promise and challenges of intelligent, langua...
Your Next App Might Just Be a Bot: Building Conversational Bots with Python
LF_APIStrat17_API Design in the Age of Bots, IoT, and Voice
APIStrat 2017: API Design in the Age of Bots, IoT, and Voice
Generative AI Integration: A Simple Guide
Want to integrate your business phone system or contact center with your CRM?
Future of the Web with Conversational Interface
Future Trends in Bot Development Services.pdf
“From Eliza to Siri and beyond: Promise and challenges of intelligent, langua...

Similar to Beyond Web Interfaces (20)

PDF
Designing Intelligent Coversations: A Chatbot Workshop
PDF
Chatbot development workshop with the Microsoft Bot Framework
PDF
API Design in the Age of Bots, IoT, and Voice
PDF
Creating Voice User interfaces from scratch
PPTX
[DEV5106] chatbots best practices and design patterns
PDF
Meetup 6/3/2017 - Artificiële Intelligentie: over chatbots & robots
PDF
What we've learned designing new Sylius API
PDF
Demystifying AI-chatbots Just add CUI to your business apps
PPTX
Digital Experiences Using a Conversational Interface
PDF
Spryker in a nutshell
PDF
Marcel Pociot "Alexa, let's build a voice-powered app"
PPTX
Guardian: A Crowd-Powered Spoken Dialog System for Web APIs
PDF
Vibe Coding_ Develop a web application using AI (1).pdf
PPTX
API Workshop Series Part 2: The Business of Bots
PDF
Building APIs That Last for Decades - Irakli Nadareishvili, Director of API S...
PDF
Designing Evolvable Web Apis With Aspnet 1st Edition Glenn Block
PPTX
Chatbots and Conversational UIs for your workplace
PPTX
Digital Transformation Services and Solutions - Chatbot Development
PDF
Chatbot workshop introduction.#digitized16
PDF
sitNL 2019 - SAP Conversational AI
Designing Intelligent Coversations: A Chatbot Workshop
Chatbot development workshop with the Microsoft Bot Framework
API Design in the Age of Bots, IoT, and Voice
Creating Voice User interfaces from scratch
[DEV5106] chatbots best practices and design patterns
Meetup 6/3/2017 - Artificiële Intelligentie: over chatbots & robots
What we've learned designing new Sylius API
Demystifying AI-chatbots Just add CUI to your business apps
Digital Experiences Using a Conversational Interface
Spryker in a nutshell
Marcel Pociot "Alexa, let's build a voice-powered app"
Guardian: A Crowd-Powered Spoken Dialog System for Web APIs
Vibe Coding_ Develop a web application using AI (1).pdf
API Workshop Series Part 2: The Business of Bots
Building APIs That Last for Decades - Irakli Nadareishvili, Director of API S...
Designing Evolvable Web Apis With Aspnet 1st Edition Glenn Block
Chatbots and Conversational UIs for your workplace
Digital Transformation Services and Solutions - Chatbot Development
Chatbot workshop introduction.#digitized16
sitNL 2019 - SAP Conversational AI
Ad

Recently uploaded (20)

PPTX
artificial intelligence overview of it and more
PDF
Tenda Login Guide: Access Your Router in 5 Easy Steps
PDF
Paper PDF World Game (s) Great Redesign.pdf
PDF
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
PPTX
Funds Management Learning Material for Beg
PPTX
international classification of diseases ICD-10 review PPT.pptx
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
SAP Ariba Sourcing PPT for learning material
DOCX
Unit-3 cyber security network security of internet system
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PPTX
presentation_pfe-universite-molay-seltan.pptx
PPT
tcp ip networks nd ip layering assotred slides
PDF
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PDF
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
PDF
Cloud-Scale Log Monitoring _ Datadog.pdf
PPTX
Slides PPTX World Game (s) Eco Economic Epochs.pptx
PPTX
newyork.pptxirantrafgshenepalchinachinane
PDF
Exploring VPS Hosting Trends for SMBs in 2025
PPTX
Introuction about WHO-FIC in ICD-10.pptx
artificial intelligence overview of it and more
Tenda Login Guide: Access Your Router in 5 Easy Steps
Paper PDF World Game (s) Great Redesign.pdf
Smart Home Technology for Health Monitoring (www.kiu.ac.ug)
Funds Management Learning Material for Beg
international classification of diseases ICD-10 review PPT.pptx
522797556-Unit-2-Temperature-measurement-1-1.pptx
SAP Ariba Sourcing PPT for learning material
Unit-3 cyber security network security of internet system
INTERNET------BASICS-------UPDATED PPT PRESENTATION
presentation_pfe-universite-molay-seltan.pptx
tcp ip networks nd ip layering assotred slides
The New Creative Director: How AI Tools for Social Media Content Creation Are...
PptxGenJS_Demo_Chart_20250317130215833.pptx
Vigrab.top – Online Tool for Downloading and Converting Social Media Videos a...
Cloud-Scale Log Monitoring _ Datadog.pdf
Slides PPTX World Game (s) Eco Economic Epochs.pptx
newyork.pptxirantrafgshenepalchinachinane
Exploring VPS Hosting Trends for SMBs in 2025
Introuction about WHO-FIC in ICD-10.pptx
Ad

Beyond Web Interfaces

  • 1. Beyond Web Interfaces Fabrizio Ciacchi / Spryker Systems GmbH.
  • 2. 2018 Spryker Systems GmbH 2 I’m Fabrizio Software Engineer at Spryker http://ciacchi.it - https://spryker.com What is this talk about? ● Give you insights so you can start to look into the best articles, tools and books; ● Tell you real examples of (chat/voice) bots. How to implement them, so to solve real problems; ● Discuss solutions and ideas on how bots should solve existing problems.
  • 3. 2018 Spryker Systems GmbH It’s the next Far West 3 “Alexa, add soap to my shopping cart” “I would like to see who sells shoes nearby”
  • 4. 2018 Spryker Systems GmbH It’s the next Far West 4 Alexa Hey Siri Hey Cortana Ok Google Cloud (AWS) AI (Lex, Polly) Machine Learning Alexa (Voice-bot) https://aws.amazon.com/mac hine-learning/ Cloud (Azure) AI & ML Any Windows device? https://azure.microsoft.com/en-us/o verview/ai-platform/ Apple Watch Siri/Assistant Shortcuts (not to mention Apple Car) Google Cloud Google Home Tensorflow Dialogflow https://dialogflow.com/ Facebook Messenger / WhatsApp PyTorch / Wit.ai Marketplace https://pytorch.org/ IBM Watson & Cloud https://www.ibm.com/cloud/ai
  • 5. 2018 Spryker Systems GmbH User Journey 5 Search - 50 results Response - 2 sec Checkout - 4/5 steps 10 results 300-500 msec 1-2 steps 3 results 100 msec* 1 click
  • 7. 2018 Spryker Systems GmbH Similarities 7 − Convey small information − Users want to ask for info − Time interaction is short − Narrow down to intent/response shipment tomorrow 30 seconds getShipmentInfo
  • 8. 2018 Spryker Systems GmbH Differences 8 − Voice better for informative skills − Voice has longer message/interactions − Use cases are different − Different technologies Where is my shipment? It will be delivered tomorrow shipment tomorrow getShipmentInfo Check (shipment) of (order)
  • 10. 2018 Spryker Systems GmbH Start simple 10 − My example uses a Simple PHP Application: Can be Symfony, Spryker or any other framework − Botman with Regular Expressions https://botman.io/ Lavaravel module - Open source - Works also in Symfony https://gist.github.com/fciacchi/30bcff6d77ff40ae811740efa338adf0 − Use Docker & Ngrok https://gist.github.com/fciacchi/0a85530efb0f05396c21778af22ff1cc https://ngrok.com/ $ ./ngrok http -subdomain=yousubdomain -region eu 192.168.99.100:80 http://localhost:4040
  • 11. 2018 Spryker Systems GmbH Conversations in PHP 11 − Then you can start grouping the intents and the conversations https://botman.io/2.0/conversations
  • 12. 2018 Spryker Systems GmbH Backend Design 12 Build a Facebook Bot: https://blog.spryker.com/how-to-build-bot-5-steps
  • 13. 2018 Spryker Systems GmbH Wit.ai 13 CONFIDENCE
  • 14. 2018 Spryker Systems GmbH And a Conversation manager 14 We start with a State machine context-1context-2context-3 Intent xyv (sub: step 1) Intent def (sub: step 2) …. sessionnavigation Next Previous Last …. SESSION Last Intent: getRestaurants Context: context-2 Item selected: 3 Location: Berlin Filter: - type: sushi - price: $$ ….
  • 15. 2018 Spryker Systems GmbH Example Location 15 City: Berlin Airport: TXL, SXF SESSION Zip Code: 10117 Address: Friedrichstraße 43 Lat: 52.520450 Lon: 13.407320 3h 1d
  • 17. Alexa Skill creator 172018 Spryker Systems GmbH - Fabrizio Ciacchi https://developer.amazon.com/designing-for-voice/
  • 18. Get the Skill’s JSON 182018 Spryker Systems GmbH - Fabrizio Ciacchi https://skillinator.io/
  • 19. NodeJS function 1/2 19 https://console..amazon.com/console/home https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1# "getCalendarByDay": function () { var speechOutput = "I didn't understand. Can you repeat?"; var self = this; var daySlotRaw = this.event.request.intent.slots.day.value; console.log(daySlotRaw); var daySlot = resolveCanonical(this.event.request.intent.slots.day); console.log(daySlot); var url = 'https://flybybot.eu.ngrok.io/ikarus/alexa/calendar?day='+daySlot; 2018 Spryker Systems GmbH - Fabrizio Ciacchi
  • 20. Lambda function 2/2 20 ... https.get( url, function( response ) { var str = ''; response.on('data', function (chunk) { str += chunk; }); response.on('end', function () { jsonResponse = JSON.parse(str); console.log("RESPONSE ---> " + jsonResponse.response); self.emit(':ask', 'On ' + daySlot + ' ' + jsonResponse.response); } ); } ); }, 2018 Spryker Systems GmbH - Fabrizio Ciacchi Model: https://gist.github.com/fciacchi/61d42439f413d8faffd4a284b2aaee99 Lambda: https://gist.github.com/fciacchi/4415a55b3dbc5eeede3bdccf76fc663e
  • 21. 2018 Spryker Systems GmbH A simple Alexa skill dialog 21
  • 22. 2018 Spryker Systems GmbH A simple Alexa skill dialog 22
  • 23. 2018 Spryker Systems GmbH Design to a new level 23 Build Lambda function for Google and Amazon: https://www.raizlabs.com/dev/2017/01/build-ai-assi stant-api-ai-amazon-lambda/
  • 25. 2018 Spryker Systems GmbH Use HTTP verbs 25 − There are many HTTP verbs and you can apply them on both collections or elements. Make it simple and stick to it. − HTTP verbs should be mapped 1-to-1 to CRUD operations. (but use encoded IDs/structure)
  • 26. 2018 Spryker Systems GmbH Use HTTP response codes 26 − There are many HTTP response codes, use it! − 200 (GET) − 201 + Location (POST) − 204 (PUT/DELETE) − 301 Moved Permanently − 404 Resource not found (/customers/5 -> does not exists) − 405 Method not allowed (should tell which verbs are allowed) − 409 Conflict (try to insert twice the same resource) − 415 Unsupported media type − 422 Unprocessable entity (wrong payload POST) − 500 Managed Exceptions
  • 27. 2018 Spryker Systems GmbH DDD Approach 27 − Use the ‘Domain’ definition as in the Domain Driven Design to define your API: − Customer is one domain − Wishlist is one domain − Cart is one domain Interesting Reading: https://herbertograca.com/2017/11/16/explicit-architecture-01-ddd-hexagonal-onion-clean-cqrs-how-i-put-it-all-together/
  • 28. 30% Saved in Wrong API Calls − JSON API: http://jsonapi.org/ − JWT token: https://jwt.io/ − REST API Refactor: https://www.slideshare.net/ciacchi/rest-api- a-real-case-scenario − Build REST API with Symfony: https://williamdurand.fr/2012/08/02/rest-api s-with-symfony2-the-right-way/ Why design good API?
  • 30. 2018 Spryker Systems GmbH Design tips 30 Ulrike Eisengräber @ Rasa.com http://blog.rasa.com/13-rules-for-cui-design/ ● Rule n.3: Offer Informative Feedback. ● Rule 12: Make Use Of Familiar Concepts. ● Rule 8: Reduce Short-term Memory Load. ● Rule 5: Prevent Errors & Rule 11: Have A Fallback Option ● Rule 4: Design Dialogs To Provide Closure ● But you can also try new things... When is the next train? What time is my appointment?
  • 31. 2018 Spryker Systems GmbH VisualBots 31 DROP Welcome Question 1 -37% Question 2 -4% Question 3 0% … 0% Question 9 0% https://www.visualbots.io/ Livio Marcheschi
  • 32. 2018 Spryker Systems GmbH Latest News 32 https://developers.facebook.com/docs/mes senger-platform/send-messages/personas/ FB Mess. Personas https://techcrunch.com/2018/09/20/the-lo ng-list-of-new-alexa-devices-amazon-ann ounced-at-its-hardware-event/ New Alexa Devices Portal FB/Alexa http://bit.ly/fb-portal-alexa
  • 34. 2018 Spryker Systems GmbH Machine Learning 34 Machine Learning For Dummies, IBM Limited Edition
  • 35. 2018 Spryker Systems GmbH Links to Learn − Facebook Developer Circle https://www.facebook.com/groups/DevCBerlin/ − Session 1: Intro to Machine Learning Wen-Ru Sheu / Backend Engineer @Visual Meta GmbH http://bit.ly/ml-session-1 https://tinyurl.com/machinelearning-intro-1 − Session 2: Neural Networks Christopher Lennan / Senior Data Scientist @Idealo.de http://bit.ly/ml-session-2 https://tinyurl.com/machinelearning-intro-2 − Session 3: Natural Language Processing (Lennan + Sheu) http://bit.ly/ml-session-3 https://tinyurl.com/machinelearning-intro-3 − ML 101: http://bit.ly/machine-learning-101 − Build Intelligent Bots in Python: https://speakerdeck.com/kprzystalski/building-intelligent-bots-in-python − Start With NLP: https://towardsdatascience.com/an-easy-introduction-to-natural-language-processing-b1e2801291c1 35
  • 36. 2018 Spryker Systems GmbH Books 36 − https://oreil.ly/2pDdHYH https://oreil.ly/2G9ZR7d http://bit.ly/2G7Ggo4
  • 37. 2018 Spryker Systems GmbH Some Examples 37 https://youtu.be/WLu6K8w8P1Q https://youtu.be/O5Jz_67iN30 https://youtu.be/elqsMF2Bd4k
  • 38. spryker.com / ciacchi.it fabrizio.ciacchi@gmail.com twitter @sprysys @ciacchi Thanks http://ciacchi.it/CodeteCon-v4-2018-Ciacchi-Bot.pdf Beyond Web Interfaces Fabrizio Ciacchi Icons designed by Freepik from Flaticon