/bot

Bot de atendimento da Defensoria Pública de SP

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Rasa Boilerplate

Um projeto feito em Rasa com configurações necessárias para a construção de um projeto grande de chatbot.

Este projeto teve como base a Tais.

Bot

Variáveis de Ambiente

  • É necessário atualizar as variáveis de ambiente para executar o chatbot. Atualize seus valores nos arquivos bot.env e actions.env de acordo com as configurações do seu contexto, os arquivos estão na pasta docker.

  • Os seguintes valores são importantes para a utilização do chatbot:

    • docker/bot.env
# Analytics config
ENABLE_ANALYTICS=True
ELASTICSEARCH_URL=IP <- COLOQUE AQUI O IP DESEJADO

# HTTP login on elasticsearch
ELASTICSEARCH_USER=<usuario-elasticsearch> <- COLOQUE AQUI O USUÁRIO DE ACESSO AO ELASTICSEARCH
ELASTICSEARCH_PASSWORD=<senha-elasticsearch> <- COLOQUE AQUI A SENHA DE ACESSO AO ELASTICSEARCH
ELASTICSEARCH_HTTP_SCHEME=http
ELASTICSEARCH_PORT=9292
  • docker/actions.env
DEFENSORIA_TOKEN=<TOKEN> <- COLOQUE AQUI SEU TOKEN

Webchat

Para subir o ambiente com o webchat, rode o seguinte comando:

sudo docker-compose up bot

e abra o arquivo index.html em seu navegador.

O comando irá treinar o bot e deixa-lo na porta 3000do seu computador. O index.html possui um script que conecta com a porta 3000 com o webchat.

RocketChat

sudo docker-compose up -d rocketchat
# aguarde 3 minutos para o rocketchat terminar de levantar
sudo docker-compose up bot

Para que a assistente virtual inicie a conversa você deve criar um trigger. Para isso, entre no rocketchat como admin, e vá no painel do Livechat na seção de Triggers, clique em New Trigger. Preencha o Trigger da seguinte forma:

Enabled: Yes
Name: Start Talk
Description: Start Talk
Condition: Visitor time on site
    Value: 3
Action: Send Message
 Value: Impersonate next agent from queue
 Value: Olá!

O valor http://localhost:8080/ deve ser a URL de acesso do Bot.

Instalação

Para executar o bot em um site você precisa inserir o seguinte Javascript na sua página

<!-- Start of Rocket.Chat Livechat Script -->
<script type="text/javascript">
(function(w, d, s, u) {

    // !!! Mudar para o seu host AQUI !!!
    host = 'http://localhost:3000';
    // !!! ^^^^^^^^^^^^^^^^^^^^^^^^^^ !!!

    w.RocketChat = function(c) { w.RocketChat._.push(c) }; w.RocketChat._ = []; w.RocketChat.url = u;
    var h = d.getElementsByTagName(s)[0], j = d.createElement(s);
    j.async = true; j.src = host + '/packages/rocketchat_livechat/assets/rocketchat-livechat.min.js?_=201702160944';
    h.parentNode.insertBefore(j, h);
})(window, document, 'script', host + '/livechat');
</script>
<!-- End of Rocket.Chat Livechat Script -->

Atenção: Você precisa alterar a variavel host dentro do código acima para a url do site onde estará o seu Rocket.Chat.

Console

sudo docker-compose run --rm bot make train
sudo docker-compose run --rm bot make run-console

Train Online

sudo docker-compose run --rm bot make train
sudo docker-compose run --rm bot make train-online

Analytics

Setup

sudo docker-compose run --rm -v $PWD/analytics:/analytics bot python /analytics/setup_elastic.py
sudo docker-compose up -d elasticsearch

Lembre-se de setar as seguintes variaveis de ambiente no docker-compose.

ENVIRONMENT_NAME=localhost
BOT_VERSION=last-commit-hash

Vizualização

sudo docker-compose up -d kibana

Você pode acessar o kibana no locahost:5601

Notebooks - Análise de dados

Setup

Levante o container notebooks

docker-compose up -d notebooks

Acesse o notebook em localhost:8888

Tutorial para levantar toda a stack

sudo docker-compose up -d rocketchat

sudo docker-compose up -d kibana
sudo docker-compose run --rm -v $PWD/analytics:/analytics bot python /analytics/setup_elastic.py

sudo docker-compose up -d bot