🔮 OpenRouter — Gateway de LLMs
OpenRouter é a solução de provider padrão do INTELECTO. Uma chave API, 100+ modelos, billing unificado e fallback automático. Você muda de modelo mudando uma string.
📌 Modelos Disponíveis no OpenRouter
- •GPT-4o e GPT-4o-mini da OpenAI — para tarefas gerais
- •Claude 3.5 Sonnet da Anthropic — para raciocínio e código
- •Mistral Large e Mistral 7B — custo/benefício excelente
- •Llama 3.1 70B e 8B — open source, sem censura de uso
- •Gemini 1.5 Pro — contexto de 1M tokens
💡 Dica Prática
Sempre configure MODEL_NAME como variável de ambiente. Mudar o modelo não deve requerer restart — o INTELECTO lê do .env em runtime.
🏠 Ollama — Zero Custo Local
Ollama executa LLMs diretamente no seu hardware. Zero custo por token, privacidade total e latência de rede zero. A escolha para dados sensíveis e uso intenso.
📌 Modelos Recomendados para Ollama
- •Llama 3.1 8B: rápido, 8GB RAM suficiente, uso geral
- •Mistral 7B: excelente para código, leve para hardware moderno
- •Gemma 2 9B: bom equilíbrio raciocínio vs velocidade
- •Phi-3 Mini: microscópico, funciona em CPU razoavelmente
💡 Dica Prática
Ollama é ideal para desenvolvimento e dados confidenciais. Para produção com muitos usuários, OpenRouter é mais escalável.
🧩 BaseProvider — Interface Abstrata
BaseProvider é o contrato que todo provedor de LLM deve implementar. Um único método: async chat(messages) -> str. O Agent nunca sabe qual provider está usando.
📌 Por que Uma Interface Limpa Importa
- •Agent.process() chama self.provider.chat() sem saber o provider
- •Trocar de OpenRouter para Ollama = mudar uma linha de configuração
- •Testar com provider mock = zero custo de API durante desenvolvimento
- •Criar novo provider = 20 linhas implementando BaseProvider
💡 Dica Prática
Use MockProvider durante testes — uma implementação de BaseProvider que retorna respostas predefinidas. Zero custo, execução instantânea.
🔄 Failover Multi-Provedor
O ProviderChain implementa failover automático. Se o provider primário falhar, o secundário assume transparentemente. O usuário não percebe o switch.
📌 Configuração de Failover
- •PRIMARY: openrouter/anthropic/claude-3.5-sonnet
- •FALLBACK_1: openrouter/openai/gpt-4o
- •FALLBACK_2: ollama/llama3.1:8b (local)
- •Circuit breaker: desativa provider com >3 falhas em 5min
- •Health check: restaura provider após 5min de recuperação
💡 Dica Prática
Configure o Ollama local como último fallback. É mais lento mas garante que o Jarvis funciona mesmo sem internet.
🎯 Seleção de Modelo por Tarefa
Diferentes tarefas têm diferentes requisitos. Roteamento inteligente usa o modelo certo para cada trabalho, reduzindo custo sem perda de qualidade.
📌 Mapeamento de Tarefas
- •Código complexo → Claude 3.5 Sonnet (melhor raciocínio técnico)
- •Perguntas simples → Mistral 7B (custo 10x menor)
- •Análise de texto longo → Gemini 1.5 Pro (contexto 1M tokens)
- •Geração criativa → GPT-4o (melhor versatilidade)
- •Tarefas offlne → Ollama llama3.1:8b (zero custo)
💡 Dica Prática
Implemente o router como uma function de um dicionário: task_type -> model_name. Fácil de atualizar quando novos modelos chegam.
📊 Monitoramento de Custos
Sem monitoramento de custos, uma API mal configurada pode gerar faturas inesperadas. O cost_tracker.py monitora cada token consumido.
📌 Métricas Rastreadas
- •Tokens de input + output por request
- •Custo em USD por request (baseado no modelo)
- •Custo acumulado do dia, semana e mês
- •Top-5 tools mais custosas
- •Alert quando custo diário passa de threshold configurável
💡 Dica Prática
Configure threshold de custo diário como COST_LIMIT_USD=5.0. Se ultrapassar, o Jarvis para de aceitar novos requests e envia alerta.
✅ Resumo do Módulo 4.1
Próximo:
4.2 Skills e Ferramentas