Skip to content

ufca-es/Eco-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 

Repository files navigation

♻️ EcoBot – ChatBot Instrutor de Reciclagem

Equipe GitHub
Leôncio Ferreira Flores Neto @LeoncioFerreira
Alan Mendes Vieira @alan-mendes-ufca
Grazielly Bibiano do Nascimento @graziellybn
Antônio Pereira da Luz Neto @netoo-444

📌 Descrição:

Este projeto é um chatbot educativo desenvolvido em Python com Streamlit que ensina sobre reciclagem de materiais. Além disso, o bot possui personalidades diferentes (formal, engraçada e rude), que afetam o tom da resposta, mas não o conteúdo.

🎯 Objetivos do Projeto

  • Ensinar de forma interativa como reciclar diferentes tipos de materiais.
  • Incentivar a conscientização ambiental através da tecnologia.
  • Demonstrar conceitos de programação aplicada a um caso real.

🛠️ Tecnologias Utilizadas

  • ✅ Python 3
  • ✅ Streamlit (Interface gráfica)
  • ✅ Dicionário de dados
  • ✅ Manipulação de arquivos .txt
  • ✅ Programação Orientada a Objetos (POO)

📚 Modos de Resposta (Personalidades)

O EcoBot pode responder de diferentes formas, dependendo da personalidade escolhida pelo usuário:

🧑‍🎓 Formal

  • Fornece respostas educadas e detalhadas.
  • Ideal para contextos acadêmicos ou explicativos.
  • Exemplo: “Para reciclar uma garrafa PET, lave-a, retire o rótulo e leve a um ponto de coleta adequado.”

😂 Engraçado

  • Responde de maneira leve, com humor e gírias.
  • Torna a interação mais descontraída.
  • Exemplo: “Dá um banho na PET, tira a roupinha (rótulo) e manda pro ponto de coleta. Simples assim!”

😒 Rude

  • Responde de forma direta e impaciente.
  • Curtas e objetivas, sem rodeios.
  • Exemplo: “Lava, tira o rótulo e leva pra reciclagem. Pronto.”

O usuário escolhe a personalidade ao iniciar o sistema e pode trocá-la durante a execução. O sistema mantém um contador de uso de cada personalidade e registra em arquivo.


🗂️ Estrutura de Arquivos

📦 Ecobot
├── 📂 chatbot_data
│   ├── 🕓 history.txt                # Histórico das interações anteriores
│   ├── 🧠 learning_responses.json    # Base de conhecimento aprendida pelo bot
│   ├── ❓ questions.json              # Perguntas e respostas predefinidas
│   └── 📄 relatorio.txt              # Relatório final da sessão do usuário
│
├── 🧩 classes
│   ├── 📊 chatbot_analytics.py        # Coleta estatísticas de uso do EcoBot
│   ├── 💬 chatbot_frequent_questions.py # Gerencia perguntas mais frequentes
│   ├── 🧠 chatbot_learning.py         # Sistema de aprendizado (modo ensinar)
│   ├── 🧾 chatbot_memory.py           # Armazena e lê o histórico de conversas
│   ├── 🤖 chatbot.py                  # Classe principal do chatbot
│   ├── 💭 chatbot_reply.py            # Define respostas por personalidade
│   ├── 📃 chatbot_report.py           # Gera relatório detalhado de interações
│   └── ⚙️ __init__.py                # Indica módulo Python
│
├── 🧰 helpers.py                      # Funções auxiliares e utilitárias
├── 🚀 main.py                         # Arquivo principal para execução no terminal
├── 📋 requirements.txt                # Dependências do projeto
│
├── 🧪 test
│   └── 🧩 test_reply.py               # Testa respostas conforme personalidade
│
└── 📘 README.md                       # Documentação principal do projeto

🚀 Como Executar

  1. Clone este repositório:

    1.1 git clone https://github.com/ufca-es/Eco-bot.git
    1.2 cd ecobot/Ecobot
    exemplo: cd "/home/pc/Desktop/teste_final/Eco-bot/Ecobot"
  2. Criar ambiente virtual (recomendado)

    2.1python3 -m venv venv
    
    2.2 source venv/bin/activate   # Linux/Mac
    2.2 venv\Scripts\activate      # Windows (PowerShell)
  3. Instalar dependências

   3.1 pip install -r requirements.txt
  1. Executar a versão com Streamlit (interface gráfica)
   4.1 streamlit run app.py

