Sabia que desde que a Alexa desembarcou aqui no Brasil em 2019, muita coisa mudou para nós desenvolvedores?
Nesse vídeo eu vou te mostrar de novo como criar sua primeira skill Alexa, mas dessa vez utilizando Python e o Console do Desenvolvedor de 2021.
Vamos conversar e ver o passo a passo para que você crie sua primeira skill Alexa em 2021 com Python.
Crie Sua Primeira Skill Alexa – 2021 – Python
Faz pouco mais de um ano que fiz um vídeo mostrando passo a passo como criar sua primeira skill para Alexa.
Mas de lá pra cá muita coisa foi atualizada no Console do Desenvolvedor, então resolvi mostrar novamente como criar uma skill Alexa nele.
Mas com uma diferença: desta vez vamos criar uma skill ligeiramente mais sofisticada. Ela vai perguntar o nome do usuário e logo depois cumprimentá-lo utilizando este mesmo nome.
E vamos utilizar a linguagem Python para isso. Se você quiser criar essa mesma skill em Node.js, assista este vídeo.
O único pré-requisito é você ter um cadastro de desenvolvedor na Amazon.
Se você ainda não tem, veja este vídeo que eu mostro como abrir esta conta.
Passo 1 – Crie Uma Nova Skill
O primeiro passo para criar uma skill é providenciar a estrutura do nosso aplicativo de voz.
Para isso, entre no Console do Desenvolvedor.
Criando Uma Nova Skill
Clique no botão Criar Skill
Na tela Create a new skill, preencha:
Skill name: “Minha Primeira Skill”
Default language: Português (BR)
Choose a model to add to your skill: Custom
Choose a method to host your skill’s backend resources: Alexa-hosted (Python)
Alexa Hosted é um tipo de skill onde o back-end da skill fica hospedado na nuvem da Alexa.
Clique no botão Create skill
Escolhendo Um Modelo
Na tela Choose a template to add to your skill, escolha a opção Start from Scratch.
Clique no botão Continue with template
Aguarde alguns segundos, o Console do Desenvolvedor vai provisionar os recursos necessários para a skill na nuvem da Alexa.
Quando tudo estiver pronto, você verá a seguinte tela:
Passo 2 – Crie O Modelo De Interação
O modelo de interação é o front-end do aplicativo de voz.
Defina O Nome De Invocação
Clique em Invocation.
Digite “meu primeiro teste” no campo Skill Invocation Name
Crie As Intenções
Clique em Interaction Model
Clique em Intents (6)
Clique em HelloWorldIntent em Intents
Troque o nome HelloWorldIntent para CapturaNomeIntent
Exclua todos os enunciados existentes em Sample Utterances (7) (“olá”, “como vai você”, “diga oi mundo”, “diga oi”, “oi”, “diga olá mundo”, “diga olá”) clicando no ícone da lata de lixo.
Crie Os Slots Necessários
Role a página até a área Intent Slots (0).
Aqui criamos os slots.
Digite “nomeusuario” no campo NAME, clique no sinal de + e escolha o tipo AMAZON.FirstName no combo SLOT TYPE.
Crie Os Enunciados
Volte para a área Sample Utterances (0)
Digite as frases abaixo, clicando no sinal de + para incluir cada frase:
- Meu nome é {nomeusuario}
- É {nomeusuario}
- Me chamo {nomeusuario}
Clique em Save Model para gravar as alterações feitas no modelo de interação.
Clique em Build Model para compilar e treinar o modelo de interação.
Esse processo demora alguns segundos, então espere a mensagem Build Successful aparecer.
Passo 3 – Codifique O Back-End
Chegou a hora de codificar o back-end, a parte do aplicativo onde os dados são tratados.
Clique na aba Code
Abra o arquivo lambda_function.py.
Altere O LaunchRequestHandler
Altere a frase do LaunchRequestHandler para “Bem-vindo a minha primeira skill. Qual é seu nome?”
speak_output = "Bem-vindo a minha primeira skill. Qual é seu nome?"
Altere o HelloWorldIntentHandler para CapturaNomeIntentHandler apenas para fins de padronização.
Altere o HelloWorldIntent para CapturaNomeIntent.
Essa alteração é obrigatória, senão a Alexa não vai achar o ponto de entrada. Lembra que alteramos o nome da Intent no modelo de interação?
Altere o código do CapturaNomeIntentHandler:
def handle(self, handler_input): # type: (HandlerInput) -> Response nomeusuario = handler_input.request.intent.slots['nomeusuario'] speak_output = "Oi " + nomeusuario + ", muito prazer!" return ( handler_input.response_builder .speak(speak_output) # .ask("add a reprompt if you want to keep the session open for the user to respond") .response
Este trecho de código vai capturar o valor da slot nomeusuario e armazenar na variável nomeusuario.
Depois vai formatar uma mensagem para o usuário utilizando o valor de nomeusuario.
Então a mensagem formatada será enviada para Alexa dizer ao usuário, através do .speak().
Vá até o final do código.
Este trecho do código é o SkillBuilder, é ele que encaminha as solicitações para o código que está acima.
Altere o trecho HelloWorldIntentHandler para CapturaNomeIntentHandler
Clique em Save para gravar as alterações.
Clique em Deploy para compilar o código.
Passo 4 – Teste A Skill
Chegou a hora de testar tudo o que fizemos até agora!
E para fazer esse teste utilizaremos o simulador da Alexa dentro do Console do Desenvolvedor.
Clique na aba Test
Altere o combo de Off para Development
Você pode digitar o comando ou usar a voz clicando e segurando o ícone do microfone:
Digite “abra meu primeiro teste” e tecle Enter.
Veja e ouça a resposta de saudação.
Digite seu nome, ou “é <seu nome>” e tecle Enter.
Veja e ouça a resposta.
Meus parabéns!
Você acabou de criar sua primeira skill Alexa com Python!
Agora experimente fazer este mesmo teste, mas desta vez utilizando a voz.
Palavras Finais
Acabamos de ver o passo a passo para que você crie sua primeira skill Alexa em 2021 utilizando Python.
Eu também coloquei todo este processo de desenvolvimento em um e-book que você pode baixar e ler com mais calma. Ele tem todo o passo a passo com mais detalhes para que você crie sua primeira skill Alexa em 2021. O link para você baixar este e-book é esse: http://celsokitamura.com.br/minha-primeira-skill-alexa
Se você achou muito complicado, talvez facilite se você criar antes uma skill mais simples, como o do primeiro vídeo que mostrei o passo a passo da criação de uma skill Alexa.