PTENES
MÓDULO 1.3

⚙ Configuración del entorno

De cero a Jarvis funcionando: Python 3.11, Docker, cuenta de OpenRouter, archivo .env, asistente de configuración y primer mensaje en Telegram.

6
Temas
60
Minutos
Básico
Nivel
Práctico
Tipo
1

🐍 Requisitos previos y Python

INTELECTO exige Python 3.11+ como mínimo absoluto. Las versiones anteriores no incluyen todas las funciones de async y tipado que usa el proyecto. Las dependencias son deliberadamente mínimas.

📦 requirements.txt minimalista

httpx>=0.27.0 # HTTP async client
python-telegram-bot # Canal de Telegram
cryptography # Fernet + PBKDF2
python-dotenv # .env loader
aiosqlite # SQLite async
# Nada más. Cero frameworks.
1

python3 --version

Debe devolver Python 3.11 o superior

2

python3 -m venv .venv && source .venv/bin/activate

Usa siempre venv para el aislamiento

3

pip install -r requirements.txt

Instala solo las 5 dependencias necesarias

2

🔑 Cuenta de OpenRouter

O OpenRouter es la opción predeterminada para INTELECTO porque resuelve el problema del bloqueo por proveedor con elegancia quirúrgica: una clave de API da acceso a más de 100 modelos, y cambiar de modelo consiste solo en cambiar una cadena.

🎯 ¿Por qué OpenRouter?

  • •100+ modelos: GPT-4o, Claude 3.5, Mistral, Llama 3, Gemini — todos con una sola clave
  • •Facturación unificada: Una tarjeta, una factura, visibilidad del costo por modelo
  • •Fallback automático: Si un modelo falla, lo cambias en segundos
  • •Interfaz compatible con OpenAI: El mismo código funciona sin cambios
1

Crear una cuenta en openrouter.ai

2

Ir a Claves → Create API Key

3

Copiar la clave (comienza con sk-or-)

3

📝 Configuración de .env

El archivo .env es la única fuente de configuración sensible. Nunca pongas claves directamente en el código. setup carga el .env automáticamente y NUNCA debe ir al git.

📄 .env Ejemplo completo

# Proveedor principal
OPENROUTER_API_KEY=sk-or-v1-...
MODEL_NAME=anthropic/claude-3.5-sonnet

# Canal de Telegram
TELEGRAM_BOT_TOKEN=1234567890:AAF...
TELEGRAM_ALLOWED_USERS=123456789

# Configuración del agente
MAX_ROUNDS=5
WORKSPACE_DIR=./workspace
LOG_LEVEL=INFO

⚠ Regla crítica de seguridad

O .env debe estar en el .gitignore. Verifica siempre antes de hacer commit. Una clave de API expuesta en GitHub puede generar facturas de cientos de dólares en cuestión de horas; esto ocurre con frecuencia con los bots de escaneo automatizados.

4

🧙 El asistente de configuración

O setup.py es un wizard interactivo que hace las preguntas correctas y configura todo automáticamente. Crea los archivos necesarios, valida las credenciales y garantiza que no se olvide nada obligatorio.

💬 Preguntas del Wizard

$ python setup.py
? ¿Qué canal usar? [telegram/discord/cli]: telegram
? ¿Usar Docker o nativo? [docker/native]: native
? ¿Proveedor de LLM? [openrouter/ollama]: openrouter
? ¿Modelo predeterminado?: anthropic/claude-3.5-sonnet
? ¿Nombre de tu asistente?: Atlas
✓ .env creado
✓ workspace/ inicializado
✓ ~/.intelecto/ creado
✓ ¡Configuración completa! Ejecuta: python main.py
5

🐳 Docker vs nativo

La elección entre Docker y nativo afecta tu flujo de trabajo. Para desarrollo, el nativo es más ágil. Para producción, Docker Compose garantiza la reproducibilidad y facilita el monitoreo.

🐍 Modo nativo

  • ✓Debug instantáneo con pdb/breakpoint
  • ✓Recarga automática con watchdog
  • ✓Acceso directo al filesystem
  • ✗Depende del entorno local
python main.py

🐳 Modo Docker

  • ✓Aislamiento total del entorno
  • ✓Deploy reproducible en cualquier servidor
  • ✓Reinicio automático con --restart unless-stopped
  • ✗Sobrecarga de compilación e inicio
docker compose up -d
6

📱 Primer mensaje en Telegram

El momento de la verdad. Si el primer mensaje funciona, toda la stack está correcta: canal conectado, proveedor respondiendo, memoria inicializada y workspace cargado.

1

Crear un bot en BotFather

Abrir Telegram → BotFather → /newbot → seguir las instrucciones → copiar el token que empieza con números seguidos de :

2

Obtener tu User ID

Enviar /start para @userinfobot en Telegram. Copia el número devuelto y colócalo en TELEGRAM_ALLOWED_USERS.

3

Iniciar INTELECTO

python main.py — esperar "Bot iniciado. Aguardando mensagens..."

4

Enviar "Hola" y esperar

Jarvis responderá con la personalidad definida en SOUL.md. Si responde, felicitaciones: tienes un Jarvis funcionando.

💡 Lista de verificación de smoke test

  • ✓El bot funciona sin errores en la terminal
  • ✓El mensaje se recibió (aparece en el log)
  • ✓Se llamó al LLM (costo en OpenRouter)
  • ✓La respuesta llegó a Telegram
  • ✓audit.log contiene el registro de la interacción

✅ Resumen del Módulo 1.3

✓
Python 3.11+ — 5 dependencias mínimas, cero frameworks de IA
✓
OpenRouter — más de 100 modelos, billing unificado, sin vendor lock-in
✓
.env seguro — claves fuera del código, en el .gitignore obligatorio
✓
Asistente de configuración — preguntas guiadas, configuración automática y validación
✓
Docker vs. modo nativo — nativo para desarrollo, Docker Compose para producción
✓
Primer mensaje — smoke test que valida toda la stack de punta a punta

Próxima ruta:

Ruta 2 — Identidad y canales: SOUL.md, AIEOS, Telegram, WhatsApp y memoria SQLite