Racom Chatbot
Chatbot construido com o framework Rasa.
Como executar
Necessário instalar Docker e Docker Compose.
Para inicializar a aplicação, basta executar o comando abaixo na raiz do projeto:
docker-compose up
Cainais
- Telegram: @racom_bot
- Webchat: :4445
Portas utilizadas
localhost:
3306
: Racom Banco de dados (MySQL)localhost:
4040
: Túnel de conexão (Ngrok)localhost:
4444
: Racom API (Node.js)localhost:
4445
: Webchatlocalhost:
5002
: Rasa APIlocalhost:
5005
: Rasa Serverlocalhost:
5055
: Rasa Action Server
Observações
-
Ao executar a aplicação, o server do chatbot irá ser executado na porta
:5005
e irá criar um túnel nessa porta para que o server possa ser acessado através da rede externa, em vez de somente local. -
Quando Ngrok executa, ele gera uma URL aleatória. O arquivo
/chatbot/main.py
chamará o módulo/chatbot/support/set_telegram_config.py
que irá extrair essa URL e atualizar o arquivochatbot/credentials.yml
em tempo de execução, definido a variável$TELEGRAM_URL
com este valor. Com isso, o chatbot poderá ser utilizado no Telegram sem necessidade de outra configuração. -
A penúltima etapa da execução é treinamento do modelo. O output do progresso de treinamento é incompatível com o terminal do Docker, por isso pode parecer que o build travou na mensagem
Training NLU model...
mas está sendo executado em segundo plano.
Estrutura
Aplicações
-
faq: Aplicação que utiliza o framework Scrapy para extrair os FAQs do site da Fiocruz e alimentar o banco de dados com as informações extraídas.
-
api: Aplicação em TypeScript e Node.js para integração do banco de dados com o chatbot
-
chatbot: Chatbot construído em Rasa para atendimento automatizado para auxílio de dúvidas sobre Coronavírus.
Diretórios
.
├── api - Diretório da API para comunicação com o banco de dados
├── chatbot - Diretório de instalação do Rasa
├── faq - Diretório para scrapping e alimentação do banco de dados com FAQs
Banco de dados
├── TFAQ - Armazena FAQs extraídos do site da Fiocruz
├── TCategory - Armazena categoria dos FAQs
├── TUnrecognizedMessage - Armazena mensagens não reconhecidas pelo chatbot
Diagramas
Documentação C4
Responsável
- Vinícius Souza <[email protected]>