Slide 1

Slide 1 text

Développer un chatbot avec Jérôme Van Der Linden – @jeromevdl . . 1

Slide 2

Slide 2 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Chatbot Kezako ? 2 “Un chatbot (ou agent conversationnel) est un programme informatique capable de simuler une conversation naturelle (écrite ou orale) avec un humain”

Slide 3

Slide 3 text

3

Slide 4

Slide 4 text

Architecture 4 Chatbot Moteur conversationnel Utilisateur Question de l’utilisateur Texte brut Intention / entités Réponse Moteur de langage naturel (NLU) Interprétation Formulation de la réponse SI Métier Calcul de la meilleure réponse Moteur de règles Action ou recherche d’informations API / base de données

Slide 5

Slide 5 text

5

Slide 6

Slide 6 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Ecosystème Alexa Hardware 6

Slide 7

Slide 7 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA 7 Ecosystème Alexa Software Source : https://fr.slideshare.net/AmazonWebServices/session-7-byilding-voice-enabled-alexa

Slide 8

Slide 8 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Vocabulaire Alexa 8 ¤ Skill : « compétence » de l’assistant (avec son lot de “fonctionnalités”) ¤ 1 skill ~ 1 application ¤ Intent : intention de l’utilisateur, ce qu’il souhaite obtenir de l’assistant • 1 intent ~ 1 “fonctionnalité” § Il existe des intents prédéfinis (HelpIntent, YesIntent, CancelIntent, RepeatIntent, …) § Il est possible d’en écrire des customs § Ex : “Quelle sera la météo demain à Lausanne ?” ¤ Slot / Slot type : équivalent de l’entité, sous-ensemble de l’intent donnant des éléments de contexte § 1 slot ~ 1 paramètre § Il existe des slot types prédéfinis (Artist, Color, Country, Date, Food, Movie, Sport, …) § Il est possible d’en écrire des customs ou d’en étendre des prédéfinis § Ex : “demain” (AMAZON.DATE), “Lausanne” (AMAZON.EUROPE_CITY) ¤ Sample Utterance : exemples d’énoncé d’un intent. À décliner autant que possible ! § Ex : “Quel temps fera il demain à Lausanne ?” / “Donne moi la météo pour demain à Lausanne” / “Fera- il beau demain à Lausanne ?” / “Va-t-il pleuvoir demain à Lausanne ?” / … Interaction Model

Slide 9

Slide 9 text

9

Slide 10

Slide 10 text

10 https://github.com/jeromevdl/alexa-got/ Skill « Game Of Thrones » Code source

Slide 11

Slide 11 text

Skill « Game Of Thrones » Architecture 11 user Alexa skill Lambda function Node.js Moteur de langage naturel (NLU) Moteur conversationnel CloudWatch Monitoring Availability Zone us-east-1 API JSON JSON Voice / Text https://anapioficeandfire.com/

Slide 12

Slide 12 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Skill « Game Of Thrones » Intent Schema 12 : [ { : "WhoIsIntent", : [ { : "characterslot", : "CHARACTER" } ], /* utterances */ : [ "give me information about {characterslot}", "who is {characterslot}", "tell me more about {characterslot}", "{characterslot}" ] } ] : [ { : "CHARACTER", : [ { : { : "daenerys targaryen", : [] }, {, : { : "jon snow", : [] } }, // ... } ] Moteur de langage naturel (NLU) Alexa skill

Slide 13

Slide 13 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Skill « Game Of Thrones » Event (JSON) 13 { "session": { "sessionId": "SessionId.Session1", "application": { "applicationId": "amzn1.ask.skill.xyz" }, "user": { "userId": "amzn1.ask.account.testaccount1" }, "new": true }, "request": { "type": "IntentRequest", "requestId": "615dbc98-b1a6-11e7-b212-e3c588b98480", "timestamp": "2016-05-19T01:07:55Z", "intent": { "name": "WhoIsIntent", "slots": { "characterslot": { "name": "characterslot", "value": "Jon Snow" } } }, "locale": "en-US" }, "version": "1.0" } Alexa skill Lambda function JSON

Slide 14

Slide 14 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Skill « Game Of Thrones » Event Handler 14 Lambda function Node.js Moteur conversationnel exports.handler = function (event, context) { var alexa = Alexa.handler(event, context); alexa.registerHandlers(handlers); alexa.execute(); }; var handlers = { 'WhoIsIntent' : function () { var characterSlot = this.event.request.intent.slots.characterslot; this.attributes['character'] = characterSlot.value; this.response.speak(' Hello '+ characterSlot.value) .listen('Do you want more information?'); this.emit(':responseReady'); } }

Slide 15

Slide 15 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA Skill « Game Of Thrones » Response (JSON) 15 Alexa skill Lambda function JSON { "version": "1.0", "response": { "shouldEndSession": false, "outputSpeech": { "type": "SSML", "ssml": " Hello Jon Snow " }, "reprompt": { "outputSpeech": { "type": "SSML", "ssml": " Do you want more information? " } } }, "sessionAttributes": { "character": "Jon Snow" } }

Slide 16

Slide 16 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA 16 Skill « Game Of Thrones » Live Code / Demo

Slide 17

Slide 17 text

SOFTSHAKE> CREATION D’UN CHATBOT ALEXA 17 Skill « Game Of Thrones » Tests avec Echosim.io

Slide 18

Slide 18 text

OCTO © 2017 - Reproduction interdite sans autorisation écrite préalable THERE IS A BETTER WAY OCTO RECRUTE WE NEED Y U Expertise Tribes Trust Honesty Sharing Employee First Curiosity #1

Slide 19

Slide 19 text

19