Como escrevemos em nosso
primeiro artigo , nós da Just AI somos especializados em tecnologias de inteligência artificial para entender a linguagem natural (NLU). Temos nossa própria plataforma para o desenvolvimento de assistentes de conversação, tanto em texto quanto em voz. A plataforma desenvolveu uma funcionalidade para resolver problemas de PNL (cluster de log, procurar frases semanticamente fechadas etc.) e sua própria linguagem de desenvolvimento (Just AI DSL). Usando o DSL, uma equipe de desenvolvedores linguísticos escreve o código de script do chatbot, módulos de integração para comunicação com sistemas externos e testes automáticos.
Neste artigo, falaremos sobre a ferramenta que criamos para desenvolver bots para diferentes plataformas, inclusive para o Yandex Dialogs, sem conhecimento de DSL e habilidades de programação.
Projetos grandes, como um autoinformer para oferecer suporte a clientes de operadoras de telecomunicações ou um assistente de voz completo, podem incluir mais de 1000 intenções de usuários classificados, dezenas de diretórios para extrair entidades e incluir integrações com vários serviços externos. Portanto, o desenvolvimento é realizado simultaneamente por vários linguistas e desenvolvedores, usando sistemas e ferramentas de controle de versão para testes de estresse, com o envolvimento de redatores e designers de UX.
Inicialmente, tínhamos certeza de que a complexidade da abordagem de desenvolvimento é o que os desenvolvedores e as empresas de chatbot precisam, porque criar um chatbot inteligente não é uma tarefa fácil e que consome muitos recursos. Criamos uma arquitetura bastante complexa para fechar todos os casos possíveis e até criamos um editor visual na plataforma para facilitar o gerenciamento da lógica do chatbot pelos clientes. Mas, muitas vezes, na prática, continuamos a encontrar o fato de que mesmo um negócio preparado com um orçamento já planejado para automação diminui a implementação e não entende como compor corretamente um ToR e planejar corretamente a implementação da IA em seus processos.
Queríamos facilitar para as empresas começarem a trabalhar com inteligência artificial e, ao mesmo tempo, fornecer a elas uma ferramenta que nos permitisse começar imediatamente a testar a tecnologia. Ao mesmo tempo, era necessário que o produto fosse capaz de entender a linguagem natural (solicitações do usuário comum) e não responder monossilábico a perguntas comuns (“eu não entendi, repita sua pergunta”). Em geral, era necessário ocultar “sob o capô” nossas tecnologias legais da plataforma corporativa, a fim de facilitar a entrada dos negócios russos no mundo da inteligência artificial. Em geral, era necessário fabricar um produto para o usuário para que você pudesse configurar, tocar e ver como ele funciona. Portanto, o interior da plataforma estava oculto sob a casca do designer.
Se nós obtivemos sucesso ou não, é bom que você julgue (os links para registro no designer e correspondência na comunidade estão no final do artigo). Como resultado, o produto Aimylogic apareceu - um designer visual onde você pode montar um chatbot inteligente que entende a linguagem natural a partir de blocos simples: réplicas de usuários, respostas de bots, chamadas para sistemas externos. Trabalhar com o Aimylogic não requer conhecimento da plataforma principal do DSL, habilidades em padrões de escrita para reconhecer intenções e autotestes.
Caso: criando um chatbot para o departamento de RH
Hoje, analisaremos um caso bastante simples: criar um chatbot para RH, que consulta os funcionários sobre os processos internos da empresa por meio do Telegram, do site da empresa ou do Yandex.Alisa, pode aceitar aplicativos (para férias, VHI etc.) e enviá-los para o conselho no Trello.
Todo o processo pode ser dividido nas seguintes etapas:
- criar um script para um diálogo bot de RH com um funcionário da empresa;
- configuração de coleta de solicitação do usuário (usaremos o Trello);
- teste de bot;
- publicação bot no Telegram, no site ou no Yandex.Alice.
Então, as primeiras coisas primeiro ...
1. Criando um script para comunicação com funcionários
Agora, no Aimylogic, já existe um modelo de bot para RH, com diálogos sobre o projeto salarial, férias, seguros e outros problemas que o bot entenderá imediatamente. Assim, você pode usar o script pronto e, se desejar, alterá-lo por si mesmo. Descrevemos como esse modelo foi criado.
O processo de criação de um script no Aimylogic se resume a adicionar blocos e estabelecer transições entre eles.
A captura de tela acima mostra que o script bot começa com uma saudação. Para cumprimentar o usuário e explicar que perguntas ele pode fazer ao bot, usamos um bloco de texto. Você pode adicionar uma imagem.

