🔮 OpenRouter — gateway de LLMs
OpenRouter es la solución de provider estándar de INTELECTO. Una clave de API, más de 100 modelos, facturación unificada y fallback automático. Cambias de modelo cambiando una cadena.
📌 Modelos disponibles en OpenRouter
- •GPT-4o y GPT-4o-mini de OpenAI — para tareas generales
- •Claude 3.5 Sonnet de Anthropic — para razonamiento y código
- •Mistral Large y Mistral 7B — excelente relación costo-beneficio
- •Llama 3.1 70B y 8B — código abierto, sin censura de uso
- •Gemini 1.5 Pro — contexto de 1M tokens
💡 Consejo práctico
Siempre configura MODEL_NAME como variable de entorno. Cambiar el modelo no debe requerir reiniciar: INTELECTO lo lee de .env en tiempo de ejecución.
🏠 Ollama — Costo local cero
Ollama ejecuta LLMs directamente en tu hardware. Cero costo por token, privacidad total y latencia de red cero. La opción para datos sensibles y uso intensivo.
📌 Modelos recomendados para Ollama
- •Llama 3.1 8B: rápido, 8 GB de RAM suficientes, uso general
- •Mistral 7B: excelente para código, ligero para hardware moderno
- •Gemma 2 9B: buen equilibrio entre razonamiento y velocidad
- •Phi-3 Mini: microscópico, funciona razonablemente en CPU
💡 Consejo práctico
Ollama es ideal para desarrollo y datos confidenciales. Para producción con muchos usuarios, OpenRouter es más escalable.
🧩 BaseProvider — Interfaz abstracta
BaseProvider es el contrato que todo proveedor de LLM debe implementar. Un solo método: async chat(messages) -> str. El Agent nunca sabe qué provider está usando.
📌 Por qué importa una interfaz limpia
- •Agent.process() llama a self.provider.chat() sin saber cuál es el provider
- •Cambiar de OpenRouter a Ollama = cambiar una línea de configuración
- •Probar con un provider simulado = cero costo de API durante el desarrollo
- •Crear un nuevo provider = 20 líneas que implementan BaseProvider
💡 Consejo práctico
Usa MockProvider durante las pruebas: una implementación de BaseProvider que devuelve respuestas predefinidas. Costo cero y ejecución instantánea.
🔄 Failover multiproveedor
ProviderChain implementa failover automático. Si falla el proveedor primario, el secundario asume el control de forma transparente. El usuario no nota el cambio.
📌 Configuración de failover
- •PRIMARY: openrouter/anthropic/claude-3.5-sonnet
- •FALLBACK_1: openrouter/openai/gpt-4o
- •FALLBACK_2: ollama/llama3.1:8b (local)
- •Circuit breaker: desactiva el provider con >3 fallas en 5min
- •Health check: restaura el proveedor después de 5min de recuperación
💡 Consejo práctico
Configura Ollama local como último fallback. Es más lento, pero garantiza que Jarvis funcione incluso sin internet.
🎯 Selección de modelo por tarea
Las distintas tareas tienen distintos requisitos. Enrutamiento inteligente usa el modelo adecuado para cada tarea, reduciendo el costo sin perder calidad.
📌 Asignación de tareas
- •Código complejo → Claude 3.5 Sonnet (mejor razonamiento técnico)
- •Preguntas simples → Mistral 7B (costo 10x menor)
- •Análisis de texto largo → Gemini 1.5 Pro (contexto de 1M tokens)
- •Generación creativa → GPT-4o (mejor versatilidad)
- •Tareas offline → Ollama llama3.1:8b (costo cero)
💡 Consejo práctico
Implementa el router como una function de un diccionario: task_type -> model_name. Fácil de actualizar cuando lleguen nuevos modelos.
📊 Monitoreo de costos
Sin monitorear los costos, una API mal configurada puede generar facturas inesperadas. cost_tracker.py monitorea cada token consumido.
📌 Métricas registradas
- •Tokens de entrada + salida por request
- •Costo en USD por request (según el modelo)
- •Costo acumulado del día, la semana y el mes
- •Top-5 herramientas más costosas
- •Alerta cuando el costo diario supera el umbral configurable
💡 Consejo práctico
Configura el límite de costo diario como COST_LIMIT_USD=5.0. Si lo supera, Jarvis deja de aceptar nuevas solicitudes y envía una alerta.
✅ Resumen del Módulo 4.1
Siguiente:
4.2 Skills y herramientas