Custom skill

Pour créer une skill utilisez la console :

https://developer.amazon.com/alexa/console/ask

Et la plateforme Lambda :

https://eu-west-1.console.aws.amazon.com/lambda

Outil extrêmement utile pour transformer le JSON de la console ASK en JSON pour LAMBDA : https://skillinator.io/

Schéma de base :

  • L’utilisateur pose une question,
  • La “Skill” fait correspondre cette question à un “Intent” (question type) et envoie cet “Intent” à un « endpoint » qui peut être placé sur son propre serveur (mais il faut gérer le format les autorisations et certificats) soit au serveur Amazon AWS “Lambda ”
  • “Lambda” est l’endroit où les données de réponse à la question “data” sont stockées mais aussi « l’intelligence » permettant de traiter la question.
  • Enfin l’Echo annonce la réponse à l’utilisateur.

Voyons la pratique avec une skill qui permet de répondre aux questions “Alexa, dis-moi une anecdotes sur la mythologie” or “Alexa, parle-moi de la mythologie”. Dans le cas de ce test les réponses seront de deux types :

* Le nom de l’anecdote « Fact » : l’intitulé de l’anecdote,

* L’histoire de l’anecdote « Story » : le détail de l’anecdote

Mise en oeuvre:

  1. Sélectionnez « Custom » dans la page de création des skills https://developer.amazon.com/alexa/console/ask/create-new-skill
  2. Ajoutez un nom qui apparaitra dans la liste des skills d’Alexa, par exemple « mythologie »
  3. Choisissez la langue ‘FR’ et valider
  4. Choisissez une phrase pour appeler la Skill (Invocation Name) : « mythologie grecque»
  5. Cliquez sur « Build Model »
  6. Utilisez l’éditeur en ligne pour construire le modèle JSON

Les sections  « intents » comportent leur nom « name » et le texte permettant de l’invoquer « sample » ATTENTION, sans ‘ ?’ ni ‘ !’

Les intents « AMAZON. » sont par défaut et permettent d’énoncer un message d’aide ou d’arrêt :

 {
« name »: « AMAZON.CancelIntent »,
« samples »: []
},
{
« name »: « AMAZON.HelpIntent »,
« samples »: []
},
{
« name »: « AMAZON.StopIntent »,
« samples »: []
},

Pour le nouveaux « intents » il faut définir les questions types activant l’intent , les « utterances » :

 {« name »: »Fact »,« samples »:[« une anecdote sur la mythologie », »une anecdote », »mythologie »],« slots »:[]
},
{
« name »: »Story »,
« samples »:[
« raconte moi une anecdote sur la mythologie »,
« raconte une anecdote sur la mythologie »,
« dis moi une anecdote »,
« raconte la mythologie »
],
« slots »:[

]}

Les slots permettent de gérer des valeurs numériques exemple :

« slots »:[
{
« name »: »number »,
« type »: »AMAZON.NUMBER »,
« samples »:[

]

Qui peuvent être reprises dans les “sample” exemple :

« donne moi l’anecdote numéro {number} »,

Ce qui donne le JSON suivant :

{

    « interactionModel »: {

        « languageModel »: {

            « invocationName »: « mythologie grecque »,

            « intents »: [

                {

                    « name »: « AMAZON.HelpIntent »,

                    « samples »: []

                },

                {

                    « name »: « AMAZON.StopIntent »,

                    « samples »: []

                },

                {

                    « name »: « Fact »,

                    « slots »: [],

                    « samples »: [

                        « une anecdote sur la mythologie »,

                        « une anecdote »,

                        « mythologie »

                    ]

                },

                {

                    « name »: « Story »,

                    « slots »: [],

                    « samples »: [

                        « raconte moi une anecdote sur la mythologie »,

                        « raconte une anecdote sur la mythologie »,

                        « dis moi une anecdote »,

                        « raconte la mythologie »

                    ]

                }

            ],

            « types »: []

        }

    }

}

Cliquez sur le bouton en haut de l’écran « Build Model », une fois le Build réussi cliquez sur « Endpoint » pour définir le service qui va interpréter les questions. Choisissez  « AWS Lambda ARN »

Copiez la Skill ID et ouvrez la console AWS   : https://eu-west-1.console.aws.amazon.com/lambda/home?region=eu-west-1

Ou aws et cherchez « lambda »

Cliquez sur « Créez une fonction »

Puis « Plans » et recherchez « Alexa » et choisissez « alexa-skill-kit-sdk-factskill »

Donnez un nom « mythologiegrecquefonction» (que des minuscules)

Puis créez un rôle personnalisé, ne rien changer (IAM « lambda_basic_execution » et stratégie : « Créer une nouvelle stratégie ») puis « Autoriser »

Modifiez le code de la fonction en copiant le JSON dans l’utilitaire : https://skillinator.io/ et adaptez les intent ask ou tell fini la skill.

Ajoutez en déclencheur « Alexa Skill Kit » puis cliquez sur « configuration obligatoire » et collez l’ID de votre SKILL (récupérée dans la zone « End Points » de votre console ALEXA.

Enregistrez puis 

Copiez l’ARN (en haut de l’écran dans le champ default Région de la console de développement d’Amazon puis collez le dans la console ALEXA dans la zone « Default Region »

 

Tester :

 

Articles récents
Commentaires récents
fatima dans Bienvenue !
AdminDroid dans Bienvenue !
fatima dans Bienvenue !
Archives
Catégories
%d blogueurs aiment cette page :