Como Programar Para Alexa
Faaala App Dev!
Estou aqui para complementar a palestra Como Programar Para Alexa, da Conferência Bots Brasil 2022.
Antes de mais nada, quem vos fala aqui é o Celso Kitamura, sou desenvolvedor de skills para Alexa e trabalho na área de desenvolvimento de software há mais de 20 anos.
O Que É Alexa?
Alexa é a assistente virtual da Amazon e chegou no Brasil em outubro de 2019.
Desde então venho estudando mais sobre ela e compartilhando minhas descobertas em um canal no YouTube.
O Que É Uma Skill Alexa?
Como já disse, a Alexa é uma assistente virtual. Mas a Alexa também é uma plataforma de voz, assim como o Android é uma plataforma móvel.
E assim como é possível desenvolver aplicativos móveis para Android, também é possível criar aplicativos de voz para Alexa.
Estes aplicativos de voz, na Alexa, são chamados de skills (habilidades em inglês).
Um nome bem apropriado, não acha? Através das skills ensinamos novas habilidades para Alexa.
O Que Eu Preciso Desenvolver Skills Para Alexa?
Uma grande sacada da Amazon foi abrir a plataforma para que qualquer desenvolvedor possa criar seu próprio aplicativo de voz para Alexa.
E uma informação bombástica! você não precisa desembolsar NADA para começar!!!
Você não precisa instalar nada no seu computador, nada de ficar instalando SDKs.
Basta fazer seu cadastro no site do desenvolvedor da Amazon.
O cadastro é gratuito, nada de taxas cadastrais ou anuais, como outras por aí.
E você não precisa pagar nada para publicar uma skill na loja da Alexa.
Arquitetura De Uma Skill Alexa
Assim como um aplicativo móvel é dividido em front-end e back-end, um aplicativo de voz também segue esta arquitetura.
O back-end de uma skill utiliza tecnologia web, ou seja, utiliza a mesma tecnologia que estamos acostumados a desenvolver desde o surgimento da internet.
A diferença está no front-end, afinal um aplicativo de voz não tem o apoio da tela, como um app móvel. O front-end de uma skill é o modelo de interação.
Sim, alguns dispositivos possuem tela (como o Echo Show), mas ela deve ser utilizada para informações complementares e não para a navegação principal do aplicativo.
O Console Do Desenvolvedor
A skill começa a tomar forma no Console do Desenvolvedor. Um site onde podemos construir nosso aplicativo de voz do zero.
Criando A Skill
Para começar a criação da skill, basta clicar no botão Create Skill.
Você verá a tela Create a new skill.
No campo Skill name você informa o nome da skill. Eu escolhi Teste Alô Mundo.
Em Primary locale vai o idioma principal da skill. No nosso caso, Portuguese (BR).
No item Choose a model to add to your skill, escolha Custom. Este modelo é o personalizado, aquele em que você pode codificar o back-end para que a skill faça praticamente qualquer coisa.
Já em Choose a method to host your skill’s backend resources, eu escolhi a opção Alexa-hosted (Node.js). Nesta opção, a Amazon irá provisionar alguns serviços da AWS para sua skill. Entre eles um Lambda em Node.js.
Clique no botão Create skill.
Agora vou selecionar um template para minha skill. Vou escolher Start from Scratch, que é nada mais que um velho conhecido dos programadores: o Hello World.
Clique no botão Continue with template e aguardamos a Amazon provisionar os recursos necessários para a skill lá na AWS.
Configurações Iniciais
Depois de esperar pelo provisionamento, veremos a tela inicial do desenvolvimento da nossa skill.
Para começar, precisamos informar por qual nome o usuário irá invocar nossa skill. Isso é feito em Invocations — Skill Invocation Name.
Neste campo, vou colocar o mesmo nome (teste alô mundo), mas aqui não é preciso incluir o mesmo nome da skill.
Ah, uma observação: aqui você precisa colocar pelo menos duas palavras, ok?
Modelo De Interação
Nesta aba Build é onde preparamos o front-end, ou seja, o modelo de interação da skill.
Em Interaction Model, precisamos cadastrar as intenções e os enunciados.
Intenção (Intent) é uma representação da ação que atende uma solicitação falada do usuário. Numa analogia bem rasa, podemos dizer que as intenções são como funcionalidades do nosso app.
Só que não temos uma tela para o usuário clicar na opção que ele deseja, então precisamos mapear frases (quanto mais melhor) que ele pode dizer para acionar essa funcionalidade. Estas frases são os Enunciados (Utterances).
Para esta demonstração não iremos alterar nada aqui, vamos deixar como o modelo veio.
Finalizando nosso front-end, vamos gravar todas as alterações feitas em Save Model e compilar nosso modelo de interação em Build Model.
Neste processo o modelo será “compilado”, sofrerá validações e será “treinado” pela Alexa.
Codificando O Back-End
O código da skill fica na aba Code.
É aqui que fica o Lamba provisionado para nós. Repare que a estrutura dele é padrão do Node.js
No arquivo index.js fica nosso código principal.
Em LaunchRequestHandler fica o código que será executado quando o usuário chamar a skill.
Repare que ao acionar a skill, a Alexa irá dizer apenas uma frase de saudação.
Pois pra esta demonstração, vamos alterá-la para “Seja bem vindo ao bots brasil 2022”.
Agora vamos gravar nossas alterações clicando no botão Save. E vamos compilar nosso back-end clicando no botão Deploy.
Testando A Skill
Chegou a hora de ver se o que fizemos até aqui está funcionando.
E dentro do próprio Console do Desenvolvedor podemos fazer isso. Podemos testar nossa skill no Simulador da Alexa.
Para isso, vamos até a aba Test.
Agora, vamos habilitar o teste para nossa skill através do combo na parte superior da tela. Precisamos deixar este combo com o valor Development.
Repare que existe uma aba chamada Alexa Simulator no canto esquerdo da tela.
É nele que testamos nossa skill.
Na caixa de texto digitamos o comando ou podemos usar nossa voz, pressionando o ícone do microfone.
Vamos digitar o comando para invocar a skill: “abra teste alô mundo”. Repare que para utilizar o simulador não precisamos da palavra de ativação “Alexa”.
Ouça e veja a resposta, que é exatamente a frase que alteramos no LaunchRequestHandler.
Publicando A Skill Na Loja Da Alexa
Para que sua skill fique disponível na loja para todos os usuários da Alexa, é necessário que ela passe por um processo de certificação.
E para isso, basta preenchermos os formulários de submissão que ficam na aba Distribution.
Nesta fase do desenvolvimento, vamos informar a Amazon como queremos que nossa skill seja apresentada aos usuários.
Devemos informar o nome público, a descrição da skill, ícones para identificação visual, frases de exemplo para que o usuário consiga utilizar a skill, política de privacidade e termos de uso.
É nesta fase também que fornecemos informações para a equipe de teste da Amazon. Por isso precisamos incluir frases e informações de acesso para serem utilizados nestes testes.
Ainda precisamos dizer para a Amazon em que países queremos que nossa skill seja publicada.
Depois de tudo isso, podemos clicar no botão Submit for review da aba Certification.
Pronto! Agora é só aguardar o retorno da equipe de certificação para ver nossa skill disponível na loja da Alexa.
Para Saber Mais
Claro que neste artigo só foi possível mostrar bem superficialmente como é possível desenvolver aplicativos de voz para Alexa.
Por isso te convido a conhecer meu canal do YouTube, o único canal brasileiro sobre desenvolvimento de skills para Alexa.
Até a próxima e…
Bora criar skills para Alexa! 👊
Veja aqui minha palestra na Conferência Bots Brasil 2022: Como Programar Para Alexa