Skip to content

vinifsouza/racom-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Racom Chatbot

Chatbot construido com o framework Rasa.

Python Rasa Scrapy Docker NodeJS TypeScript MySQL

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

Canais

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: Webchat
  • localhost:5002: Rasa API
  • localhost:5005: Rasa Server
  • localhost: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 arquivo chatbot/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 Lucidchart

Contexto da aplicação

Responsável