Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Softshake 2017 - Développer un chatbot Alexa

Softshake 2017 - Développer un chatbot Alexa

Jérôme Van Der Linden

October 27, 2017
Tweet

More Decks by Jérôme Van Der Linden

Other Decks in Programming

Transcript

  1. 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”
  2. 3

  3. 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
  4. 5

  5. SOFTSHAKE> CREATION D’UN CHATBOT ALEXA 7 Ecosystème Alexa Software Source

    : https://fr.slideshare.net/AmazonWebServices/session-7-byilding-voice-enabled-alexa
  6. 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
  7. 9

  8. 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/
  9. 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
  10. 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
  11. 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'); } }
  12. 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": "<speak> Hello Jon Snow </speak>" }, "reprompt": { "outputSpeech": { "type": "SSML", "ssml": "<speak> Do you want more information? </speak>" } } }, "sessionAttributes": { "character": "Jon Snow" } }
  13. 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
  14. 19