Integración de Open WebUI
Open WebUI es una interfaz web autohospedada y de código abierto que proporciona una experiencia similar a ChatGPT para modelos de IA locales. Puedes conectarla a Docker Model Runner para obtener una interfaz de chat pulida para tus modelos.
Requisitos previos
- Docker Model Runner habilitado con acceso TCP
- Un modelo descargado (por ejemplo,
docker model pull ai/llama3.2)
Inicio rápido con Docker Compose
La forma más sencilla de ejecutar Open WebUI con Docker Model Runner es utilizando Docker Compose.
Crea un archivo compose.yaml:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:12434
- WEBUI_AUTH=false
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:Inicia los servicios:
$ docker compose up -d
Abre tu navegador en http://localhost:3000.
Opciones de configuración
Variables de entorno
| Variable | Descripción | Predeterminado |
|---|---|---|
OLLAMA_BASE_URL | URL de Docker Model Runner | Requerido |
WEBUI_AUTH | Habilitar autenticación | true |
OPENAI_API_BASE_URL | Usar la API compatible con OpenAI en su lugar | - |
OPENAI_API_KEY | Clave de API (usa cualquier valor para DMR) | - |
Usar la API compatible con OpenAI
Si prefieres utilizar la API compatible con OpenAI en lugar de la API de Ollama:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OPENAI_API_BASE_URL=http://host.docker.internal:12434/engines/v1
- OPENAI_API_KEY=not-needed
- WEBUI_AUTH=false
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:Configuración de red
Docker Desktop
En Docker Desktop, host.docker.internal se resuelve automáticamente a la máquina host. El ejemplo anterior funciona sin modificaciones.
Docker Engine (Linux)
En Docker Engine, es posible que necesites configurar la red de forma diferente:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
network_mode: host
environment:
- OLLAMA_BASE_URL=http://localhost:12434
- WEBUI_AUTH=false
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:O usa el gateway del host:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://172.17.0.1:12434
- WEBUI_AUTH=false
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:Usar Open WebUI
Seleccionar un modelo
- Abre http://localhost:3000.
- Selecciona el menú desplegable de modelos en la esquina superior izquierda.
- Elige uno de tus modelos descargados (aparecen con el prefijo
ai/).
Descargar modelos a través de la interfaz de usuario
Open WebUI puede descargar modelos directamente:
- Selecciona el menú desplegable de modelos.
- Introduce el nombre de un modelo:
ai/llama3.2. - Selecciona el icono de descarga.
Características del chat
Open WebUI proporciona:
- Conversaciones de múltiples turnos con contexto
- Edición y regeneración de mensajes
- Resaltado de sintaxis de código
- Renderizado de Markdown
- Historial de conversaciones y búsqueda
- Exportar conversaciones
Ejemplo completo con múltiples modelos
Este ejemplo configura Open WebUI con Docker Model Runner y descarga previamente varios modelos:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:12434
- WEBUI_AUTH=false
- DEFAULT_MODELS=ai/llama3.2
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- open-webui:/app/backend/data
depends_on:
model-setup:
condition: service_completed_successfully
model-setup:
image: docker:cli
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: >
sh -c "
docker model pull ai/llama3.2 &&
docker model pull ai/qwen2.5-coder &&
docker model pull ai/smollm2
"
volumes:
open-webui:Habilitar la autenticación
Para configuraciones multiusuario o por seguridad, habilita la autenticación:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://host.docker.internal:12434
- WEBUI_AUTH=true
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:En la primera visita, crearás una cuenta de administrador.
Resolución de problemas
Los modelos no aparecen en el menú desplegable
Verifica que Docker Model Runner sea accesible:
$ curl http://localhost:12434/api/tagsComprueba que los modelos estén descargados:
$ docker model listVerifica que
OLLAMA_BASE_URLsea correcta y accesible desde el contenedor.
Errores de "Conexión rechazada" (Connection refused)
Asegúrate de que el acceso TCP esté habilitado para Docker Model Runner.
En Docker Desktop, verifica que
host.docker.internalse resuelva:$ docker run --rm alpine ping -c 1 host.docker.internalEn Docker Engine, intenta usar
network_mode: hosto la IP explícita del host.
Tiempos de respuesta lentos
Las primeras solicitudes cargan el modelo en memoria, lo cual lleva tiempo.
Las solicitudes posteriores son mucho más rápidas.
Si la lentitud es constante, considera:
- Utilizar un modelo más pequeño
- Reducir el tamaño del contexto
- Comprobar que la aceleración por GPU esté funcionando
Errores de CORS
Si ejecutas Open WebUI en un host diferente:
- En Docker Desktop, ve a Settings > AI.
- Añade la URL de Open WebUI a CORS Allowed Origins.
Personalización
Prompts del sistema personalizados
Open WebUI admite la configuración de prompts del sistema por modelo. Configúralos en la interfaz de usuario en Settings > Models.
Parámetros del modelo
Ajusta los parámetros del modelo en la interfaz de chat:
- Selecciona el icono de configuración junto al nombre del modelo.
- Ajusta la temperatura, top-p, tokens máximos, etc.
Estos ajustes se pasan a Docker Model Runner.
Ejecutar en un puerto diferente
Para ejecutar Open WebUI en un puerto diferente:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "8080:8080" # Cambia el primer número de puerto
# ... resto de la configuraciónQué sigue
- Referencia de la API - Obtén información sobre las API que utiliza Open WebUI
- Opciones de configuración - Ajusta el comportamiento del modelo
- Integraciones de IDE - Conecta otras herramientas a DMR