Volver a la wiki

Plataforma IA self-hosted · roadmap futuro (gestión multi-modelo en pve-epyc-02)

Plataforma IA self-hosted · roadmap futuro

Estado: planificación documentada, NO implementación. Bloqueado por dos pre-requisitos no negociables (sección 2). Diseñado el 01-05-2026 (sesión 45).


1. Visión general

Hoy pve-epyc-02 corre llama-server con un modelo único (Gemma 4 26B-A4B Q4_K_M) sirviendo Auto-Plan en CreaRack PROD vía OpenAI-compat. La plataforma futura amplía esto a:

Es la culminación natural del trabajo iniciado en sesión 41 (cuando se valoró self-host como respuesta a OpenRouter limitando calidad de visión Auto-Plan).


2. Pre-requisitos NO negociables

Esta plataforma NO se implementa hasta que ambos hitos estén cubiertos:

Pre-req 1 · Auto-Plan al 100 % con Gemma 4 self-hosted

Hoy estamos en ~70 % calidad / ~91 % recall plano 70 racks. Falta el último tramo. Vías exploradas pero no exhaustadas:

Sin Auto-Plan al 100 % en self-host, expandir a otros sites IA es prematuro.

Pre-req 2 · Resto de sites IA CreaRack migrados a self-host

Sites IA actuales en CreaRack-Pro (Regla 8 CLAUDE.md, 8 sites + 3 workspace):

Todos apuntan hoy a google/gemma-4-26b-a4b-it vía OpenRouter (Cloudflare/Parasail upstream). Para migrar a self-host:

Una vez TODOS los sites usan pve-epyc-02 + el server soporta el caudal sin saturarse, la plataforma de gestión tiene sentido.


3. Arquitectura objetivo (alto nivel)

┌────────────────────────────────────────────────────────────────────┐
│ HOST: pve-epyc-02 (Proxmox VE 9.1)                                  │
│ EPYC 7502P · 256 GB DDR4-2933 · 4× NVMe                             │
├────────────────────────────────────────────────────────────────────┤
│                                                                    │
│ LXC 100 · crearack-llama-epyc-02 (PROD - actual)                   │
│ ├─ llama-server :8080 (modelo PROD fijo, gemma 26B Q?_K_M)         │
│ ├─ Auto-Plan + CNS + Help + tutor + MIB + ops apuntan AQUÍ         │
│ └─ NUNCA se interrumpe                                              │
│                                                                    │
│ LXC 102 · crearack-llama-playground (NUEVO)                         │
│ ├─ llama-server :8081 (modelo intercambiable)                      │
│ ├─ Switch modelo via UI o CLI sin afectar PROD                     │
│ └─ Multi-instancia opcional :8082, :8083 para tener varios warm    │
│                                                                    │
│ LXC 101 · crearack-openwebui (NUEVO)                                │
│ ├─ Docker container Open WebUI :3000                               │
│ ├─ Auth multi-usuario, BD conversaciones persistente               │
│ ├─ API keys nativas + RAG sobre documentos                         │
│ ├─ Endpoint OpenAI-compat agregando ambos LXC 100 + 102            │
│ └─ Posible LiteLLM proxy delante para tenant management            │
│                                                                    │
│ Pool ZFS llamacpp (888 GB)                                          │
│ ├─ Modelos GGUF (compartidos vía bind-mounts)                      │
│ │   ├─ gemma-4-26B-A4B-it-Q?_K_M.gguf  (PROD)                      │
│ │   ├─ gemma-4-31B-it-Q?_K_M.gguf                                  │
│ │   ├─ gemma-4-E4B-it-Q?_K_M.gguf                                  │
│ │   ├─ Qwen3.6-27B-Q?_K_M.gguf                                     │
│ │   ├─ Qwen3.6-35B-A3B-Q?_K_M.gguf                                 │
│ │   └─ ...                                                          │
│ └─ Registry JSON con metadatos                                     │
│                                                                    │
│ Pool ZFS backup (888 GB)                                            │
│ └─ vzdump nightly de los 3 LXC                                      │
└────────────────────────────────────────────────────────────────────┘
                                │
                                │ Tailscale (CreaRackSL@)
                                │
        ┌───────────────────────┼───────────────────────────┐
        │                       │                           │
   CreaRack PROD           Edu / Dani devices         Otros proyectos
   (Auto-Plan,             (UI ChatGPT-like           (futuras apps con
    CNS, etc.)              en navegador)              API keys propias)

