Dialogflower - Google Dialogflow para Yandex Alice


Há alguns meses, a Yandex lançou uma versão beta de sua assistente de voz Alice , na qual abriu sua API. E, recentemente, coloquei tudo em público. Agora, milhões de usuários podem iniciar várias funções e serviços por voz diretamente da pesquisa móvel, do navegador e do navegador Yandex. Não é de surpreender que haja cada vez mais habilidades de voz. Mas a API de diálogo pressupõe que você deve poder programar, deve ter seu próprio servidor com HTTPS e, além disso, deve poder processar solicitações em uma linguagem natural ...

Enquanto isso, o Google há muito tempo tem um designer de diálogo gratuito e bastante conveniente chamado Dialogflow. É claro que ele não suporta o protocolo de Alice imediatamente, então surgiu a idéia de corrigir essa situação para que os desenvolvedores (e não apenas) rapidamente e sem servidores criem habilidades para Alice, que pode entender a fala natural e o contexto do diálogo.

O que é o Dialogflow?


imagem

O Dialogflow é um serviço on-line do Google que permite criar seus próprios bots ou funções de bate-papo para um assistente do Google (isso é chamado de agente ). Já existem bons artigos sobre o Habré, que discutem as principais ferramentas deste produto. Aqui está um deles .

De fato, o Dialogflow pode combinar a frase de um usuário em um idioma natural (e também em russo) com algum significado "não linguístico" (chamado de intenção ) e responder a alguma coisa. Além disso, ele também mantém o contexto do diálogo para que a próxima frase possa ser reagida no contexto de observações anteriores.

A ferramenta é bastante simples de gerenciar e ainda armazena todas as estatísticas de solicitações, para que você possa treinar novamente o agente com novas intenções ou reabastecer as existentes com um clique. Na verdade, é assim que o treinamento acontece - você apenas mostra exemplos de solicitações relacionadas a uma intenção específica no seu agente e o Dialogflow cria automaticamente um modelo e entende o usuário cada vez melhor. Ele também pode selecionar algumas entidades da frase, por exemplo, datas ou cidades, se você precisar executar alguma função.

Por que é Alice?


Alice tem uma API semelhante à API do telegrama. Em outras palavras, para criar uma habilidade para Alice, você precisa criar um servidor que receberá uma solicitação de texto de Alice do usuário e responderá com os dados no formato desejado. Tudo parece ser simples, mas para criar até a habilidade mais simples, você precisará estudar o protocolo de Alice, aumentar seu servidor público com HTTPS, escrever código que possa entender a linguagem humana e manter o contexto da conversa.

Para que você não precise executar todas essas etapas todas as vezes, mas, ao mesmo tempo, se você não é um programador e precisa realmente entender a habilidade, pode usar o Dialogflow.

Dialogflower


imagem

Apenas o Dialogflow não suporta o protocolo de Alice, portanto você não pode transformar um agente em uma habilidade. Para isso, foi feito o serviço dialogflower.com , que é essencialmente um adaptador - implementa o protocolo de Alice, por um lado, e se conecta ao seu agente Dialogflow, por outro. E assim transforma o agente em uma habilidade. Sem nenhum servidor e código.

imagem

Crie um agente


imagem

Portanto, agora podemos apenas focar na lógica do próprio diálogo em nosso agente. Primeiro, você precisa criar esse mesmo agente no site dialogflow.com

Depois de entrar, seremos solicitados a criar o nome do agente e escolher seu idioma. Somente letras latinas podem ser usadas no nome e lembre-se de mudar o idioma para o russo.

Depois disso, você pode adicionar intenções - tópicos que nosso agente entenderá e de alguma forma responderá a elas.

Intenção de boas-vindas padrão


Essa intenção existe por padrão em cada agente. É acionado não em alguma frase do usuário, mas no evento de boas - vindas . Ou seja, quando um usuário lança sua habilidade em Alice com uma frase como "Iniciar a habilidade é a minha habilidade mais necessária". Ainda não há comando do usuário, e o agente em resposta, como regra, deve simplesmente dizer o que pode ser feito a seguir.

Se você clicar em Intenção de boas-vindas padrão na lista de intenções, na parte inferior da página poderá adicionar Respostas - respostas das quais o agente seleciona aleatoriamente uma de cada vez e as envia para Alice.

Alice ainda sabe como mostrar botões e links, depois mostraremos como adicioná-los à resposta

Clique em Adicionar resposta - resposta em texto e adicione opções de resposta em texto.

Intenção de fallback padrão


imagem

E essa intenção é acionada quando o usuário diz uma frase que o agente não pode atribuir a nenhuma das intenções existentes. Ou seja, quando o agente simplesmente não entende a solicitação do usuário. Aqui você também pode definir as respostas que Alice dará quando não sabemos o que responder.

Respondemos a réplicas


Se você clicar no sinal de adição ao lado da palavra Intents no menu à esquerda, poderá adicionar uma nova intenção e especificar uma lista de frases às quais precisa responder alguma coisa. Na lista Frases de treinamento , adicione as frases que o usuário provavelmente pronuncia. Quanto mais deles, melhor.

Obviamente, o Dialogflow entende inglês melhor que o russo. Portanto, não espere que ele entenda todas as frases sinônimos que sejam apropriadas em significado. A esse respeito, nosso Aimylogic analógico funciona melhor, sobre o qual falarei abaixo.

Não se esqueça de adicionar respostas à sua intenção e clique no botão Salvar . Sem ele, nada vai funcionar.
Você pode testá-lo aqui - no lado direito da tela. Escreva sua frase de teste no campo Experimente agora e veja o que seu agente respondeu.

Criar habilidade


