Botovodstvo



Desde o início dos anos 2000, as notícias sobre a introdução de bots de bate-papo no trabalho têm aparecido com uma frequência invejável. Neste artigo, mostrarei por onde começar e apresentarei uma visão geral das soluções existentes, além de compartilhar minha experiência na criação de um bot para o Selectel.

Âmbito de aplicação


O desenvolvimento de negócios geralmente é acompanhado não apenas pela expansão do negócio principal, mas também pela depuração dos processos de suporte. Os chatbots são apenas parte da atividade comercial como parte da automação de rotina. A comunicação e a implementação de tarefas simples do mesmo tipo estão subjacentes ao trabalho do bot de bate-papo. Com ele, você pode executar não apenas tarefas repetitivas, mas também aquelas que uma pessoa não é capaz de executar, por exemplo, monitorar atividades nas redes sociais.

Quero dar uma variedade de áreas de aplicação para bots usando o exemplo do meu próprio trabalho na Selectel. Mini-spoiler: comecei meu trabalho como escritor técnico, agora sou engenheiro no departamento de soluções em nuvem. O caminho para a implementação de assistentes virtuais começou com um bot para o departamento de marketing, que rastreia comentários e menções da empresa nas redes sociais. Esse desenvolvimento é muito simples, mas complementa efetivamente as soluções existentes no mercado, por exemplo, o serviço IFTTT .

Os seguintes desenvolvimentos em minha prática foram um chatbot interno para o departamento de RH e um bot para comunicação com clientes, apresentado como um suporte de demonstração durante as conferências SelectelTechDay em São Petersburgo e Moscou . Ambos os bots são criados usando diferentes serviços e tecnologias. E antes de mergulhar nos detalhes técnicos, considere o esquema de nível superior dos bots de dispositivos.

Os princípios básicos da botânica




A atividade do Chatbot é criada em torno de três ações principais:

  1. As informações são recebidas ou exibidas através de certos canais de comunicação, por exemplo, nas caixas de diálogo Slack ou Vk.com.
  2. O reconhecimento de intenção é uma análise abrangente das informações recebidas para formar uma resposta
  3. Processamento de ações - qualquer trabalho realizado no lado do servidor, necessário para preparar a resposta correta. Por exemplo, se uma previsão do tempo foi solicitada, uma solicitação será feita a uma determinada API sobre o clima na cidade N e os resultados desse comando serão enviados ao usuário

As principais ações dos chatbots são combinadas no âmbito da tarefa de manter o contexto, a fim de criar uma forma humanóide de comunicação e apoiar o diálogo. O chatbot deve "lembrar" o assunto da conversa e adaptar suas respostas de acordo.

A questão de conectar o chatbot às plataformas sociais se destaca separadamente. Os conectores para mensageiros instantâneos e redes sociais podem ser implementados de forma independente ou com suporte na estrutura de produtos existentes para criar bots de bate-papo.

No momento, existem muitas soluções que oferecem um serviço pronto para automatizar o suporte técnico ou os processos de vendas. Prestarei mais atenção às ferramentas que permitem criar um serviço que atenda aos requisitos internos de segurança da empresa sem complicar o processo de desenvolvimento.

Construção botânica


Os três princípios acima mencionados de chat bots (canal, análise, ação) podem ser implementados de diferentes maneiras. A opção mais fácil é comparar o texto recebido e enviar as respostas correspondentes ao usuário.



Nosso objetivo é um pouco mais alto - obter um sistema no qual você possa adicionar rapidamente novos scripts e entender o usuário na maioria dos casos.

Para fazer isso, precisamos entender do que o usuário está falando, controlar o andamento do diálogo e, em alguns casos, executar determinadas ações (por exemplo, reservar salas de reunião). Isso pode ser alcançado usando as seguintes ferramentas:

  • DialogFlow (Google)
  • Wit.ai (Facebook)
  • Serviço de Bot do Azure (Microsoft)
  • Rasa Core (código aberto)


Ao escolher um produto, os seguintes fatores são levados em consideração:

  1. Quão crítica é a colocação do código executável do bot nos sistemas existentes
    Por exemplo, no caso do Wit.ai e do Dialogflow, não controlamos completamente todo o processo - fornecemos o texto para esses aplicativos e obtemos uma resposta pronta. Usando o Rasa Core ou o Azure BotBuilder SDK, podemos armazenar toda a correspondência dentro dos limites dos sistemas internos
  2. Quantos canais de comunicação você precisa conectar
    O Dialogflow fornece a capacidade de usar um número limitado de conectores que conectam mensageiros instantâneos e redes sociais especificando chaves de acesso. Você pode usar qualquer número de canais para o Wit.ai e o Rasa Core, mas a lógica de conexão com eles deve ser implementada de forma independente (geralmente essa é uma tarefa muito trivial). O Serviço de Bot do Azure tem a capacidade de usar conectores para determinados canais, mas não está limitado a eles, e também pode ser conectado a outras fontes independentemente
  3. Quão fácil é fazer alterações na base de conhecimento de bot
    Ao criar um bot na forma de código de programa sem usar uma interface visual para interagir com ele, limitamos o círculo de pessoas que podem fazer alterações nos diálogos e respostas do bot. A funcionalidade para adicionar e editar frases deve estar disponível para todos

Para nosso assistente virtual interno do bot de bate-papo Tirex, foi escolhida uma plataforma do Google Dialogflow, que fornece a capacidade de editar visualmente intenções, e as ações são realizadas dentro de uma nuvem privada em Selectel . Os fatores determinantes foram a velocidade de início do trabalho com o bot, a segurança no envio de mensagens e a presença do canal Slack na lista de suportados.



