¡Pregunte, nosotros le respondemos!

Aplicaciones y Guías

Open WebUI: Todo en uno

Open WebUI fue desarrollado originalmente para Ollama, de la que hablamos en uno de nuestros artículos. Anteriormente, se llamaba Ollama WebUI, pero con el tiempo, el enfoque cambió a la universalidad de la aplicación, y el nombre fue cambiado a Open WebUI. Este software resuelve el problema clave de trabajar cómodamente con grandes modelos de redes neuronales colocados localmente o en servidores controlados por el usuario.

Instalación

El método de instalación principal y más preferido es desplegar un contenedor Docker. Esto le permite no pensar en la presencia de dependencias u otros componentes que aseguren el correcto funcionamiento del software. Sin embargo, puedes instalar Open WebUI clonando el repositorio del proyecto desde GitHub y construyéndolo desde el código fuente. En este artículo, consideraremos ambas opciones.

Antes de empezar, asegúrate de que los controladores GPU están instalados en el servidor. Nuestra instrucción Instalar controladores NVIDIA® en Linux te ayudará a hacerlo.

Usando Docker

Si acabas de encargar un servidor, no dispondrás del motor Docker ni del conjunto de herramientas necesarias para pasar las GPU al contenedor. No recomendamos instalar Docker desde el repositorio estándar de Ubuntu, ya que puede estar desactualizado y no soportar todas las opciones modernas. Sería mejor utilizar el script de instalación publicado en el sitio web oficial:

curl -sSL https://get.docker.com/ | sh

Además de Docker, necesitas instalar el NVIDIA® Container Toolkit, así que activa el repositorio de Nvidia:

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
&& curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

Actualiza tu caché de paquetes e instala NVIDIA® Container Toolkit:

sudo apt update && sudo apt -y install nvidia-container-toolkit

Para que la cadena de herramientas funcione, tendrás que reiniciar el demonio Docker:

sudo systemctl restart docker

Ahora puedes ejecutar el contenedor deseado. Tenga en cuenta que el siguiente comando no aísla los contenedores de la red host porque más tarde puede habilitar opciones adicionales, tales como la generación de imágenes utilizando la WebUI de Stable Diffusion. Este comando descargará y ejecutará automáticamente todas las capas de la imagen:

sudo docker run -d --network=host --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

Usando Git

Ubuntu 22.04

Primero, necesitas clonar el contenido del repositorio:

git clone https://github.com/open-webui/open-webui.git

Abre el directorio descargado:

cd open-webui/

Copia la configuración de ejemplo (puedes modificarla si es necesario), que establecerá las variables de entorno para la compilación:

cp -RPp .env.example .env

Instala el instalador NVM, que te ayudará a instalar la versión necesaria de Node.js en el servidor:

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

Después de eso, es necesario cerrar y volver a abrir la sesión SSH para que el siguiente comando funcione correctamente.

Instalar Node Package Manager:

sudo apt -y install npm

Instala Node.js versión 22 (actual en el momento de escribir este artículo):

npm install 22

Instalar las dependencias necesarias para el posterior montaje:

npm install

Comencemos la compilación. Tenga en cuenta que requiere más de 4 GB de RAM libre:

npm run build

El frontend está listo; ahora es el momento de preparar el backend. Ve al directorio con el mismo nombre:

cd ./backend

Instala los paquetes pip y ffmpeg:

sudo apt -y install python3-pip ffmpeg

Antes de la instalación, es necesario añadir una nueva ruta a la variable de entorno:

sudo nano ~/.bashrc

Añada la siguiente línea al final del archivo:

export PATH="/home/usergpu/.local/bin:$PATH"

Actualicémoslo a la última versión:

python3 -m pip install --upgrade pip

Ahora puedes instalar las dependencias:

pip install -r requirements.txt -U

Instalar Ollama:

curl -fsSL https://ollama.com/install.sh | sh

Todo está listo para lanzar la aplicación:

bash start.sh

Ubuntu 24.04 / 24.10

Cuando instales OpenWebUI en Ubuntu 24.04/24.10, te enfrentarás a un reto clave: el sistema operativo usa Python 3.12 por defecto, mientras que OpenWebUI solo soporta la versión 3.11. No puedes simplemente downgradear Python, hacerlo rompería el sistema operativo. Como el paquete python3.11 no está disponible en los repositorios estándar, necesitarás crear un entorno virtual para usar la versión correcta de Python.

La mejor solución es utilizar el sistema de gestión de paquetes Conda. Conda funciona como pip pero añade soporte de entorno virtual similar a venv. Dado que sólo necesitas una funcionalidad básica, utilizarás Miniconda, una distribución ligera. Descarga la última versión desde GitHub:

curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"

Ejecuta el script:

bash Miniforge3-$(uname)-$(uname -m).sh
Creemos un entorno virtual llamado pyenv y especifiquemos la versión 3.11 de Python:
conda create -n pyenv python=3.11

Activemos el entorno creado:

conda activate pyenv

Ahora puedes proceder con los pasos estándar de instalación de OpenWebUI para Ubuntu 22.04. El entorno virtual asegura que todos los scripts de instalación se ejecutarán sin problemas y sin conflictos de versiones de paquetes.

Modelos

Biblioteca Ollama

