Integrando o Dialogflow a um Aplicativo Android

Nos posts anteriores sobre o Dialogflow, eu expliquei como integrar essa ferramenta a um bot de modo que a conversa entre ele e o usuário fosse mais “humana”. O bot foi desenvolvido tanto para o Telegram quanto para o Facebook Mesenger. Porém, a integração do Dialogflow não se limita aos bots.

O Dialogflow pode ser utilizado para diversas finalidades. Um exemplo é a possibilidade de integração com apps Android. Fazendo uso da capacidade de interpretação de mensagens do Dialogflow, essa junção pode viabilizar a implementação de automação residencial, por exemplo.

Com o objetivo de mostrar essa nova maneira de usar o Dialogflow, neste post, eu irei demonstrar como implementar um app Android que faz uso do Dialogflow para interpretar uma mensagem de voz e devolver o resultado da loteria de acordo com o pedido feito pelo usuário. (Em todos os exemplos aqui do blog eu uso essa ideia da loteria, então nesse não vai ser diferente =] kkkkk )

Para o desenvolvimento desse aplicativo, o primeiro passo é conhecermos o SDK do Dialogflow para o Android. Esse SDK facilita a integração com o app, uma vez que não precisamos implementar nem gerenciar as requisições HTTP “na mão”. A importação desse SDK para o projeto Android é feito através da adição das seguintes linhas no gradle:

Com o gradle sincronizado, o próximo passo é adicionar as permissões necessárias ao AndroidManifest para o nosso app poder funcionar. Sendo assim, precisaremos liberar o acesso da Internet para podermos conectar o app ao Dialogflow e liberar a gravação de áudio para a leitura do microfone. Essas permissões podem ser vistas a seguir:

Agora que o básico do app já foi configurado, podemos partir para a codificação da Activity. Nela, o primeiro passo é implementar a interface AIListener. Essa interface será responsável pelo gerenciamento dos eventos de leitura da mensagem e da resposta gerada pelo Dialogflow.

No método onCreate da Activity precisamos instanciar a AIConfiguration. Nessa classe são especificados o client_token do projeto no Dialogflow, a linguagem da mensagem a ser interpretada e mecanismo de reconhecimento.
Ainda no método onCreate devemos também instanciar a classe AIService, a qual irá permitir controlar a leitura da mensagem.
O código do método onCreate pode ser visto a seguir:

No código acima é possível notar que também foram definidos um Button e um TextView. O Button, ao ser acionado, irá chamar o método startListening da AIService para escutar o microfone do usuário. Por sua vez, o TexView irá exibir a resposta processada pelo Dialogflow.

O código completo da Activity pode ser visto abaixo:

É importante esclarecer que ao inserirmos o client_token no app, todo o comportamento “treinado” no Dialogflow será repetido no app. Portanto, quando o usuário clicar no botão e dizer “mega”, o Dialogflow interpretará como o jogo Mega-Sena e retornará o resultado. Não vou entrar em detalhes sobre como foi feito esse treinamento, uma vez que existe um post aqui no blog que fala sobre isso.

A imagem abaixo mostra a tela do app exibindo os parâmetros interpretados pelo Dialogflow e a resposta contendo o jogo da loteria solicitado pelo usuário.

Screenshot_20180205-230452

Caso você queria ver o código completo do app criado nesse post, acesse o link: Exemplo Dialogflow.

Qualquer dúvida, deixa um comentário.

 

 

 

4 comentários em “Integrando o Dialogflow a um Aplicativo Android”

  1. Fala Luiz, beleza?
    Cara, sabe dizer se o “RecognitionEngine” foi descontinuado ou algo assim?
    Tentei repetir seu código e o compilador informa que não ta encontrando a referência. “Cannot resolve symbol ‘RecognitionEngine’ ”

    //Setando as configurações
    final AIConfiguration config = new AIConfiguration(“token”,
    AIConfiguration.SupportedLanguages.PortugueseBrazil,
    AIConfiguration.RecognitionEngine.System);

    De qualquer maneira, obrigado pelo tutorial! Muito bom.

    Responder

Deixe um comentário para Luiz Marcus Cancelar resposta