Volver a la wiki

ADR — Retirada de OpenRouter: stack IA 100% google-genai (v1.0.72 · s55)

Contexto

Desde la sesión 48 (03-05-2026), CreaRack Pro había migrado progresivamente el stack de IA:

SesiónCambio
s48Auto-Plan pasa a OpenRouter :free BYOK (Gemma 4 26B-A4B, calidad 100%, coste $0)
s49AUTOPLAN_PROVIDER y EDGE_AI_PROVIDER cambian el default a google_genai (Google AI Studio Paid Tier). OpenRouter queda como fallback configurable en código pero desactivado en PROD (Dokploy ya usa google_genai).
s50Investigación Vertex AI región EU postpuesta: Gemma 4 maas solo tiene endpoint global, no cumple GDPR EU estricto.
s53Server EPYC pve-epyc-02 dado de baja con wipe NIST SP 800-88 y cancelado en Hetzner.
s55Este ADR: con 8 días de PROD estable en google_genai sin ninguna caída, se retira todo el código OpenRouter del repositorio. Cleanup quirúrgico —no es una migración, el código ya era dead code en runtime.

Alcance · scope clarificado en s58 d21 (2026-05-12)

Aclaración crítica: cuando se redactó este ADR (s55, 11-05-2026), el scope era únicamente el repo CreaRack-Pro (los -1285 LOC enumerados abajo son todos de ese repo). El repo CreaRackSL-workspace quedó FUERA de esta limpieza y conservó 2 callers de runtime productivos a OpenRouter para la traducción wiki ES→EN: scripts/translate-wiki.mjs + functions/api/wiki/translate.ts.

En s58 d21 (2026-05-12) se cierra ese hueco: ambos archivos del workspace migrados a Google AI Studio Paid Tier directo (REST fetch a generativelanguage.googleapis.com, mismo patrón canónico que archivo-core.ts). El stack queda 100% alineado con Regla 8.

Caller legítimo de OpenRouter que SE CONSERVA por diseño: functions/api/tools/ai-eval/run.ts (herramienta /tools/ai-eval) — su propósito es comparar modelos entre proveedores, así que tener OpenRouter como uno de los providers seleccionables es coherente. La env var OPENROUTER_API_KEY se queda en functions/types.ts solo para ese caller.

Lección sistémica grabada en s58: cuando se hace una limpieza de stack (retirar dep/proveedor), el ADR debe declarar EXPLÍCITAMENTE el scope de repos cubiertos. Sin ese paso, el ADR sugiere “limpieza total” cuando solo cubrió un repo, y la deuda queda invisible varios días.

Decisión

Eliminar completamente el soporte OpenRouter del codebase. La stack IA queda monoproveedor:

Call sites activos post-s55

FunciónMóduloDriver
Auto-Plan visión (análisis de plano)blueprints/api/autoplan.py → blueprints/services/autoplan.pyblueprints/services/google_genai_driver.py
CNS Insight (anomalías/capacidad/resumen)monitoring/services/ai_providers/google_genai.pyGoogleGenaiProvider
IT Tutor CNSmonitoring/services/tutor_service.py_ask_google_genai
MIB Assistantnetwork/services/mib_assistant.pycall_google_genai sync
AIOperations (ops IA genéricas)core/services/ai_operations.pyai_fallback chain vía router.py
FinOps reportcore/management/commands/finops_report.pylínea coste → “Google AI Studio Paid Tier”

Archivos eliminados (-1285 LOC netas)

Drivers y proveedores (-500 LOC)

Scripts eval offline (-766 LOC)

Configuración

Archivos modificados (callers limpiados)

Consecuencias

Positivas

Negativas / Riesgos asumidos

Pendiente de validación post-deploy

Relación con ADR anterior

El ADR decision--20260428-gemma-4-via-openrouter-migration (workspace) documenta la decisión original de migrar a OpenRouter :free BYOK en s48. Este ADR lo supersede en lo que respecta al estado activo de la stack IA: ese ADR queda como registro histórico del período s48-s55, pero la arquitectura vigente es la descrita aquí.

Acción pendiente (Edu): marcar decision--20260428-gemma-4-via-openrouter-migration como status: superseded + añadir superseded_by: decision--20260511--cleanup-openrouter-monoproveedor-google-genai en el workspace.

Véase también

Subir