Open WebUI: interfaz similar a ChatGPT para Ollama

Open WebUI Ollama es hoy la combinación más práctica para tener una interfaz tipo ChatGPT en tu propia máquina, sin depender de la nube. Esta pila completamente autoalojada convierte tu servidor Ollama en una aplicación web multiusuario, con historial de conversaciones, gestión de modelos y RAG documental. Esta guía detalla la instalación de Open WebUI Ollama mediante Docker, la configuración de red, los modelos compatibles según tu VRAM, las funciones avanzadas (RAG, multiusuario, MCP) y las limitaciones que debes conocer antes de un despliegue interno en producción.

¿Qué es Open WebUI y por qué asociarlo con Ollama?

Open WebUI (anteriormente Ollama WebUI) es un front-end de código abierto escrito en SvelteKit + FastAPI, publicado bajo licencia BSD-3 en github.com/open-webui/open-webui. Ofrece una interfaz conversacional equivalente a ChatGPT, pero conectada a un backend de inferencia local. Ollama desempeña este papel de backend: un demonio que carga modelos GGUF cuantizados y expone una API HTTP compatible con OpenAI en el puerto 11434.

La combinación de los dos da una interfaz para LLM locales completa:

A diferencia de LM Studio, que es para un solo usuario y funciona únicamente como aplicación de escritorio, Open WebUI gestiona cuentas, grupos, permisos por modelo y un modo RAG con una base de datos vectorial ChromaDB integrada. Es la opción preferible para compartir un servidor de inferencia entre varios colaboradores.

Instalación mediante Docker: el método recomendado

L'installation WebUI Docker es el método con soporte del equipo de Open WebUI. Evita los conflictos entre dependencias de Python y permite actualizaciones atómicas.

Prerrequisitos :

Comando mínimo (Ollama ya instalado en el anfitrión) :

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

La interfaz está luego disponible en http://localhost:3000. La primera cuenta creada recibe automáticamente el rol de administrador.

Stack docker-compose todo en uno (Ollama + WebUI + GPU NVIDIA) : ver el archivo de referencia en docs.openwebui.com/getting-started/quick-start. El servicio ollama debe montar un volumen persistente /root/.ollama para conservar los modelos descargados entre reinicios; de lo contrario, volverás a descargar varios cientos de gigaoctetos en cada docker compose down.

Para AMD ROCm, usa la imagen ghcr.io/open-webui/open-webui:main combinada con ollama/ollama:rocm. El rendimiento de la RX 7900 XTX equivale aproximadamente al 70-80 % del de una RTX 4090 en Q4_K_M (cifra estimada, depende del modelo).

Elegir el modelo adecuado para tu hardware

Open WebUI muestra todos los modelos presentes en el registro local de Ollama. El factor limitante sigue siendo la VRAM. Aquí tienes tres niveles acordes con el hardware de consumo y profesional.

Una RTX 4090 (24 GB de VRAM) es adecuada para modelos de 30 a 70B en Q4 con descarga parcial a la CPU:

Una estación de trabajo con 2× RTX 6000 Ada (96 GB en total) permite plantearse usar modelos MoE compactos:

Un servidor con 8× H100 (640 GB) o un clúster Abre las fronteras:

Para un dimensionamiento preciso según tu tarjeta, utiliza el configurador de quelllm.fr que combina la VRAM disponible, la cuantización deseada y la longitud de contexto objetivo.

Funcionalidades avanzadas: RAG, funciones, MCP

Open WebUI va más allá del simple chat. Hay tres funciones que merece la pena configurar desde la instalación.

RAG integrado : sube PDF, DOCX, TXT o URLs a una «Colección». Open WebUI los divide (tamaño de chunk por defecto 1500, superposición 100), genera embeddings mediante sentence-transformers/all-MiniLM-L6-v2 localmente o a través de Ollama (nomic-embed-text), y almacena en ChromaDB. En la inferencia, los chunks relevantes se introducen en el contexto. Para bases voluminosas, cambia a PostgreSQL + pgvector mediante la variable VECTOR_DB=pgvector.

Las funciones Python (Pipelines) : Open WebUI permite ejecutar código arbitrario en preprocesamiento o postprocesamiento. Ejemplo: redirigir automáticamente los prompts que contengan «code» hacia Qwen3-Coder-Next 80B-A3B, y los demás a Mistral Medium 3.5 128B. Los pipelines funcionan en un contenedor separado en el puerto 9099, aislamiento útil para la seguridad.

El soporte del protocolo MCP (Model Context Protocol) : desde la versión 0.6, Open WebUI utiliza servidores MCP. Consulta la especificación oficial para los servidores disponibles (filesystem, GitHub, Postgres, etc.).

Comparación detallada de los frontends en quelllm.fr/compare/open-webui-vs-lm-studio.