4. Fases del plan

Fase A · Modelos en disco + CLI gestión (estimación ~3 h)

Objetivo: tener varios modelos descargados + scripts CLI para gestión sin UI.

Implementación:

Modelos a descargar inicialmente: los 5 que pidió Edu en s45 (verificados existen):

Total estimado en Q4_K_M: ~77 GB. Cabe ×10 en pool de 888 GB.

Fase B · LXC 102 playground separado (estimación ~1.5 h)

Objetivo: experimentar con modelos sin interrumpir Auto-Plan PROD.

Implementación:

Beneficio clave: cualquier model-switch en LXC 102 NO afecta a LXC 100. Auto-Plan PROD nunca pierde servicio.

Fase C · Open WebUI (LXC 101, estimación ~3 h)

Objetivo: UI ChatGPT-like para uso humano + API keys nativas.

Stack:

Configuración:

Lo que Open WebUI NO da out-of-the-box:

Fase D · LiteLLM proxy multi-tenant (opcional, estimación ~2 h)

Cuándo: si surgen apps externas a CreaRack que necesitan consumir el llama (ej: app móvil, plugin Excel, integración con Holded, etc.).

Por qué:

Setup: container Docker en LXC 101 junto a Open WebUI. Configurado con cada llama-server como “model” con virtual keys por tenant.

Fase E · Backups + DR (estimación ~1 h)

Fase F · Observabilidad (estimación ~2 h)

Fase G · Cost tracking interno (opcional, estimación ~3 h)

Para qué: si crece a varios proyectos consumiendo el llama, conviene saber quién usa cuánto para distribuir coste interno (aunque sea coste fijo del server, da visibilidad).


5. Estimación total

FaseTiempoBloqueante para next
A · Modelos + CLI~3 hsí
B · LXC 102 playground~1.5 hsí
C · Open WebUI LXC 101~3 hparcial
D · LiteLLM (opcional)~2 hno
E · Backups + DR~1 hno
F · Observabilidad~2 hno
G · Cost tracking (opcional)~3 hno

Total mínimo viable (A+B+C+E+F): ~10 h trabajo efectivo. Total completo (A-G): ~15 h.

Distribución sugerida en 2-3 sesiones cuando llegue el momento.


6. Decisiones técnicas pendientes (cuando se aborde)


7. Riesgos identificados

  1. Saturación pve-epyc-02 al migrar todos los sites CreaRack: hoy solo Auto-Plan usa el server. CNS + Help + tutor + MIB pueden tener tráfico concurrente alto. Hay que medir caudal antes de migrar y validar que un único llama-server CPU aguanta. Si no → escalar (otro EPYC) o aceptar fallback a OpenRouter para sites menos críticos.
  2. Open WebUI lock-in: si el proyecto upstream cambia de licencia o se abandona, hay que migrar de UI. Mitigación: BD postgres exportable, conversaciones standard.
  3. Multi-instancia llama-server compite por bandwidth de RAM: aunque haya 256 GB, dos modelos cargados leyendo simultáneamente saturan los 8 canales DDR4. Probar bajo carga antes de prometer “varios modelos warm a la vez”.
  4. API keys filtradas: si una key se filtra a tercero, le da acceso ilimitado al llama. Mitigación: rate limit + rotación periódica + scope mínimo.
  5. Coste de mantenimiento creciente: 3 LXC + Docker + BD + observabilidad = más superficies que mantener. Validar que merece la pena vs simplicidad actual.

8. Trigger para ejecutar el plan

Las dos condiciones que destrabaán este plan:

✅ Auto-Plan al 100 % (calidad ≥ 95 % con modelo self-hosted, plano 70 racks ≤ 4 min) durante 2 semanas estables. ✅ Sites IA CreaRack restantes (CNS, Help, tutor, MIB, ops, finops, perf, workspace 3) migrados a OLLAMA_BASE_URL=http://100.80.142.60:8080 y operativos con calidad/latencia aceptables.

Cuando ambas se cumplan, abrir sesión dedicada para Fase A + B + C como mínimo viable. D-G según prioridades del momento.


9. Referencias


Véase también

Subir