Pacote inicial de código aberto para desenvolvimento de chatbots contextuais voltados à ambientes escolares.
- Rasa - Inteligência Artificial do Bot
- Docker - Tecnologia de conteinerização
- Docker Compose - Orquestrador de containers Docker
- Telegram - Aplicativo de mensagens instantâneas
Para testar o chatbot localmente use os seguintes comandos:
1º Passo: Para instalar clone o repositório:
git clone https://github.com/luan-github/polimata-chatbot.git
2º Passo: Treine um modelo de conversação:
Acesse o diretório rasa_server:
cd polimataBot/rasa_server
Execute:
rasa train
Ou, caso você não tenha o rasa 3.x intalado, use:
docker run --user 1000 -v $(pwd):/app rasa/rasa:3.4.1-full train --domain domain.yml --data data --out models
3º Passo: Inicie os conteiners usando o docker compose :
Volte ao diretório raiz do projeto:
cd ..
Para iniciar os containers:
docker compose up
4º Passo: Para interagir com o chatbot via terminal:
docker exec -it polimataBot rasa shell -p <porta-disponível>
Ou
docker compose exec -it rasa-server rasa shell -p <porta-disponível>
5º Passo: Para ensinar novos dialogos de forma automatizada:
docker exec -u root -it polimataBot rasa interactive -p <porta-disponível>
6º Passo: Para parar os containers:
docker compose down
1º Passo: crie um chatbot no Telegram, interagindo com o BotFather, para obter um Token de acesso e novo nome de chatbot.
2º Passo: edite o arquivo credentials.yml, na pasta rasa_server, removendo os símbolos '#' que comentam as linhas referentes a configuração do Telegram e preencha os valores dos parametros com os dados do bot criado, exemplo:
telegram:
access_token: "<XXXXXX_Token de acesso_XXXXX>"
verify: "<nome do chatbot sem o símbolo @>"
webhook_url: "<https:url_para_a_qual_o_Telegram_deve_enviar_as_mensagens>/webhooks/telegram/webhook"
Você pode usar a aplicação ngrok para gerar a url necessária acima, com o comando:
./ngrok http 5005
Para informações mais detalhadas de configuração do Telegram e outros canais acesse a documentação do framework Rasa aqui.
3º Passo: Para executar os containers:
docker compose up
Caso queira alterar os nomes dos containers no arquivo docker-compose.yml lembre-se de fazer as correspondentes alterações no arquivo endpoints.yml e demais comandos exemplificados nesta página.
Uma vez que já tenha gerado um modelo de conversação não será mais necessario acesar a pasta rasa_server via terminal para treinar o chatbot novamente. Você poderá usar:
docker exec -u root -it polimataBot rasa train --domain domain.yml --data data --out models
Toda contribuição é bem vinda, para participar você deve:
- Criar uma issue descrevendo uma funcionalidade que você gostaria de desenvolver ou contribuir com as já criadas.
- Escrever seu código, testes e documentação.
- Abrir um pull request descrevendo as suas alterações propostas.
- Aguardar que seu pull request seja revisado e que eventualmente você seja solicitado a realizar algumas alterações.
- Caso tenha dificuldades buscando informações relacionados ao projeto você também pode criar uma issue com a tag
duvida
.
- Documentação do framework Rasa - Para aprender como criar novos diálogos de forma manual ou novas funcionalidades para o chatbot.
- Rasa no youtube - Canal de divulgação da equipe que mantém o framework com tutoriais de configuração.
- Código fonte do livro Docker Para Desenvolvedores
- Livro Pro Git
Este software foi desenvolvido sob a licença GPL3.