Open WebUI

Arquitectura
┌───────────────────────────────────────────────────────────────┐
│ USUARIO │
│───────────────────────────────────────────────────────────────│
│ 💬 Usa navegador web (Chrome, Firefox, etc.) │
│ 🌐 Accede a http://tu-servidor:3000 │
└───────────────┬───────────────────────────────────────────────┘
│ 1️⃣ Escribe / envía prompt
▼
┌──────────────────────────────────────────────────────────────────────┐
│ 🖥️ Open WebUI (contenedor Docker) │
│──────────────────────────────────────────────────────────────────────│
│ - Interfaz tipo ChatGPT │
│ - Guarda historiales de chat (persistencia) │
│ - Tiene “Knowledge Base” (memoria larga / aprendizaje) │
│ - Llama al modelo LLM a través de API local │
└───────────────┬──────────────────────────────────────────────────────┘
│ 2️⃣ Envía prompt al motor de IA local (Ollama)
▼
┌──────────────────────────────────────────────────────────────────────┐
│ 🧠 Ollama (host, fuera del contenedor) │
│──────────────────────────────────────────────────────────────────────│
│ - Maneja modelos LLM (Llama 3, Mistral, Phi-3, etc.) │
│ - Usa GPU vía CUDA para acelerar inferencia │
│ - Expone API local http://localhost:11434 │
│ - Compatible con múltiples modelos y embeddings │
└───────────────┬──────────────────────────────────────────────────────┘
│ 3️⃣ Llama a la GPU para procesar el modelo
▼
┌──────────────────────────────────────────────────────────────────────┐
│ ⚙️ NVIDIA Container Toolkit + Drivers CUDA │
│──────────────────────────────────────────────────────────────────────│
│ - “Puentea” la GPU física hacia los contenedores │
│ - Permite ejecutar CUDA/Tensor ops dentro de Docker │
│ - Asegura compatibilidad entre driver y librerías del contenedor │
└───────────────┬──────────────────────────────────────────────────────┘
│ 4️⃣ Acceso a la GPU física
▼
┌──────────────────────────────────────────────────────────────────────┐
│ 💻 GPU Física (RTX, CUDA cores, VRAM) │
│──────────────────────────────────────────────────────────────────────│
│ - Ejecuta el modelo LLM en paralelo masivo │
│ - Usa librerías CUDA/cuDNN/TensorRT instaladas en Ubuntu │
│ - Devuelve resultados procesados a Ollama │
└──────────────────────────────────────────────────────────────────────┘
Open WebUI corre dentro de Docker y usa Ollama o PyTorch como backend IA.
Instalar
crea un fichero docker-compose.yaml con el contenido:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: unless-stopped
network_mode: "host"
environment:
- OLLAMA_BASE_URL=http://127.0.0.1:11434
volumes:
- open-webui:/app/backend/data
deploy:
resources:
reservations:
devices:
- capabilities: [gpu]
volumes:
open-webui:
Levanta el contenedor:
docker compose up -d
Ahora ya puedes acceder a Open WebUI en http://IP-Host:8080