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.

Copiez l’ARN (en haut de l’écran dans le champ default Région de la console de développement d’Amazon

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.

Tester :

 

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