A idéia de criar um bot de bate-papo está no ar há muito tempo, especialmente considerando que problemas poderiam ser resolvidos com ele:

  • Um aumento no número de funcionários da empresa e, com isso, um fluxo crescente de perguntas semelhantes como "Como usar uma biblioteca corporativa?" e "Onde almoçar?"
  • Reserva regular de salas de reunião e emissão de passes
  • Pesquise informações e documentos na base de conhecimento corporativa



Criar e conectar um bot no Dialogflow leva vários minutos. No início, consideraremos os princípios do chatbot no sistema e, em seguida, adicionaremos a implementação de ações complexas.

Criando um bot no Dialogflow


Criação de Arquitetura


Mais adiante, no texto, operaremos com conceitos como:

  • Intenção é uma tarefa formalizada que um usuário deseja executar.
  • Parâmetros - um conjunto de dados necessários para concluir uma tarefa
  • Resposta - uma função ou programa executado em resposta a uma intenção reconhecida
  • Frase de treinamento - um exemplo de mensagem do usuário na qual o chatbot aprende

O Dialogflow processa a linguagem natural e extrai todos os dados necessários para executar comandos complexos. Para isso, são criados agentes que contêm várias intenções . Cada uma das intenções permite que você prepare um chatbot para entender as nuances e sutilezas ao formular solicitações.

A intenção inclui frases , parâmetros e respostas de treinamento . Dentro da frase de treinamento, destacamos os parâmetros (por exemplo, hora ou local) necessários para formar a resposta correta.

A resposta é indicada intencionalmente , ou o Dialogflow envia uma solicitação ao nosso servidor, que faz o trabalho necessário e retorna a resposta ao nosso chatbot como um exemplo:

  • Para perguntas simples (por exemplo, "Temos um programa de seguro no exterior?", A resposta está na intenção
  • Para tarefas mais complexas como "Existe uma sala de chamadas grátis agora?" a resposta é formada usando uma solicitação adicional ao servidor, que determina o tempo livre para todos os participantes e salas



Trabalhe com intenções


Considere trabalhar com a Dialoglow como um exemplo de reserva de negociação. Criamos um agente de gerenciamento de reservas e determinamos as seguintes intenções:

  • Ver reservas existentes
  • Reserve uma sala de reuniões

Cada uma das intenções é invocada por frases de treinamento. Quanto mais eles são adicionados, maior a probabilidade de a ação desejada ser executada. No nosso exemplo, a intenção de "Reservar uma sala de reuniões" será causada pelas seguintes frases:

  • Reserve hoje às 23.15 por 30 minutos comigo
  • Oi Reserve uma sala de reuniões em 08/08/2018 das 15:00 às 16:00
  • Livro
  • Eu preciso de uma sala de reuniões



O princípio da coleta de dados intencional é o seguinte:

  1. Com base na entrada recebida, o Dialogflow entende qual é a intenção. No nosso exemplo - negociação de reservas
  2. Se os parâmetros necessários não foram especificados na primeira mensagem (por exemplo, o horário da reunião), o bot de bate-papo fará perguntas esclarecedoras
  3. Após receber todos os dados, o Dialogflow enviará uma solicitação ao nosso servidor na VPC para reservar a sala desejada

Vejamos esse processo em ação:



A ação é processada enviando uma solicitação com todos os dados para o endereço pré-adicionado do servidor de ação (URL do Webhook):



Há um servidor em website.ru/webhook que processa comandos complexos (em nosso exemplo, ele retorna a string "Olá do servidor!"). Github Gist para um início rápido:

# -*- coding: utf-8 -*- from flask import Flask, request, make_response, jsonify app = Flask(__name__) @app.route('/webhook', methods=['POST']) def webhook(): req = request.get_json(force=True) intent = req.get('queryResult').get('intent').get('displayName') print(intent) if intent == 'Sample intent': res = make_response(jsonify( { "fulfillmentText": "  !", } )) return res return make_response(jsonify( { "fulfillmentText": "   !", } )) if __name__ == '__main__': app.run(host='0.0.0.0', debug=True, port=5000) 

Criando um bot usando o RASA


Para usar o chatbot sem serviços de terceiros para reconhecimento de texto, você pode usar ferramentas como Rasa , que permitem controlar totalmente todo o processo do bot. Rasa é um conjunto de componentes de software de código aberto que contêm reconhecimento de fala e gerenciamento de diálogo. Você já pode ver o Boilerplate , que eu preparei para me familiarizar com a plataforma, e publicaremos instruções mais detalhadas se houver solicitações da comunidade Habr.

Chatbots e negócios


Se usar serviços de automação para atendimento ao cliente não é uma pergunta fácil. As ferramentas modernas oferecem muitas soluções ao escolher entre flexibilidade, velocidade do trabalho e segurança. Agora, os sistemas de reconhecimento de intenção em linguagem natural estão disponíveis não apenas de forma proprietária, mas também distribuídos gratuitamente, o que abre grandes oportunidades para seus próprios experimentos. Consideramos uma das opções que permite implementar rapidamente os bots de bate-papo para automatizar as mesmas tarefas da sua empresa, sem custos de capital e com trabalho mínimo. Se você já usa robôs de bate-papo em seu trabalho, compartilhe comentários nos comentários sobre suas impressões e, é claro, sobre as impressões de seus clientes.

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


All Articles