Repositório de código referente ao Projeto Final de Curso da Especialização lato sensu em Processamento de Linguagem Natural (NLP) do AKCIT - Centro de Competência EMBRAPII em Tecnologias Imersivas (Advanced Knowledge Center for Immersive Technologies).
Este projeto implementa um chatbot inteligente especializado em responder perguntas sobre a Resolução Normativa ANEEL nº 1000/2021, utilizando técnicas de RAG (Retrieval-Augmented Generation) com Google Gemini AI.
É altamente recomendado que você tenha conhecimento básico em Python, Streamlit e conceitos de RAG antes de executar este projeto.
Acompanhe o seguinte passo a passo para configurar e executar o chatbot ANEEL.
-
Baixe o código disponível aqui, nesse repositório, clicando no botão Code e depois em Download ZIP.
-
Extraia o arquivo baixado para uma pasta de sua escolha.
-
Verifique a estrutura da pasta extraída. Ela deve possuir a seguinte organização:
aneel-chatbot/ ├── app.py # Interface principal Streamlit ├── chatbot_logic.py # Lógica do chatbot com Gemini AI ├── text_processor.py # Processamento de PDF com hierarquia ├── vector_db.py # Gerenciamento do banco vetorial ├── requirements.txt # Dependências do projeto ├── .env.example # Exemplo de arquivo de ambiente ├── README.md # Este arquivo ├── data/ │ └── atren20211000.pdf # Documento da REN 1000/2021 (baixado automaticamente) ├── chroma_db_data/ # Banco de dados vetorial (criado automaticamente) └── notebooks/ └── teste.ipynb # Notebooks de desenvolvimento -
Obtenha sua chave de API do Google Gemini:
- Acesse Google AI Studio
- Crie uma conta ou faça login
- Gere uma nova chave de API
- Guarde essa chave em local seguro
❗ Importante: Você precisará de uma chave de API válida do Google Gemini para usar este chatbot. Sem ela, o sistema não funcionará.
❗ Antes de prosseguir: Certifique-se de ter o Anaconda instalado em seu sistema. Se não tiver, baixe e instale através do site oficial do Anaconda.
-
Configure o ambiente Anaconda:
Windows:
# Abra o Anaconda Powershell Prompt (não o CMD comum) cd caminho\para\aneel-chatbot conda create --name aneel-chatbot python=3.9 conda activate aneel-chatbot
Linux/Mac:
# Abra o terminal cd caminho/para/aneel-chatbot conda create --name aneel-chatbot python=3.9 conda activate aneel-chatbot
-
Instale as dependências:
pip install -r requirements.txt
💡 Dica: Se preferir usar apenas conda, você pode instalar as principais dependências com:
conda install streamlit pip install -r requirements.txt # Para dependências específicas não disponíveis no conda -
Configure suas variáveis de ambiente:
- Copie o arquivo
.env.examplee renomeie para.env - Edite o arquivo
.enve substituasua_chave_api_aquipela sua chave real do Google Gemini:
GOOGLE_API_KEY=sua_chave_api_aqui - Copie o arquivo
-
Execute o aplicativo:
# Certifique-se de que o ambiente está ativo conda activate aneel-chatbot streamlit run app.py -
Acesse o chatbot:
- O aplicativo será aberto automaticamente no seu navegador
- Caso não abra, acesse:
http://localhost:8501
-
Primeira execução:
- Na primeira vez, o sistema baixará automaticamente o PDF da ANEEL
- O processamento do documento pode levar alguns minutos
- Aguarde até que apareça a mensagem "Base de dados vetorial inicializada com sucesso!"
-
Interaja com o chatbot:
- Digite suas perguntas sobre a REN 1000/2021 na caixa de chat
- O chatbot responderá com base no documento oficial da ANEEL
- Use perguntas como:
- "O que é consumidor livre?"
- "Quais são as modalidades tarifárias?"
- "Como funciona o sistema de compensação de energia?"
❗ Lembre-se de aguardar alguns segundos após enviar sua pergunta para o chatbot processar e responder.
- ✅ Interface web intuitiva com Streamlit
- ✅ Processamento inteligente de PDF com extração hierárquica
- ✅ Busca semântica utilizando ChromaDB
- ✅ Respostas contextualizadas com Google Gemini AI
- ✅ Configuração flexível de API key (.env ou interface)
- ✅ Cache inteligente do banco de dados vetorial
- ✅ Fontes das respostas com localização hierárquica
- Verifique se a chave está correta no arquivo
.env - Certifique-se de que a chave tem permissões para o Gemini AI
- Teste a chave diretamente no Google AI Studio
- Delete a pasta
chroma_db_data/e o arquivodb_initialized.flag - Reinicie a aplicação para recriar o banco
- Certifique-se de estar no ambiente Anaconda correto:
conda activate aneel-chatbot - Atualize o pip:
python -m pip install --upgrade pip - Reinstale as dependências:
pip install -r requirements.txt --force-reinstall - Se usar Windows, certifique-se de estar usando o Anaconda Powershell Prompt
- Liste os ambientes disponíveis:
conda env list - Se o ambiente não existir, recrie-o:
conda create --name aneel-chatbot python=3.9 - Para remover um ambiente corrompido:
conda env remove --name aneel-chatbot
- Reduza o tamanho dos chunks em
text_processor.py - Feche outros aplicativos que consomem muita memória
- No Anaconda, você pode monitorar o uso de memória com:
conda list
- Python 3.8+: Linguagem principal
- Streamlit: Interface web
- Google Gemini AI: Modelo de linguagem
- ChromaDB: Banco de dados vetorial
- LangChain: Processamento de texto
- PyMuPDF: Processamento de PDF
🎓 Este projeto demonstra a aplicação prática de técnicas de RAG e processamento de linguagem natural para criar soluções inteligentes no domínio regulatório brasileiro.