Tasks atribuídas

Leôncio → Task 05 → Configuração do repositório no GitHub (estrutura básica, README inicial ) e interface

Alan + Leôncio → Task 09 (respostas aleatórias para mesma pergunta)

Alan → Task 08 (mudança de personalidade durante a execução)

Neto → Task 10 (persistência de aprendizado)

Grazy → Task 11 (ler histórico anterior ao iniciar o programa) + Task 12 (salvar histórico da sessão)

Alan → Task 13 (coletar estatísticas: total de interações, pergunta mais feita, uso de personalidades) + Task 16 (organização final das classes/módulos)

Neto → Task 14 (gerar relatório legível – relatorio.txt)

Grazy → Task 15 (exibir sugestões de perguntas frequentes)

  • As demais tasks todos contribuíram.

    ✍️Guias De Uso / Funcionalidades - Prompt

  • Após executar o "python main.py", irá aparecer as personalidade e qual o usuário pode escolher.

image
  • Após a sua escolha de personalidade, o EcoBot mostrará as 5 interações anteriores, junto com as perguntas mais frequentes.
image
  • Exemplos de uso da personalidade "engracada" após digitar "Olá"
image
  • Caso o usuário queira mudar a personalidade durante a execução do bot, ele deve digitar algo relacionado a "Mudar personalidade", e logo após aparecerá a escolha inical de personalidade do EcoBot, segue o exemplo:
image
  • Após o usuário terminar suas internações, e escrevera palavra "sair" (ou palavras relacionadas a se despedir) o ChatBot irá gerar um resumo das interações do usuário com o ChatBot

  • Você pode acessar esse relatório que ficará salvo dentro da pasta responses em um arquivo .txt

image
  • Relatório Gerado:
image

✍️Guias De Uso / Funcionalidades - Interface

  • No canto superior esquerdo, o usuário pode estar alterando a personalidade do bot para engraçada,formal ou rude. (Segue objeto citado circundado de vermelho na imagem)
fotopersonc
  • Ao lado esquerdo o EcoBot mostrará as 5 interações anteriores.
interações
  • Na parte de conversa com o bot, o usuário deve colocar sua pergunta na lacuna escrita "Digite sua pergunta" (circundado de vermelho na foto abaixo)

  • Logo após a interação aparecerá um bloco com o nome "Pergunta: "sua pergunta" " (circundado de verde na foto abaixo)

  • Depois, aparecerá a resposta do EcoBot. (circundado de amarelo na foto abaixo)

conversas
  • Ao clicar na lacuna escrita com "💡 Ver sugestões de perguntas" o bot baixará uma aba com as perguntas frequentes realizadas pelo usuário, o usuário pode clicar na pergunta frequente e o bot o responderá (circundado de azul na foto abaixo)
sugestao
  • No canto inferior esquerdo, haverá um ícone de uma lixeira que serve para limpar a conversa após o usuário clicar nela.(seguue na foto abaixo)
limparconversa
  • Após limpar a conversa, será limpa a interação no chat com o bot(segue na foto)
conversa limpa
  • No canto inferior esquerdo, acima do ícone da lixeira, há um ícone de um Disket seguido com a frase "Salvar conversa"
salvar conversa
  • Após o usuário clicar em salvar, aparecer a interação do usuário na parte de Downloads (destacado em verde na foto abaixo)
conversasalva
  • o .txt gerado:
image
  • Caso o usuário pergunte algo que o bot não saiba, ele entrará no modo aprendizado. No qual o usuário pode digitar uma resposta e ensiná-lo, ou não. Ao clicar em "ensinar" o bot aprende uma resposta para aquela pergunta (circulado em azul na foto abaixo) E ao clicar em "Esquecer" o bot desconsidera o aprendizado.(Circulado de verde na foto abaixo)
aprendizado

📜 Licença

This project is licensed under the MIT License - see the LICENSE file for details.

License: MIT

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages