Skip to content

Commit 891c420

Browse files
Merge pull request #82 from lappis-unb/devel
Atualização do Rasa para 1.2.2
2 parents 7ad502f + 4222720 commit 891c420

16 files changed

+197
-236
lines changed

.gitignore

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
bot/models
33
rasa_core.log
44
errors.json
5+
models/dialogue/
6+
models/nlu/current/
57

68
### Rasa evaluation ###
79
.ipynb_checkpoints/
@@ -35,10 +37,11 @@ notebooks/stories/matrix.pdf
3537
/data
3638
uploads
3739

38-
39-
### database
40+
### database ###
4041
web/postegres-data
4142

43+
### PyCharm ###
44+
.idea/
4245

4346
# Created by https://www.gitignore.io/api/vim,linux,macos,python
4447

@@ -198,6 +201,3 @@ tags
198201

199202
# End of https://www.gitignore.io/api/vim,linux,macos,python
200203

201-
models/dialogue/
202-
203-
models/nlu/current/

.gitlab-ci.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
image: python:3.6-slim
22

3+
before_script:
4+
- apt-get update --yes
5+
- apt-get install gcc
6+
37
variables:
48
BOT_IMAGE: $DOCKERHUB_USER/bot
59
COACH_IMAGE: $DOCKERHUB_USER/coach

Makefile

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,16 @@ build-bot:
22
./docker/build-base.sh
33
make train
44

5+
run-analytics:
6+
docker-compose up -d rabbitmq
7+
docker-compose up -d rabbitmq-consumer
8+
docker-compose up -d elasticsearch
9+
docker-compose run --rm -v $PWD/analytics:/analytics bot python /analytics/setup_elastic.py
10+
docker-compose up -d kibana
11+
512
train:
613
docker build . -f docker/coach.Dockerfile -t lappis/coach:boilerplate
714
docker-compose build bot
815

9-
run-telegram:
10-
docker-compose up telegram_bot
11-
1216
run-console:
1317
docker-compose run bot make run-console
14-
15-
test-dialogue:
16-
docker-compose run --rm bot make e2e

README.md

Lines changed: 38 additions & 112 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,33 @@
33
<a href="https://www.gnu.org/licenses/gpl-3.0.pt-br.html"><img src="https://img.shields.io/badge/licence-GPL3-green.svg"/></a>
44
<a href="https://codeclimate.com/github/lappis-unb/rasa-ptbr-boilerplate/maintainability"><img src="https://api.codeclimate.com/v1/badges/3fe22bf52000e147c6df/maintainability"/></a>
55

6+
## Tutorial para configurar todo o projeto
7+
8+
```sh
9+
```
10+
11+
```sh
12+
sudo docker-compose up -d rocketchat
13+
14+
sudo docker-compose up -d rabbitmq
15+
sudo docker-compose up -d rabbitmq-consumer
16+
17+
sudo docker-compose up -d elasticsearch
18+
sudo docker-compose run --rm -v $PWD/analytics:/analytics bot python /analytics/setup_elastic.py
19+
sudo docker-compose up -d kibana
20+
21+
sudo docker-compose up -d bot
22+
```
23+
24+
## Introdução
25+
626
### For English version, see [README-en](docs/README-en.md)
727

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

