Skip to content
This repository has been archived by the owner. It is now read-only.

IEEEComputerSocietyUNB/Rabot.v2

Repository files navigation

Rabot

Maintainability Test Coverage

New version of a Telegram bot to help students with psychological/emotional issues during their academic years on Universidade de Brasília (UnB)

This project is aimed at all students that suffer through their academic years and might need more help than it's usually provided.

This bot is expected to run on Telegram using RASA api. It's development team is composed of psychology, computer science and engineering students. The project started in 2017 with various steps to improve the student's knowledge to be capable of building a fully-fledged bot. Latest stable version is 2.0 on another repository. Currently at version 3.0 beta, the bot has greatly changed it's architecture.

Installing locally

Download this repository and go to it's folder

git clone {this repo}
cd {this repo}

Create a virtual environment, activate it and install it's requirements

Linux:

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Windows:

python -m venv venv
.\venv\Scripts\activate
pip install -r requirements.txt

Train the bot

rasa train

Run the bot on console

rasa shell

Setting up telegram

Firstly, install ngrok and create an account, we'll use it later.

Now open your credentials.yml file and edit the telegram part with your information.

telegram:
  access_token: "274838550:AbGD_z9Z3G3ZLGzBL3bxAQxf1NS7l54sLjJ"
  verify: "{your bot's name}"
  webhook_url: "https://{ngrok's url}/webhooks/telegram/webhook"

Your access token you can get via botFather (either creating a bot or request your bot's token). The webhook url will be provided by ngrok once you run ngrok http 5005.

Be careful to not commit this part (mostly the access token). And when you do, change your access token via botFather

How to contribute

If you don't know RASA, start with their documentation. After that, you can add dialogues and improvements via Pull Request. Make sure that your Pull Requests are simple and have a clear purpose.

Timeline

v3.0.0 (est. 1 week) d: 23/03

  • Set up basic RASA bot
  • Set up Heroku
  • Set up CI/CD with Travis CI
  • Verificar possíveis instituições parceiras

v3.0.1 (est. 1 week) d: 30/03

  • Create simple dialog
  • Create commands
    • /about - Message about repository and team
    • /help - Message with emergency numbers
    • /contact - Message with all numbers available
    • /joke- Message with a simple joke to enlighten the day
  • Contactar instituições (email, telefone, reunião, etc)

v3.0.2 (est. 2 weeks) d: 06/04

  • Create first dialog from simulated environment
  • Create method to detect negative emotions
  • Create documentation with readthedocs
  • Implementação de parceira Rabot & Instituição

v3.0.3 (est. 3 weeks) d: 27/04

  • Create 3 new dialogs
  • Create method to detect positive emotions
  • Set up automatic deploy on Heroku to use in other Universities
  • Feedback das instituições

v3.0.4 (est. 4 weeks) d: 25/05

  • Create 5 more dialogs
  • Create method to recognize individual emotional level
  • Set up automatic deploy on Raspberry Pi
  • Act on institution's feedback

v3.0.5 (est. 1 week) d: 01/06

  • Battery of tests with students
  • Battery of tests with institutions
  • Improve documentation

v3.1.0 (est. 2 weeks) d: 15/06

  • Battery of tests to find possible bugs and error prone dialogs
  • Check if bot is fully-fledged
    • Can maintain coherent dialog
    • Can maintain entretaining dialog
    • Can identify user's mood
    • Can follow up on possible treatment

v3.1.1

  • Improve on 3.1.0 feedback
  • Set up bot to work with Facebook Messenger

v3.1.2 - TBD

Challenges

Obstacle: Open ended conversations, multiple choices Possibe solution: Narrow bot's questions and emulate possible answers

# SlothBot

A simple bot that identifies information from
users and stores somewhere.

## Simple chat

This bot has been created for a specific use,
each branch consists of different
behaviours. An example is `bot/pet-lover`
that understands the following dialog:

>> Oi
> Olá, qual o seu nome?
>> Meu nome é fulano.
> Prazer, fulano, eu sou o SlothBot. Você
tem algum animal de estimação? Se sim, qual
o nome e a idade dele?
>> Eu tenho um gato chamado Gato e ele tem
122 anos.
> O que eu entendi é que você tem um gato
chamado Gato e ele tem 122 anos de idade.
É isso mesmo?
>> Sim.
> Que bom, meu serviço está feito!
>> Ok

The bot has to understand the person's name
and identify if a person has a pet, if the
person does have it, the bot must register
the pet's kind, name and age.
After that, he must check with the user if
the information is correct. If yes, then
the bot has done it's purpose, otherwise
it must request the user to repeat the
information.

## Bots

Currently implemented bots are

- None

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published