8 étapes pour développer rapidement des applications mobiles dans le cloud
Softshake 2017 - Développer un chatbot Alexa
-
Upload
jeromevdl -
Category
Engineering
-
view
133 -
download
5
Transcript of Softshake 2017 - Développer un chatbot Alexa
Développer un chatbot avec
Jérôme Van Der Linden – @jeromevdl
..
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”
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
5
SOFTSHAKE> CREATION D’UN CHATBOT ALEXA
Ecosystème AlexaHardware
6
SOFTSHAKE> CREATION D’UN CHATBOT ALEXA7
Ecosystème AlexaSoftware
Source:https://fr.slideshare.net/AmazonWebServices/session-7-byilding-voice-enabled-alexa
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 ?” / …
Inte
ract
ion
Mo
del
9
10
https://github.com/jeromevdl/alexa-got/
Skill « Game Of Thrones »Code source
Skill « Game Of Thrones »Architecture
11
user Alexa skill
Lambda function Node.js
Moteur de langage naturel (NLU)
Moteur conversationnel
CloudWatchMonitoring
AvailabilityZoneus-east-1
API
JSON
JSON
Voice/Text
https://anapioficeandfire.com/
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
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
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');}
}
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"
}}
SOFTSHAKE> CREATION D’UN CHATBOT ALEXA16
Skill « Game Of Thrones »Live Code / Demo
SOFTSHAKE> CREATION D’UN CHATBOT ALEXA17
Skill « Game Of Thrones »Tests avec Echosim.io
OCTO © 2017 - Reproduction interdite sans autorisation écrite préalable THERE IS A BETTER WAY
OCTO RECRUTE
WE NEED
Y U
Expertise Tribes
TrustHonesty
Sharing Employee First
Curiosity
#1
19