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?
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

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.

Crie um agente

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.comDepois 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 à respostaClique em
Adicionar resposta - resposta em texto e adicione opções de resposta em texto.
Intenção de fallback padrão

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.

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.