10-
Este projeto teve como base a [Tais](http://github.com/lappis-unb/tais).
30+
Este projeto teve como base o projeto [Tais](http://github.com/lappis-unb/tais).
1131

12-
# Entenda a Arquitetura
32+
### Entenda a Arquitetura
1333

1434
É utilizado no boilerplate diversas tecnologias que interagem entre si para obter um melhor resultado. Veja a arquitetura implementada:
1535

@@ -23,120 +43,45 @@ Os notebooks avaliam o funcionamento de acordo com o formato das *intents* e *st
2343
O elasticsearch coleta os dados da conversa e armazena para a análise feita pelo kibana, que gera gráficos para
2444
avaliação das conversas dos usuários e do boilerplate.
2545

26-
## Bot
27-
46+
### Bot
2847

2948
Este script foi configurado para construir as imagens genéricas necessárias para execução deste ambiente.
3049
Caso seu projeto utilize este boilerplate e vá realizar uma integração contínua ou similar, é interessante
31-
criar um repositório para as imagens e substitua os nomes das imagens "lappis/bot", "lappis/coach" e "lappis/botrequirements" pelas
32-
suas respectivas novas imagens, por exemplo "<organização>/bot" em repositório público.
50+
criar um repositório para as imagens e substitua os nomes das imagens "lappis/bot", e "lappis/botrequirements" pelas suas respectivas novas imagens, por exemplo "<organização>/bot" em repositório público.
3351

34-
### RocketChat
35-
Para testar o assistente virtual utilizando da plataforma do RocketChat, siga os seguintes comandos para subir os containers em seu computador:
3652

53+
### Treinamento
3754

55+
**Atenção**: o comando de treinamento é usado para criar os modelos necessários na conversação do bot para treinar o seu chatbot execute o comando:
3856
```sh
39-
sudo docker-compose up -d rocketchat
40-
41-
# Caso não vá subir a stack do Analytics
42-
# aguarde o container do rocketchat subir
43-
sudo docker-compose up -d bot
44-
```
45-
46-
Caso queira subir toda a stack e vá utilizar do analytics é necessário substituir a seguinte variável de ambiente no `docker/bot-rocketchat.env` de **False** para **True**.
47-
```
48-
# Analytics config
49-
ENABLE_ANALYTICS=True
50-
51-
# E logo após trocar, subir o container do bot
52-
sudo docker-compose up -d bot
53-
```
54-
55-
56-
Após esses comandos o RocketChat deve estar disponível na porta 3000 do seu computador. Entre em http://localhost:3000 para acessar. Será pedido que faça login. Por padrão é gerado um usuário admin: username: admin senha: admin. Nas próximas telas apenas clique na opção `Continue` e `Go to your workspace`.
57-
58-
Para configurar o bot no rocketchat e conseguir conversar com ele pelo próprio rocket, acesse o [link](http://github.com/lappis-unb/rasa-ptbr-boilerplate/tree/master/docs/add_bot_rocketchat.md).
59-
60-
61-
Opcionalmente, é possível fazer uma configuração para que o assistente virtual inicie a conversa, para isso você deve criar um `trigger`.
62-
Para criar um `trigger` entre no rocketchat como `admin`, e vá no painel do Livechat na
63-
seção de Triggers, clique em `New Trigger`. Preencha o Trigger da seguinte forma:
64-
65-
66-
```yaml
67-
Enabled: Yes
68-
Name: Start Talk
69-
Description: Start Talk
70-
Condition: Visitor time on site
71-
Value: 3
72-
Action: Send Message
73-
Value: Impersonate next agent from queue
74-
Value: Olá!
57+
sudo make train
7558
```
7659

60+
### Console
7761

78-
#### Instalação
79-
80-
Para executar o bot em um site você precisa inserir o seguinte Javascript na sua página
81-
82-
```js
83-
<!-- Start of Rocket.Chat Livechat Script -->
84-
<script type="text/javascript">
85-
// !!! Mudar para o seu host AQUI !!!
86-
host = 'http://localhost:3000';
87-
// !!! ^^^^^^^^^^^^^^^^^^^^^^^^^^ !!!
88-
(function(w, d, s, u) {
89-
w.RocketChat = function(c) { w.RocketChat._.push(c) }; w.RocketChat._ = []; w.RocketChat.url = u;
90-
var h = d.getElementsByTagName(s)[0], j = d.createElement(s);
91-
j.async = true; j.src = host + '/packages/rocketchat_livechat/assets/rocketchat-livechat.min.js?_=201702160944';
92-
h.parentNode.insertBefore(j, h);
93-
})(window, document, 'script', host + '/livechat');
94-
</script>
95-
<!-- End of Rocket.Chat Livechat Script -->
62+
```sh
63+
sudo make run-console
9664
```
9765

98-
**Atenção**: Você precisa alterar a variavel `host` dentro do código acima para a url do site onde estará o seu Rocket.Chat.
99-
10066
### Telegram
10167

10268
Após realizar o [tutorial](/docs/setup_telegram.md) de exportação de todas variávies de ambiente necessárias, é possível realizar a execução do bot no telegram corretamente.
10369

104-
<strong><em>Antes de seguir adiante. Importante:</strong></em> As variáveis de ambiente são necessárias para o correto funcionamento do bot, por isso não esqueça de exportá-las.
70+
**Antes de seguir adiante. Importante:** As variáveis de ambiente são necessárias para o correto funcionamento do bot, por isso não esqueça de exportá-las.
10571

10672
Se ainda não tiver treinado seu bot execute antes:
10773

108-
```sh
109-
make train
110-
```
111-
**Atenção**: o comando "make train" executa um container docker, caso precise de sudo em seu computador
112-
para execução docker, utilize "sudo make train".
113-
11474

11575
Depois execute o bot no telegram:
11676

11777
```sh
11878
sudo docker-compose up bot_telegram
11979
```
120-
121-
### Console
122-
123-
```sh
124-
make train
125-
sudo docker-compose run --rm bot make run-console
126-
```
127-
128-
### Train Online
129-
130-
```
131-
make train
132-
sudo docker-compose run --rm coach make train-online
133-
```
134-
135-
## Analytics
80+
### Analytics
13681

13782
Para a visualização dos dados da interação entre o usuário e o chatbot nós utilizamos uma parte da Stack do Elastic, composta pelo ElasticSearch e o Kibana. Com isso, utilizamos um broker para fazer a gerência de mensagens. Então conseguimos adicionar mensagens ao ElasticSearch independente do tipo de mensageiro que estamos utilizando.
13883

139-
#### Setup RabbitMQ
84+
### Configuração do RabbitMQ
14085

14186
Em primeiro lugar para fazer o setup do analytics é necessário subir o RabiitMQ e suas configurações.
14287

@@ -163,9 +108,7 @@ RABBITMQ_DEFAULT_PASS=admin
163108

164109
Sendo que as configurações de `RABBITMQ_DEFAULT_USER` e `RABBITMQ_DEFAULT_PASS` devem ser as mesmas definidas no serviço do `rabbitmq`.
165110

166-
167-
168-
### Execução
111+
#### Integração com Rasa
169112

170113
Existem duas formas para executar a Tais com o *broker*. A primeira delas é via linha de comando.
171114
Para utilizar esta forma é preciso definir Dentro do arquivo `endpoints.yml` as configurações do broker:
@@ -201,7 +144,7 @@ Ao final é necessário buildar novamente o container do bot.
201144
sudo docker-compose up --build -d bot
202145
```
203146

204-
### Setup ElasticSearch
147+
### Configuração ElasticSearch
205148

206149
O ElasticSearch é o serviço responsável por armazenar os dados provenientes da interação entre o usuário e o chatbot.
207150

@@ -221,12 +164,13 @@ ENVIRONMENT_NAME=localhost
221164
BOT_VERSION=last-commit-hash
222165
```
223166

224-
### Setup Kibana (Visualização)
167+
#### Setup Kibana (Visualização)
168+
225169
Para a análise dos dados das conversas com o usuário, utilize o kibana, e veja como os usuários estão interagindo com o bot, os principais assuntos, média de usuários e outras informações da análise de dados.
226170

227171
O Kibana nos auxilia com uma interface para criação de visualização para os dados armazenados nos índices do ElasticSearch.
228172

229-
```
173+
```sh
230174
sudo docker-compose up -d kibana
231175
```
232176

@@ -282,24 +226,6 @@ docker-compose up -d notebooks
282226

283227
Acesse o notebook em `localhost:8888`
284228

285-
286-
287-
## Tutorial para levantar toda a stack
288-
289-
```sh
290-
sudo docker-compose up -d rocketchat
291-
292-
sudo docker-compose up -d rabbitmq
293-
sudo docker-compose up -d rabbitmq-consumer
294-
295-
sudo docker-compose up -d elasticsearch
296-
sudo docker-compose run --rm -v $PWD/analytics:/analytics bot python /analytics/setup_elastic.py
297-
sudo docker-compose up -d kibana
298-
299-
sudo docker-compose up -d bot
300-
```
301-
302-
303229
# Como conseguir ajuda
304230

305231
Parte da documentação técnica do framework da Tais está disponível na

bot/Makefile

Lines changed: 19 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,36 @@
11
run-rocketchat:
22
make config-bot
3-
python3 run-rocketchat.py
3+
python3 run_rocketchat.py
44

55
run-telegram:
6-
python -m rasa_core.run -d /models/dialogue -u /models/nlu/current --port 5001 --credentials credentials.yml --endpoints endpoints.yml
6+
rasa run -m /models/dialogue --port 5001 --credentials credentials.yml \
7+
--endpoints endpoints.yml
78

89
config-rocket:
910
python /scripts/bot_config.py
1011

1112
run-console:
12-
python3 -m rasa_core.run -d /models/dialogue -u /models/nlu/current --debug
13+
rasa shell -m /models/dialogue -vv
1314

1415
run-console-broker:
15-
python3 -m rasa_core.run -d /models/dialogue -u /models/nlu/current --debug --endpoints endpoints.yml
16+
rasa shell -m /models/dialogue -vv --endpoints endpoints.yml
1617

1718
run-api:
18-
python3 -m rasa_core.run -d /models/dialogue -u /models/nlu/current \
19-
--endpoints endpoints.yml --debug --enable_api
20-
21-
evaluate:
22-
python3 -m rasa_core.evaluate -d /models/dialogue -s data/core/
19+
rasa run -m /models/dialogue -vv --endpoints endpoints.yml --enable_api
2320

2421
run-actions:
25-
python -m rasa_core_sdk.endpoint --actions actions
22+
rasa run actions --actions actions
2623

2724
# Force Makefile to execute e2e command every time
28-
.PHONY: all e2e clean
29-
test-dialogue:
30-
make e2e
31-
32-
e2e:
33-
python3 -m rasa_core.evaluate default --core /models/dialogue --nlu /models/nlu/current --stories e2e/e2e_stories.md --e2e
34-
35-
test-stories:
36-
python3 test_stories.py --stories e2e/e2e_stories.md --e2e
37-
38-
config-bot:
39-
python /scripts/bot_config.py -r ${ROCKETCHAT_URL} -an ${ROCKETCHAT_ADMIN_USERNAME} -ap ${ROCKETCHAT_ADMIN_PASSWORD} -bu ${ROCKETCHAT_BOT_USERNAME} -bp ${ROCKETCHAT_BOT_PASSWORD}
25+
#.PHONY: all e2e clean
26+
#test-dialogue:
27+
# make e2e
28+
#
29+
#e2e:
30+
# python3 -m rasa_core.evaluate default --core /models/dialogue --nlu /models/nlu/current --stories e2e/e2e_stories.md --e2e
31+
#
32+
#test-stories:
33+
# python3 test_stories.py --stories e2e/e2e_stories.md --e2e
34+
#
35+
#config-bot:
36+
# python /scripts/bot_config.py -r ${ROCKETCHAT_URL} -an ${ROCKETCHAT_ADMIN_USERNAME} -ap ${ROCKETCHAT_ADMIN_PASSWORD} -bu ${ROCKETCHAT_BOT_USERNAME} -bp ${ROCKETCHAT_BOT_PASSWORD}

bot/connector.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
from flask import Blueprint, request, jsonify, make_response
88

9-
from rasa_core.channels.channel import UserMessage, OutputChannel, InputChannel
9+
from rasa.core.channels.channel import UserMessage, OutputChannel, InputChannel
1010

1111
logger = logging.getLogger(__name__)
1212

bot/credentials.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,10 @@
1-
telegram:
2-
access_token: ${TELEGRAM_TOKEN}
3-
verify: ${TELEGRAM_BOT_USERNAME}
4-
webhook_url: ${TELEGRAM_WEBHOOK}
1+
#telegram:
2+
# access_token: ${TELEGRAM_TOKEN}
3+
# verify: ${TELEGRAM_BOT_USERNAME}
4+
# webhook_url: ${TELEGRAM_WEBHOOK}
5+
6+
#rocketchat:
7+
# user: ${ROCKETCHAT_BOT_USERNAME}
8+
# password: ${ROCKETCHAT_BOT_PASSWORD}
9+
# server_url: ${ROCKETCHAT_URL}
10+
File renamed without changes.

0 commit comments

Comments
 (0)