Rendimiento y tokens por segundo observados

Las velocidades dependen del par modelo/GPU. Algunas mediciones de referencia con Ollama 0.5+ y Open WebUI 0.6+ en Q4_K_M:

El streaming WebSocket de Open WebUI añade una latencia imperceptible (<10 ms). El cuello de botella sigue siendo la propia inferencia. Para optimizar, activa OLLAMA_FLASH_ATTENTION=1 et OLLAMA_KV_CACHE_TYPE=q8_0 dentro del entorno del contenedor Ollama: ahorro de memoria del 30-40 % en el contexto (ver github.com/ollama/ollama/blob/main/docs/faq.md).

Para modelos de razonamiento como DeepSeek R1 671B, calcula que se generarán entre 3 y 10 veces más tokens por solicitud (cadena de pensamiento interna), lo que supone tiempos de respuesta de varios minutos incluso en una infraestructura potente.

Seguridad y despliegue multiusuario

En el ámbito empresarial, hay que tomar tres precauciones:

Audita regularmente los logs /app/backend/data/audit.log que registran los prompts y las cargas de archivos.

FAQ

P: ¿Funciona Open WebUI sin Ollama?

Sí. Open WebUI acepta cualquier API compatible con OpenAI: vLLM, servidor llama.cpp, LiteLLM, TGI. Configura la URL en Configuración → Conexiones. Ollama sigue siendo la vía más sencilla para comenzar porque su CLI gestiona automáticamente la descarga, la cuantización GGUF y la memoria. Para un despliegue de alto rendimiento con paralelismo tensorial maduro, vLLM o SGLang son preferibles.

P: ¿Qué tamaño mínimo de VRAM es necesario para comenzar?

Con 8 GB de VRAM (RTX 3060, 4060), puedes ejecutar cómodamente modelos de 7-8B, como variantes destiladas ligeras. Para 12-16 GB, busca modelos de 13-14B. La regla empírica: VRAM ≈ parámetros × 0,6 en Q4_K_M, más 1-2 GB para el contexto 8K. Consulta quelllm.fr/guide/vram-quantification para el detalle por cuantización (Q4, Q5, Q8, FP16).

P: ¿Cómo instalar Open WebUI sin Docker?

Via pip install open-webui puis open-webui serve. Este método está documentado pero menos aislado: posibles conflictos con otros entornos Python, actualizaciones más delicadas. Resérvalo para máquinas de desarrollo. Para un puesto de trabajo de un solo usuario, LM Studio o Jan pueden ser más sencillos; compáralos en quelllm.fr/compare/lm-studio-vs-jan.

Q: ¿Se puede conectar Open WebUI a varios servidores Ollama?

Sí. En Configuración → Conexiones, añade varias URL de Ollama (p. ej. http://gpu-01:11434, http://gpu-02:11434). Open WebUI agrupa los modelos disponibles. El enrutamiento es manual (el usuario elige el modelo); para un balanceo de carga automático, intercala LiteLLM como proxy. Útil para distribuir Mixtral 8x22B Instruct en un nodo y Llama 3.1 405B Instruct en otro.

P: ¿Las conversaciones están cifradas en reposo?

No por defecto. La base SQLite /app/backend/data/webui.db almacena los mensajes en texto plano. Para el cifrado en reposo, utiliza un volumen de Docker en un sistema de archivos cifrado (LUKS, cifrado nativo de ZFS) o migra a PostgreSQL con Transparent Data Encryption. El tráfico de red, por su parte, puede cifrarse mediante el proxy inverso TLS mencionado anteriormente.

P: ¿Open WebUI admite visión e imágenes?

Sí, con los modelos multimodales. Sube una imagen a la conversación: Open WebUI la codifica en base64 y la envía a Ollama si el modelo soporta la modalidad de visión. Modelos compatibles en el catálogo: Qwen 2.5 VL 72B, Qwen 3 VL 235B-A22B, LLaVA-OneVision 72B et Molmo 72B.

Conclusión

Open WebUI Ollama constituye la pila de referencia para ofrecer una interfaz similar a ChatGPT en un entorno autoalojado, desde un portátil hasta un clúster de GPU. La instalación con Docker lleva quince minutos; añadir la configuración de RBAC y RAG requiere unas horas. La elección del modelo sigue siendo el factor determinante: ajusta con precisión los parámetros, la cuantización y la VRAM disponible. Para explorar los 249 modelos indexados según las limitaciones de tu hardware, consulta el catálogo completo de quelllm.fr o deja el configurador recomendar la combinación óptima de modelo y cuantización para tu GPU.

Artículo publicado el por Mohamed Meguedmi · Fuente de datos: /api/models.json · Licencia del contenido: CC BY 4.0.

¿Tienes algún error o alguna actualización que comunicar? Colaborar.