04 de Dezembro de 2022
Objetivos devem ser comandos/tarefas simples e diretas de se executar, como:
São as frases que devem ser ditas pelos usuários (mapas de declarações), como:
Ligar o exaustor da cozinha
São as "variáveis" envolvendo a requisição. Como se fosse o payload
Devolutivas do sistema para tentar obter todos os dados necessários para completar a request.
É o mecanismo que conecta todas as etapas do processo entre ativar a skill, recuperar os dados e mandar para algum servidor web (lambdas ou URLS)
Documentação oficial https://developer.amazon.com/pt-BR/alexa
Developer Console (Criar Skills) https://developer.amazon.com/alexa/console/ask
Informar nome e idioma da skill e posteriormente um template baseado no tipo de utilização. O ideal é selecionar "Customizada/Custom" para criar skill do zero. A Amazon também questiona o tipo de servidor, que pode ser dentro da AWS (node.js ou python) ou um servidor custom externo.
Ao terminar de fazer o setup, o usuário é redirecionado ao Developer Console e pode notar algumas opções no menu lateral à esquerda. Uma delas é o "Invocation" que define a frase gatilho para acionar a Skill.
-- É o processo que define os gatilhos aceitos pelo aplicativo e o que esse comando invocará em termos de funcionalidade.
-- Ao adicionar o nome da "intenção", podemos configurar os slots (como se fossem placeholders de variáveis). O Name é o valor dessa variável e o Type é um modelo de tipos da Amazon (exemplo: para números seria Amazon.Number).
-- Também podemos configurar o enunciado, que é onde invocamos a Skill. Exemplo: Somar variavel1 com variavel2. É comum termos alguns enunciados diferentes para que o sistema se adapte mais naturalmente à linguagem de diversas pessoas.
-- Ao clicar no "Nome" da intenção, é possível definir se ela será obrigatória e qual pergunta a Alexa fará ao usuário caso ele não informe o valor desejado.
O maior benefício desse recurso, é manter o código versionado localmente para podermos importar e/ou fazer um rollback de alguma versão antiga e funcional do script.
Para consulta-lo, vá em JSON Editor (dentro de Intents)
$ npm init $ npm install --save ask-sdk-core $ npm install --save ask-sdk-model
Criar o index.js com as possíveis rotas da Alexa. Um bom ponto inicial para a index.js seria termos:
const Alexa e appName, launchRequestHandler, HelpIntentHandler, CancelAndStopIntentHandler e SessionEndedRequestHandler
exports.handler = Alexa.SkillBuilders.custom().addRequestHandlers(LaunchRequestHandler,HelpIntentHandler,CancelAndStopIntentHandler,SessionEndedRequestHandler).lambda();
Basicamente cada método possui duas funções: "canHandle" e "handle"
speechText = "Echo Dot" displayText = "Echo Show"
.reprompt = Caso não obtenha resposta em 8 segundos .withSimpleCard = Aparece um bloco de texto na Echo Show
Vá para sua conta AWS (conta de cliente) e no AWS Managemente Console procure por Lambda console.aws.amazon.com -> https://us-east-2.console.aws.amazon.com/lambda/home?region=us-east-2
Ao criar a instancia do Lambda em Node.JS, é necessário adicionar um "Trigger/Gatilho" a ela, para avisar que será conectada à Alexa. O sistema pedirá o ID da Skill (que pode ser obtido na página inicial de skills)
https://developer.amazon.com/alexa/console/ask
Depois, precisamos subir um ZIP do código completo (incluindo os node_modules) para o servidor https://us-east-2.console.aws.amazon.com/lambda/home?region=us-east-2#/functions/mdmCalculator?tab=code -> Fazer Upload de (.ZIP)
Depois de ter subido a aplicação, é necessário obter o "ARN" = Amazon Resource Name que é utilizado pela Amazon para identificar um recurso em particular dentro da AWS. Copie o ARN e configure-o na tela de Skill da Alexa
É possível testar online também, através do aplicativo da Alexa ou pelo navegador https://alexa.amazon.com
-- .reprompt() Mantém a sessão do diálogo aberta. Assim não preciso dizer o comando para iniciar a Alexa novamente. -- SSML é o HTML de comandos de voz (Speech Synthesis Markup Language) , onde podemos colocar alguns tons de voz e comandos para que ela fale corretamente certas coisas (como sussurrar por exemplo)
Alexa is one of the most popular virtual assistants. Using simple voice commands, you can ask Alexa to find and read news, play music, order pizza, or control other smart home devices, from your lighting to your door locks. Alexa also offers a tremendous opportunity for developers with basic programming experience to build their own Alexa functionality, called skills. In this course, instructor Lee Assam shows how to build custom voice commands for Alexa devices using the Alexa Skills Kit and Node.js. Explore the Alexa ecosystem and the components that make up a custom Alexa skill. Learn how to configure your skill in the Amazon Developer Portal and create, code, and deploy it using Node.js, Lambda functions, and Amazon Web Services. Plus, discover how to test your skill in the browser and on an actual Alexa device, and submit a skill for certification so you can share it with other Alexa users.
Objetivos de aprendizagem
Reviewing Alexa basics Setting up your accounts and environment Identifying Alexa skills Building a custom Alexa skill Configuring skill functionality Testing skills Expanding skills Submitting a custom Alexa skill for certification