Agora tudo está pronto para prender nosso agente criado a Alice e testá-lo no console do Yandex Dialog. Para fazer isso, vá para dialogflower.com e clique em Criar habilidade . Na janela exibida, especifique o token de acesso do cliente do seu agente. Ele pode ser encontrado na página de configurações do agente no Dialogflow. Clique em Concluir e em um segundo você terá um URL do Webhook com o qual iremos para as caixas de diálogo Yandex.

imagem

Em seguida, crie uma nova habilidade para Alice e especifique esse URL do Webhook em suas configurações. Além disso, para os testes, você só precisa criar o nome da habilidade, todos os outros campos ainda não são obrigatórios. Clique em Salvar e vá para a guia Testes . Aqui você pode escrever algo e verificar se sua habilidade está funcionando conforme o esperado.

Aumentamos a funcionalidade


Agora, nossa habilidade está pronta e todas as alterações afetarão apenas o agente no Dialogflow. Basta adicionar e alterar as intenções, não se esqueça de clicar no botão Salvar e testar o resultado no console do Yandex.Dialogs.

Como entender o contexto


O Dialogflow pode encadear intenções para que sua habilidade possa responder adequadamente a frases ditas no contexto de uma conversa. Para fazer isso, basta adicionar a intenção a outra intenção. Para fazer isso, vá para a lista de intenções e passe o mouse sobre uma delas. Uma mensagem fraca de intenção de acompanhamento de adição aparece à direita. Clique nele e adicione uma intenção que funcionará no contexto da anterior.

Ou seja, por exemplo, se você tem uma intenção que responde a frases como "Qual é o clima", pode adicionar uma intenção com frases como "amanhã". Em seguida, essa frase será processada pelo agente somente se o usuário primeiro solicitar que informe sobre o clima.

Como adicionar botões à resposta de Alice


Alice pode responder não apenas com texto, mas também mostrar botões e links. Ao clicar no botão, o usuário, por assim dizer, forma uma nova solicitação, apenas sem pronunciá-la e sem digitar.

Para adicionar botões à resposta, você precisa escrever um pedaço de JSON em um formato que Alice entenda. Para fazer isso, vá para a intenção desejada, vá para as respostas e clique em Adicionar respostas - carga útil personalizada . Aqui você pode especificar uma resposta da API Alice. Por exemplo, para adicionar botões, escreva

{"buttons": [ {"title": " ", "hide": true} ]} 


Aqui é adicionado um botão, que enviará a Alice uma solicitação "Solicitar texto" quando pressionada e desaparecerá automaticamente do histórico de bate-papo depois disso. E aqui está outro exemplo

 {"buttons": [ {"title": " ", "hide": true}, {"title": "  ", "url": "https://dialogflower.com"} ]} 


Dois botões serão adicionados aqui, um dos quais é um link para dialogflower.com

Em geral, você pode gravar qualquer JSON no Payload no formato do campo "response" do protocolo de Alice .

Onde está a lógica?


Obviamente, você nem sempre precisa responder com frases aleatórias, mas estáticas. Para adicionar alguma lógica, você precisará escrever um pequeno código. Bem, ou muito, é com você. Mas o Dialogflow permite que você faça isso sem alugar servidores.

Vá para a guia Cumprimento e ligue a opção Desativado. Aqui, você pode escrever um código Javascript que responderá conforme necessário à intenção acionada e executar algum tipo de lógica antes que a resposta seja enviada ao usuário. Na verdade, a resposta em si pode ser redefinida imediatamente no código.

Aqui não descreverei como e o que fazer com esse código; darei apenas um bom exemplo no github , no qual o agente é capaz de criar eventos no calendário do Google, gravando o usuário para consertar a bicicleta nas horas livres.

A principal vantagem aqui é que você não precisa criar um servidor separado para implementar algum tipo de lógica para seu agente. O Google fará tudo por você e de graça.

No final


Alice está sendo usada por mais e mais pessoas no país. Ela trabalha na pesquisa, no navegador e no navegador, e em breve a coluna inicial com Alice a bordo estará à venda.

Alice tem uma API e todos os dias mais e mais habilidades de voz aparecem para ela.

O Dialogflow do Google fornece uma boa ferramenta para o desenvolvimento de aplicativos de voz, mesmo sem habilidades de programação e com a possibilidade de executar seu código nos servidores do Google gratuitamente.

O Dialogflower conecta o agente no Dialogflow com Alice, para que você possa criar rapidamente habilidades e experiências.

Então qual era o problema? Além disso, o Dialogflower é tão gratuito quanto o Dialogflow com Alice.

Voar na pomada


Todas eram flores interativas, mas nem tudo é tão bonito no mundo real. Obviamente, o Dialoglfow é uma ferramenta interessante, mas em russo não funciona tão bem quanto em inglês. Até o momento, ele não entende muitos sinônimos, e eles terão que ser eliminados manualmente ao criar a intenção.

Outra desvantagem é que, no Dialogflow, é bastante difícil gerenciar um pouco de diálogo complicado. Você simplesmente não pode revisar, pois as intenções são apenas uma lista simples.

Apenas alguns dias atrás , uma ferramenta com funcionalidade semelhante foi introduzida no Habré, que também sabe entender a fala natural do russo, mas faz muito melhor, entende sinônimos, mesmo se você treinou o bot apenas com algumas frases. Ainda não existem muitos recursos do Dialogflow, como extração de entidade ou estatísticas. Mas há um editor visual bacana no qual todo o curso do diálogo com o usuário é imediatamente visível. E você pode adicionar lógica sem escrever código.

No entanto, os desenvolvedores sempre vencem uma competição animada entre os fabricantes de ferramentas para desenvolvedores.

Source: https://habr.com/ru/post/pt412863/


All Articles