Edu
November 27, 2018 · View on GitHub
Edu
O Edu é o robô de atendimento virtual da SME.
Atualmente, o robô permite aos usuários:
- saber o cardápio das escolas;
- fornecer feedback sobre a refeição; e
- se cadastrar para receber notificações
Arquitetura

Dependências
- rabbitmq
- mongodb
- python 3
- pacotes python (listados em
conf/requirements.txt) - api pratoaberto
O Edu usa também:
- miniconda, como gestor de pacotes e ambientes python
- nginx, como servidor web
- supervisor, como gestor de processos
Plataformas de chat
O edu suporta as seguintes plataformas:
Note que:
- Será necessário gerar tokens de acesso à plataforma que desejar suportar, e adicionar ao arquivo
conf/bot.conf - O facebook requer um certificado válido na máquina que receber o webHook
Coleções do mongodb
O Edu possui três coleções:
- messages_meta, guarda informações das mensagens armazenadas nas filas
- users, guarda informações dos perfis que já interagiram com o robo
- chats, guarda informações sobre as interações dos usuários
Monitoria
O rabbitmq dispõe de um plugin de administração que também inclui uma interface web. Mais informações na documentação.
As filas de tarefa do Celery podem ser monitoradas através do flower.
Rodando localmente
-
Atualize
conf/bot.confcom os apontamentos locais e tokens necessários e gerencie os status dos componentes com o supervisor (um arquivo de configuração está disponível emconf/supervisor.edu.conf) -
Os webHooks podem ser servidos diretamente através do ngrok ou serveo. Com serveo:
[PYTHON_ENV]/python webhooks.pyessh -R 80:localhost:5001 serveo.net -
A API serve os dados sobre escolas e refeições. Veja mais sobre a API no repositório do projeto.
-
Para executar o message broker:
sudo rabbitmq-server start -
Para executar os workers:
[PYTHON_ENV]/celery -A chat_processor worker --loglevel=info