Após criar o bloco com o texto de boas-vindas, adicionaremos o bloco "Frases" em nosso bot, o que nos permite treiná-lo usando exemplos de solicitações de usuários. No bloco "Frases", adicione grupos separados de frases que correspondam às intenções (intenções) dos usuários e preencha cada uma delas com exemplos de consultas.
Neste exemplo, criaremos vários grupos de frases:
- conexão de um projeto salarial;
- Programa corporativo da VHI;
- aplicativo de férias;
- obtenção de certificados de recursos humanos e contábeis;
- compensação de energia.
Em grupos de frases, definimos conjuntos de exemplos com base em solicitações reais dos funcionários ao departamento de RH. Por exemplo, para o grupo "Programa Corporativo da VHI", estas serão solicitações:
- Como se inscrever no DMS?
- Estou interessado em seguro de saúde
- Como obter uma política de VHI?
Grupos de frases podem ser complementados com exemplos a qualquer momento, o que permite treinar rapidamente o bot durante a operação.
Para cada grupo de frases, crie sua própria sequência de ações no script. Por exemplo, para o grupo de frases "Aplicativo de férias", implementamos uma solicitação de dados adicionais do usuário e salvamos o aplicativo no Trello para processamento adicional por um funcionário do departamento de RH.
Para solicitar dados do usuário, adicionaremos sequencialmente blocos ao script solicitando o nome do funcionário e as datas de férias desejadas.
As informações inseridas pelo usuário são armazenadas nas variáveis $ Name e $ vacation_date e ficam disponíveis para uso posterior no script. Por exemplo, para enviar esses dados para um sistema externo.
Nas versões futuras do Aimylogic para recebimento de dados de vários tipos (texto, números, número de telefone), os blocos correspondentes aparecerão no sistema, que validam automaticamente a entrada do usuário.Agora vamos configurar a integração do bot com o Trello, onde os aplicativos coletados dos usuários serão salvos.
2. Salvando Solicitações de Usuário no Trello
O Trello fornece uma API para integração com suas ferramentas, mas existem serviços, incluindo os gratuitos, que permitem usá-los sem perder tempo escrevendo um código de integração. Um desses serviços é o IFTTT. O chatbot que criamos no Aimylogic envia os dados para o IFTTT e eles aparecem no Trello.
Para fazer isso, crie um applet Webhook no IFTTT que, ao receber uma solicitação HTTP do bot, colocará os dados do corpo da solicitação no quadro do Trello. No script bot do Aimylogic, adicione o bloco "HTTP request", que transmitirá dados ao applet.
Criação de Applet
Na interface IFTTT, crie um novo miniaplicativo (Meus miniaplicativos -> Novo miniaplicativo) defina o gatilho para o miniaplicativo (clicando em
+ isto ). Na pesquisa exibida, digite "webhook" e selecione o gatilho encontrado sob o nome "Webhooks".
Clique em "Receber uma solicitação da web" e defina o nome do evento acionador (escreva-o em latim sem espaços no campo "Nome do evento"). Clique em "Criar gatilho".
Agora configuramos a ação que ocorrerá quando o bot enviar uma solicitação para o applet a partir do script que acabamos de configurar - clique em "
isso " no applet.