Open WebUI le permite cargar modelos directamente desde la interfaz web, especificando únicamente el nombre en el formato model:size. Para ello, vaya a http://192.168.88.20:8080/admin/settings y haga clic en Connections. A continuación, haga clic en el icono de llave inglesa situado frente a la cadena http://localhost:11434. Después de ver los nombres de los modelos de la biblioteca, introduzca su nombre y haga clic en el icono de carga:

Open WebUI manage models

A continuación, el sistema descargará automáticamente el modelo deseado, que quedará inmediatamente disponible para su uso. Dependiendo del tamaño seleccionado, la descarga puede tardar un tiempo diferente. Antes de realizar la descarga, asegúrese de que hay espacio suficiente en la unidad de disco. Para más información, consulte el artículo Particionamiento del disco en Linux.

Modelos personalizados

Si necesita integrar un modelo de red neuronal que no se encuentra en la biblioteca Ollama, puede utilizar la función experimental y cargar cualquier modelo arbitrario en formato GGUF. Para ello, vaya a Settings - Admin Settings - Connections y haga clic en el icono de llave inglesa situado frente a http://localhost:11434. Haga clic en Show en la sección Experimental. Por defecto, está activado el modo archivo, que permite cargar un archivo desde el ordenador local. Si hace clic en File Mode, cambiará a URL Mode, que le permite especificar la URL del archivo modelo, y el servidor lo descargará automáticamente:

Open WebUI upload gguf model

RAG

Además de una interfaz web cómoda y funcional, Open WebUI ayuda a ampliar las capacidades de los distintos modelos, garantizando su uso conjunto. Por ejemplo, es fácil cargar documentos para formar una base de datos vectorial RAG (Retrieval-augmented generation). En el proceso de generación de una respuesta al usuario, LLM podrá basarse no sólo en los datos obtenidos directamente como resultado del entrenamiento, sino también en los colocados en una base de datos vectorial similar.

Documentos

Por defecto, Open WebUI escanea el directorio /data/docs en busca de archivos que puedan ser colocados en el espacio vectorial de la base de datos y realiza la transformación utilizando el modelo incorporado all-MiniLM-L6-v2. Este no es el único modelo adecuado para esta tarea, por lo que tiene sentido probar otras opciones, por ejemplo, de esta lista.

Los documentos de texto, sin etiquetas ni otros caracteres especiales, son los más adecuados para el GAR. Por supuesto, puede cargar documentos tal cual, pero esto puede afectar en gran medida a la precisión de las respuestas generadas. Por ejemplo, si tienes una base de conocimientos en formato Markdown, primero puedes limpiarla de formato y sólo después subirla a /data/docs.

Búsqueda web

Además de los documentos locales, se puede ordenar al modelo de red neuronal que utilice cualquier sitio web como fuente de datos. Esto le permitirá responder a preguntas utilizando no sólo los datos con los que fue entrenado, sino también datos alojados en sitios web especificados por el usuario.

De hecho, se trata de un tipo de RAG, que recibe páginas HTML como entrada y luego las transforma de una manera especial, ocupando su lugar en una base de datos vectorial. La búsqueda en dicha base de datos será muy rápida; por lo tanto, el modelo de red neuronal podrá generar rápidamente una respuesta basada en sus resultados. Open WebUI soporta diferentes motores de búsqueda, pero sólo puede trabajar con uno a la vez, que se especifica en la configuración.

Para incluir los resultados de la búsqueda web en las respuestas de la red neuronal, haz clic en + (símbolo más) y desliza el interruptor de Búsqueda web:

Open WebUI enable Web Search

Generación de imágenes

Lo más destacado de Open WebUI es que este software permite combinar varias redes neuronales con diferentes tareas para resolver un mismo problema. Por ejemplo, Llama 3.1 dialoga perfectamente con el usuario en varios idiomas, pero sus respuestas serán exclusivamente texto. No puede generar imágenes, por lo que no hay forma de ilustrar sus respuestas.

Stable Diffusion, sobre la que hemos escrito a menudo, es lo contrario: esta red neuronal genera imágenes perfectamente, pero no puede trabajar con textos en absoluto. Los desarrolladores de Open WebUI intentaron combinar los puntos fuertes de ambas redes neuronales en un diálogo e implementaron el siguiente esquema de trabajo.

Cuando realizas un diálogo en Open WebUI, aparece un botón especial junto a cada respuesta de la red neuronal. Al hacer clic en él, recibirás una ilustración de esta respuesta directamente en el chat:

Open WebUI images in dialogue

Esto se consigue llamando a la API de Difusión Estable WebUI, y por el momento, están disponibles una conexión con versiones de Automatic1111 y una conexión con ComfyUI. También puede generar imágenes a través de la red neuronal Dall-E, pero no se puede implementar localmente - se trata de un servicio de generación de imágenes de pago con código fuente cerrado.

Esta característica sólo funcionará si, además de Open WebUI con Ollama, Stable Diffusion WebUI está instalado en el servidor. Puedes encontrar las instrucciones de instalación aquí. Lo único que vale la pena mencionar es que al ejecutar el script ./webui.sh, tendrá que especificar una clave adicional para habilitar la API:

./webui.sh --listen --api --gradio-auth user:password

Otro escollo puede surgir debido a la falta de memoria de vídeo. Si te encuentras con esto, puedes utilizar dos claves útiles: --medvram y --lowvram. Esto evitará el error Out-of-memory al iniciar la generación.

Ver también:



Actualizado: 12.08.2025

Publicado: 20.01.2025