Trabalho Prático 5 - Agentes com LLMs
Disciplina: PPGINF528 - Tópicos Especiais em Recuperação da Informação - NLP
Professores: Prof. Dr. André Carvalho e Prof. Dr. Altigran da Silva
Universidade Federal do Amazonas (UFAM)
- Acauan Cardoso Ribeiro - Matrícula: 3240232
O EcoTravel Agent é um sistema inteligente que combina Reinforcement Learning, RAG (Retrieval-Augmented Generation) e múltiplas ferramentas para planejar viagens sustentáveis. O sistema utiliza um agente baseado em LLM que aprende a selecionar otimamente entre diferentes ferramentas para responder queries sobre turismo ecológico.
Desenvolver um agente inteligente capaz de:
- Processar consultas sobre viagens sustentáveis
- Selecionar automaticamente a ferramenta mais adequada (RAG, APIs, Calculadoras)
- Fornecer respostas precisas sobre destinos eco-friendly e pegada de carbono
- Aprender e otimizar suas decisões através de Reinforcement Learning
- LLM Base: OpenAI GPT (via LangChain)
- Reinforcement Learning: PPO (Proximal Policy Optimization) com Stable-Baselines3
- RAG System: Sentence Transformers + FAISS + BM25
- Ferramentas: APIs de clima, calculadora de CO2, busca web
- Ambiente: Gymnasium customizado
- Visualização: Matplotlib, Plotly, Streamlit
# 1. Clonar o repositório
git clone https://github.com/acauanrr/projeto-ecotravel.git
cd projeto-ecotravel
# 2. Criar ambiente virtual
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# OU
.venv\Scripts\activate # Windows
# 3. Instalar dependências
pip install -r requirements.txt
# 4. Executar o notebook principal
jupyter notebook EcoTravel_Agent_RL_Local_Completo.ipynb- Python: 3.8 ou superior
- Memória RAM: Mínimo 8GB (recomendado 16GB)
- Espaço em disco: 2GB livres
- GPU: Opcional (CUDA compatível para aceleração)
# Verificar versão do Python
python --version # Deve ser 3.8+
# Criar ambiente virtual isolado
python -m venv .venv
# Ativar ambiente virtual
# Linux/Mac:
source .venv/bin/activate
# Windows:
.venv\Scripts\activate
# Atualizar pip
pip install --upgrade pip# Instalar todas as dependências do projeto
pip install -r requirements.txt
# Verificar instalação das principais bibliotecas
python -c "
import langchain
import sentence_transformers
import gymnasium
import stable_baselines3
import matplotlib
import pandas
print('✅ Todas as dependências instaladas com sucesso!')
"# Criar arquivo .env para APIs (opcional - o sistema funciona sem)
echo 'OPENAI_API_KEY=sua_chave_aqui' > .env
echo 'GOOGLE_API_KEY=sua_chave_aqui' >> .envNota: O sistema funciona completamente sem APIs externas. As chaves são opcionais para funcionalidades avançadas.
# Instalar Jupyter se não tiver
pip install jupyter
# Iniciar Jupyter
jupyter notebook
# Abrir: EcoTravel_Agent_RL_Local_Completo.ipynb- Fazer upload do arquivo
EcoTravel_Agent_RL_Local_Completo.ipynb - Executar a primeira célula para instalar dependências
- Executar as células sequencialmente
# Instalar extensão Python + Jupyter no VS Code
# Abrir o arquivo .ipynb
# Executar células com Ctrl+EnterExecute este comando para verificar se tudo está funcionando:
python -c "
import sys
sys.path.append('.')
# Teste básico do sistema
from src.rag.enhanced_rag_system import EnhancedRAGSystem
from src.tools.carbon_calculator import CarbonCalculator
from src.rl.environment import EcoTravelRLEnvironment
print('🧪 Testando componentes...')
# Teste RAG
rag = EnhancedRAGSystem()
rag.load_data()
print('✅ Sistema RAG funcionando')
# Teste Calculadora
calc = CarbonCalculator()
result = calc.calculate_carbon_footprint('aviao_domestico', 500, True)
print(f'✅ Calculadora CO2: {result[\"total_emissions_kg\"]} kg')
# Teste Ambiente RL
env = EcoTravelRLEnvironment(use_advanced_embeddings=False)
state, _ = env.reset()
print(f'✅ Ambiente RL: {state.shape} dimensões')
print('🎉 Todos os componentes funcionando!')
"projeto-ecotravel/
├── 📓 EcoTravel_Agent_RL_Local_Completo.ipynb # NOTEBOOK PRINCIPAL
├── 📂 src/ # Código fonte
│ ├── rag/
│ │ └── enhanced_rag_system.py # Sistema RAG avançado
│ ├── tools/
│ │ ├── carbon_calculator.py # Calculadora de CO2
│ │ ├── weather_api.py # API de clima
│ │ └── web_search.py # Busca web
│ ├── rl/
│ │ ├── environment.py # Ambiente Gymnasium
│ │ └── rl_agent.py # Agente PPO
│ └── agent/
│ └── ecotravel_agent_rl.py # Agente principal
├── 📂 data/ # Base de conhecimento
│ ├── guias/ # Guias de turismo sustentável
│ ├── emissoes/ # Dados de emissões CO2
│ └── avaliacoes/ # Avaliações de hotéis
├── 📂 docs/ # Documentação
├── 📄 requirements.txt # Dependências Python
└── 📄 README.md # Este arquivo
Execute o notebook EcoTravel_Agent_RL_Local_Completo.ipynb célula por célula:
- Células 1-4: Instalação e configuração (deve executar sem erros)
- Células 5-6: Testes de integração (verificar se componentes funcionam)
- Células 7-10: Treinamento do agente RL (observar métricas de aprendizado)
- Células 11-14: Sistema integrado e demonstrações (testar queries)
- Células 15-18: Análise de performance e relatórios
Teste as seguintes funcionalidades:
# No notebook, execute:
result = agent.process_query("Quais são os destinos sustentáveis no Nordeste?")
print(result)
# Deve retornar informações relevantes usando o sistema RAG# Teste da calculadora de CO2:
result = agent.process_query("Calcule emissões de um voo São Paulo - Salvador")
print(result)
# Deve calcular e retornar emissões em kg de CO2Observe na célula 10 do notebook:
- Treinamento do agente PPO
- Melhoria das métricas ao longo do tempo
- Seleção inteligente de ferramentas
- Código bem estruturado e documentado
- Tratamento de erros robusto
- Arquitetura modular
Ao executar o notebook, você deve observar:
- Sistema RAG: Busca informações em guias de turismo sustentável
- Calculadora CO2: Calcula emissões para diferentes transportes
- Agente RL: Aprende a selecionar a ferramenta mais adequada
- Integração: Sistema completo respondendo queries complexas
🔍 Processando: 'Quais são os destinos sustentáveis no Nordeste?'
📋 Tipo identificado: travel
🛠️ Ferramenta selecionada: rag
📊 Resultado (Ferramenta: rag):
✓ Contexto encontrado: Fernando de Noronha oferece turismo sustentável com...
✓ Fontes consultadas: 5 documentos
# Solução:
pip install --upgrade pip
pip install -r requirements.txt --force-reinstall# Solução:
python -m ipykernel install --user --name=.venv# Solução: Reduzir batch size no notebook
# Modificar na célula 10: batch_size=32 para batch_size=16# Verificar CUDA:
python -c "import torch; print(torch.cuda.is_available())"
# Se False, o sistema funcionará em CPU (mais lento, mas funcional)- Relatório Técnico: Veja
docs/relatorio_tecnico.pdf - Arquitetura: Documentação em
docs/arquitetura.md - API Reference: Documentação das classes em
docs/api/
✅ Implementação de Agente com LLM: Sistema completo com LangChain
✅ Múltiplas Ferramentas: RAG, APIs, Calculadoras integradas
✅ Reinforcement Learning: PPO para otimização de seleção
✅ Base de Conhecimento: RAG com dados reais de turismo sustentável
✅ Métricas e Avaliação: Dashboard completo com visualizações
✅ Código Limpo: Bem estruturado e documentado
✅ Funcionalidade Completa: Sistema end-to-end operacional
Em caso de dúvidas na execução:
- Primeiro: Verifique se todas as dependências estão instaladas
- Segundo: Execute o teste de verificação acima
- Terceiro: Consulte a seção "Solução de Problemas"
- Último recurso: Contate os desenvolvedor - whtas para Acauan (95) 98111-2506
🌍 Sistema completo de viagens sustentáveis com IA - Pronto para avaliação!