Configurando a integração IFTTT com o Trello
Depois de clicar em "
isso " no IFTTT, a pesquisa aparece novamente. Procuramos o Trello lá e efetuamos login neste serviço.
Depois de emitir permissões para acessar sua conta no Trello, selecione a ação "Criar um cartão" no IFTTT.
Em seguida, indique o quadro no qual os cartões aparecerão, no campo "Título" (nome do cartão), indique "Valor1" - essa é uma variável do corpo da solicitação do bot em que a essência do aplicativo do funcionário será transmitida ("<Nome do funcionário> deseja sair de férias < período de férias> ").
Clique em "Criar ação" quando tudo estiver configurado conforme necessário. Em seguida é "Concluir".
Agora, sempre que o bot envia uma solicitação HTTP para o webhook que configuramos, o IFTTT pega a variável "Value1" dessa solicitação e adiciona automaticamente um cartão com esse nome ao Trello.
Obtendo um endereço de webhook no IFTTT
Talvez essa seja a parte mais trivial da integração.
Clique no menu "Pesquisar" na parte superior da página IFTTT. Em seguida, procure por "webhook". Clique nos Webhooks encontrados. Em seguida, clique em "Configurações".
Uma página é aberta com um URL.
Este ainda não é um endereço de webhook! Você precisa copiar este URL e abri-lo em uma nova guia do navegador.
A página de teste do webhook é aberta. Aqui você pode preencher o nome do evento acionador (aquele que pensamos ao criar o applet na seção "Criando o applet") e o valor da variável "Value1". Agora, se você clicar em "Testar", um cartão com o valor da variável "Valor1" no cabeçalho será adicionado ao Trello.
Agora copie o URL resultante do webhook (na última linha, acima do botão "Testá-lo") -
este é o endereço do webhook que devemos usar na solicitação HTTP no bot.
Configurando uma Solicitação HTTP no Aimylogic
Adicionamos um bloco com uma solicitação HTTP ao script quando já coletamos dados do usuário (nas variáveis $ Name e $ vacation_date).
Nas configurações de solicitação HTTP, como URL, especificamos o endereço de webhook que recebemos do IFTTT.
Colocamos o valor da variável “Value1” no corpo da solicitação - formamos um texto com a variável $ Name, na qual o nome do usuário está armazenado, bem como a variável $ vacation_date, na qual as datas das férias são armazenadas. Ou seja, deve ficar assim:
{ "value1" : "$Name $vacation_date" }
Agora, ao executar esta solicitação, o bot substituirá os valores $ Name e $ vacation_date no corpo da solicitação e enviará a solicitação ao miniaplicativo IFTTT. Isso, por sua vez, criará um cartão no quadro do Trello.

3. Testando o bot
Depois de preparar um script de diálogo, você pode verificá-lo imediatamente no Aimylogic clicando no botão "Testar". Um widget aparecerá na tela na qual você pode conversar com o bot. O widget suporta entrada de texto e botões, se fornecido pelo script. Por exemplo, em Alice, é habitual oferecer os botões do usuário como dicas para familiarizá-lo com os recursos da habilidade.
Nesse estágio, você pode depurar o diálogo e verificar se é correto e compreensível sem usar ferramentas de prototipagem adicionais.
Observe que, graças às tecnologias NLU (incluindo sinônimos correspondentes, formas normais de palavras, suas representações vetoriais e estruturas de consulta sintática), o bot entenderá não apenas frases que correspondem aos exemplos, mas também significado próximo. Se isso não acontecer, você pode treinar o bot expandindo a lista de exemplos relevantes.
Agora o chatbot pode se comunicar com o funcionário e salvar dados no Trello. Resta colocar o bot no canal desejado.
4. Publique um chatbot
Usando o Aimylogic, o bot criado pode ser colocado em um ou vários canais. Atualmente disponível no Aimylogic: widget de bate-papo para o site, telegrama ou assistente de voz Yandex.Alice.
Em breve adicionaremos novos canais: VK, Facebook, Slack e outros. Em todos os lugares, o cenário de comportamento do bot de RH será quase o mesmo, e os aplicativos de todos os canais serão direcionados ao quadro do Trello.
Dependendo do canal selecionado, o Aimylogic gerará automaticamente um script a ser inserido no site ou no endereço do webhook para especificar em Yandex.Dialogs. Para usar o Telegram, basta indicar o token do seu bot de Telegram recebido do BotFather.
Aimylogic exibe todos os canais conectados ao bot e seus status.
Onde posso testá-lo?
Estamos abrindo o Aimylogic no modo beta. Honestamente, ainda é "úmido", mas você pode testá-lo e tentar casos diferentes: criar scripts de diálogos em diferentes canais, experimentar a conexão de sistemas externos, criar bots de perguntas frequentes com a compreensão da linguagem natural.
O lançamento da próxima versão incluirá diretórios de entidades nomeadas, o que expandirá significativamente os recursos do produto.
Começamos a criar o Aimylogic, tentando facilitar a criação de bots simples em nossa plataforma, mantendo o acesso à sua principal funcionalidade - NLU, facilidade de integração com sistemas e canais externos. Continuaremos a desenvolver o produto, melhorando seu UX, lançando novos recursos úteis da plataforma principal. Estamos ansiosos para receber comentários e sugestões.
Você pode
testar a plataforma aqui:
app.aimylogic.comVocê pode conversar conosco ou com outros desenvolvedores no
canal de telegrama . Ou simplesmente digite "Aimylogic" na pesquisa Telegram.