Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Chatbot Inteligente — Associação Cívica Esperança Criciúma (ACEC)

Equipe: Caio Marcon Hobold Gabriel Gonçalves Flôr Kaue da Silva Elias Miguel Lumertz Espíndola

Trabalho Final — Inteligência Artificial — UNESC

Chatbot de atendimento ao público para a ACEC, uma associação cívica fictícia. O sistema usa Processamento de Linguagem Natural para responder dúvidas frequentes mesmo quando a pergunta é formulada de forma diferente das frases de treinamento.


Instalação e Execução

Pré-requisitos

  • Python 3.11 ou superior
  • Node.js 18 ou superior

Backend

# 1. Entre na pasta do backend
cd backend

# 2. Crie e ative o ambiente virtual
python3 -m venv venv             # Mac/Linux
source venv/bin/activate        # Mac/Linux
venv\Scripts\activate           # Windows

# 3. Instale as dependências
pip install -r requirements.txt

# 4. Baixe o modelo spaCy para português (necessário pelo ChatterBot)
python -m spacy download pt_core_news_sm

# 5. Baixe os recursos do NLTK
python -c "import nltk; nltk.download('punkt_tab'); nltk.download('stopwords'); nltk.download('rslp')"

# 6. Inicie a API (o bot treina automaticamente no primeiro start)
uvicorn main:app --reload --host 0.0.0.0 --port 8000

A API estará disponível em: http://localhost:8000

Frontend

# Em outro terminal, entre na pasta do frontend
cd frontend

# Instale as dependências
npm install

# Inicie o servidor de desenvolvimento
npm run dev

A interface estará disponível em: http://localhost:5173


Estrutura de Pastas

ChatBotRotary/
├── README.md
├── backend/
│   ├── requirements.txt        # Dependências Python
│   ├── main.py                 # API FastAPI (/chat, /health, /info)
│   ├── bot.py                  # Motor principal (ChatterBot + TF-IDF)
│   ├── tfidf_adapter.py        # Logic Adapter customizado (TF-IDF + NLTK)
│   ├── nlp_utils.py            # Pipeline NLTK (normalização, stemming RSLP)
│   ├── evaluate.py             # Métricas: acurácia, F1, matriz de confusão
│   └── data/
│       ├── faq.yml             # Base de conhecimento (16 intenções, 119 pares)
│       ├── test_set.json       # 28 perguntas de teste rotuladas
│       └── chatterbot.sqlite3  # Banco de dados do ChatterBot (gerado automaticamente)
│   └── resultados/
│       ├── matriz_confusao.png
│       └── distribuicao_confianca.png
└── frontend/
    ├── package.json
    ├── vite.config.ts
    ├── index.html
    └── src/
        ├── App.tsx             # Componente principal + lógica de chat
        ├── App.css             # Estilos
        ├── main.tsx            # Entry point React
        ├── api.ts              # Chamadas ao backend (axios)
        └── components/
            └── ChatWindow.tsx  # Histórico de mensagens

Scripts Disponíveis

# Dentro de backend/ com o venv ativo:

# Testar o bot no terminal (retreina e exibe resultados)
python bot.py

# Demonstrar pipeline PLN no terminal
python nlp_utils.py

# Gerar métricas de avaliação + gráficos
python evaluate.py

# Iniciar a API
uvicorn main:app --reload

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages