Na publicação de hoje, vou mostrar como desenvolver um aplicativo simples para o Assistente do Google. Para desenvolver este aplicativo, vou usar o SDK de ações. A minha próxima publicação usará Dialogflow (anteriormente api.ai) em vez disso. Depois de ler os dois posts, espero que você saiba o suficiente para decidir qual abordagem é mais adequada para você.
Na minha cidade natal, eu costumo pegar o ônibus quando leva o nosso mais novo para o jardim de infância antes de ir para o trabalho. No inverno e também devido a algumas obras de rua duradouras, uma das duas linhas perto de nossa casa é bastante atrasada o tempo todo. Mas, naturalmente, sem problemas. Então, eu me pergunto todas as manhãs quando sair para o ônibus. Nós temos um aplicativo para obter informações de ônibus em Münster – mas algumas limitações deste aplicativo torná-lo não realmente adequado para a tarefa.
Assim, um aplicativo auxiliar que me diz quando os próximos ônibus são devidos e se devemos nos apressar ou se podemos ociosar um pouco mais é o que eu vou construir. A primeira versão nesta publicação com o SDK de ações. Então, na próxima publicação, vou criar uma versão melhorada com Dialogflow.
Aqui está um esboço do que uma conversa com este aplicativo deveria ser:
À direita é o que eu vou falar. À esquerda estão as respostas do assistente. O primeiro é o próprio assistente – eu alterei a cor para aquele enfatizar a diferença. O segundo eo terceiro são as respostas do aplicativo. Após a última resposta, o aplicativo termina – e com isso também a ação do assistente atual. Graças à botsociety.io, você pode até ver este site exibindo este protótipo .
O SDK de ações é uma forma de desenvolver aplicativos para o Assistente do Google. Como o nome do SDK implica, você pode criar ações que, basicamente, são trechos de fala do seu usuário e sua resposta a eles. Vamos aqui um pouco mais nos conceitos básicos.
As coisas relevantes que você precisa saber são:
Uma action
é um invólucro combinando uma intenção e a realização para essa intenção. Para um aplicativo verdadeiramente conversacional, onde há um diálogo entre o usuário e o assistente, os aplicativos têm várias ações. Mas muitas vezes faz sentido criar um aplicativo one-shot. Nesse caso, o aplicativo possui apenas uma ação e responde diretamente com a resposta que o usuário está procurando. O aplicativo de exemplo funcionaria bem como um aplicativo de one-shot. Eu apenas adicionei mais uma ação para torná-lo uma amostra melhor para esta publicação.
Já conhecemos intents
do Android. E com ações no Google, eles não são muito diferentes. Uma intenção especifica o que o usuário pretende que seu aplicativo faça.
Em contraste com o Android, no entanto, você é muito limitado quando se trata de intenções com o SDK de ações.
Cada aplicativo deve definir uma ação.inicialidade.INTA , que é usada para iniciar seu aplicativo, se nenhuma intenção personalizada for mais adequada à frase de invocação . Dependendo do seu tipo de aplicativo, essa intenção pode fornecer diretamente a resposta e depois interromper o aplicativo. Ou talvez possa apresentar o aplicativo ao usuário de alguma forma.
Para o início do seu aplicativo, você também pode definir intenções personalizadas e quais expressões de usuários desencadeiam essa intenção. Você pode até adicionar alguns parâmetros para isso (por exemplo números ou uma data). E se o Assistente detectar que uma dessas frases foi usada pelo usuário, ele inicia sua aplicação usando essa intenção.
Se você construísse um aplicativo mais complexo com o SDK de ações, você usaria uma tentativa a maior parte do tempo: actions.intent.TEXT
. Significado: você tem uma intenção que tem que lidar com quase todas as possíveis entradas de usuários. E, portanto, seu aplicativo teria que decidir o que fazer com base no texto falado ou digitado pelo usuário.
Há mais alguns intentos disponíveis. Por exemplo, android.intent.OPTION
, que é útil se você fornecer um conjunto de opções para o usuário, do qual eles podem selecionar um. Mas ao lidar com a entrada do usuário, na maioria das vezes, você teria que lidar com actions.intent.TEXT
.
Esta limitação é a razão pela qual eu escrevi na minha postagem de introdução sobre o Assistente , que o SDK de ação é principalmente útil quando você é proficiente com processamento de linguagem natural ou possui um projeto simples com uma interface de linha de comando.
A menos que você tenha algumas superpoderes de processamento de linguagem, isso se resume a isso:
Use o SDK de ações para aplicativos de uma ação. Estes são aplicativos que fornecem a resposta necessária diretamente depois de serem invocados e depois param. Eles lhe dão apenas esse resultado. Um exemplo típico seria configurar um temporizador para dez minutos.
Para todos os outros aplicativos , para aqueles que são realmente conversacionais, onde há vários caminhos a seguir e onde deseja que seu usuário forneça mais informações durante a conversa, eu recomendo usar Dialogflow (api.ai) em vez do SDK de ações. Eu abordarei Dialogflow na minha próxima publicação.
Fulfillment
é apenas mais uma palavra para o seu backend. Toda ação deve ser apoiada por algum backend seu. Aqui é onde você gera o texto falado ao usuário. Ou – em dispositivos que possuem uma interface de usuário gráfica – é aí que você cria pistas visuais para seu usuário.
Claro, a resposta é baseada em qual intenção foi desencadeada e quais pistas adicionais o usuário deu em sua pergunta.
Quando o Google chama seu backend, ele fornece um arquivo JSON que contém muitas informações, como você verá mais adiante nesta publicação. Algumas das coisas para as quais você acessa:
Nesta publicação, só vou fazer uso de alguns deles, mas abordarei mais aspectos em futuras postagens.
A próxima imagem mostra onde seu aplicativo – ou mais precisamente, seu código de realização – se encaixa na imagem geral. O assistente sabe qual aplicativo chamar com base na frase de invocação usada pelo usuário. Ele também fornece reconhecimento de voz das expressões de usuários e transformação de texto para fala de suas respostas para o usuário. Seu aplicativo então leva o texto reconhecido e cria uma resposta adequada para isso.
Quando você deseja usar as ações no Google, sua conta deve estar preparada para isso. Você tem que fazer três coisas:
gactions
gactions
Nos próximos parágrafos, vou abordar esses passos.
O primeiro passo é usar o Dev Console para criar um projeto. Se for o seu primeiro projeto, verifique os termos dos serviços – pois ao clicar no botão “Criar projeto” você significa aderir a eles:
Depois, você precisa decidir qual API usar para construir seu projeto:
Como você pode ver, existem três maneiras proeminentes de desenvolver aplicativos: o SDK de ações ou um dos dois serviços Dialogflow ou Converse AI. Se você clicar em “Ações SDK”, você verá um pequeno popup onde você pode copiar um comando de gactions
. Então, o próximo passo é instalar a ferramenta de linha de comando gactions
.
Você pode baixar a ferramenta gactions no site do Google . É um arquivo binário que você pode armazenar, onde quiser. Certifique-se de tornar este arquivo executável (se você estiver usando o Linux ou o Mac OS X) e – já que você vai usar muito essa ferramenta – eu recomendo adicioná-lo ao seu CAMINHO.
Se você já instalou esta ferramenta, você pode usar a opção selfupdate
-atualização para atualizá-la:
Isso é tudo o que é necessário nesta etapa.
O último passo é simplesmente inicializar o seu projeto. Depois, você está configurado para começar a desenvolver ações usando o SDK de ações.
Simplesmente crie alguma pasta na qual você deseja criar o projeto e depois mudar para esta pasta.
Dentro desta pasta, digite
gittions init
gactions
antes, exigirá autorização para acessar o Console de Ações. Basta seguir as etapas descritas na linha de comando. Depois de colar seu código de autorização na linha de comando, o Google obtém o seu token de acesso usado para toda a comunicação posterior entre a ferramenta gactions
e o Console de ações. Se você quiser usar outra conta, basta remover o arquivo creds.data
.O comando gactions init
criará um arquivo chamado action.json
. Este arquivo contém a configuração do seu projeto. No seu estado atual, seu conteúdo não é válido. Ele contém uma abundância de <INSERT YOUR ... HERE>
marcadores. Você vai preencher esses itens no restante deste post.
Com isso, você terminou os preparativos e é bom ir. Então vamos começar a criar uma ação.
Criar este projeto foi divertido. Mas também evidenciou as limitações atuais com a abordagem SDK das Ações. Para julgar por si mesmo, dê uma olhada no arquivo do timetable-usecase.js
. Essa não é a melhor e mais flexível maneira de reagir às frases dos usuários
Assim, para qualquer coisa que não seja um aplicativo de tiro, eu recomendo usar Dialogflow. Em uma das minhas próximas postagens, vou melhorar esse aplicativo ao mudar para o Dialogflow.
Ok, Google , querido leitor, o que você está fazendo com isso? O que você vai fazer com o SDK de ações? Por favor deixe-me saber.
Até a próxima vez!