Open WebUI : Tout en un

Open WebUI a été développé à l'origine pour Ollama, dont nous avons parlé dans l'un de nos articles. Auparavant, il s'appelait Ollama WebUI, mais au fil du temps, l'accent a été mis sur l'universalité de l'application, et le nom a été changé en Open WebUI. Ce logiciel résout le problème clé du travail pratique avec de grands modèles de réseaux neuronaux placés localement ou sur des serveurs contrôlés par l'utilisateur.
Installation du logiciel
La méthode d'installation principale et préférée consiste à déployer un conteneur Docker. Cela vous permet de ne pas penser à la présence de dépendances ou d'autres composants qui garantissent le bon fonctionnement du logiciel. Cependant, vous pouvez installer Open WebUI en clonant le dépôt du projet depuis GitHub et en le construisant à partir du code source. Dans cet article, nous examinerons les deux options.
Avant de commencer, assurez-vous que les pilotes GPU sont installés sur le serveur. Notre instruction Installer les pilotes NVIDIA® sous Linux vous aidera à le faire.
Utilisation de Docker
Si vous venez de commander un serveur, vous ne disposerez pas du moteur Docker ni de l'ensemble des outils nécessaires pour transférer les GPU dans le conteneur. Nous ne recommandons pas d'installer Docker à partir du dépôt standard d'Ubuntu, car il peut être obsolète et ne pas prendre en charge toutes les options modernes. Il est préférable d'utiliser le script d'installation publié sur le site officiel :
curl -sSL https://get.docker.com/ | sh
En plus de Docker, vous devez installer le NVIDIA® Container Toolkit, donc activer le dépôt 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
Mettez à jour votre cache de paquets et installez NVIDIA® Container Toolkit :
sudo apt update && sudo apt -y install nvidia-container-toolkit
Pour que la chaîne d'outils fonctionne, vous devez redémarrer le démon Docker :
sudo systemctl restart docker
Vous pouvez maintenant exécuter le conteneur souhaité. Notez que la commande suivante n'isole pas les conteneurs du réseau de l'hôte car plus tard, vous pourrez activer des options supplémentaires, telles que la génération d'images à l'aide de l'interface Web de Stable Diffusion. Cette commande téléchargera et exécutera automatiquement toutes les couches de l'image :
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
Utilisation de Git
Ubuntu 22.04
Tout d'abord, vous devez cloner le contenu du dépôt :
git clone https://github.com/open-webui/open-webui.git
Ouvrez le répertoire téléchargé :
cd open-webui/
Copiez l'exemple de configuration (vous pouvez le modifier si nécessaire), qui définira les variables d'environnement pour la construction :
cp -RPp .env.example .env
Installer le programme d'installation NVM, qui vous aidera à installer la version requise de Node.js sur le serveur :
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Ensuite, vous devez fermer et rouvrir la session SSH pour que la commande suivante fonctionne correctement.
Installer le gestionnaire de paquets Node :
sudo apt -y install npm
Installez la version 22 de Node.js (version actuelle au moment de la rédaction de cet article) :
npm install 22
Installer les dépendances nécessaires à la poursuite de l'assemblage :
npm install
Commençons la construction. Veuillez noter qu'il faut plus de 4 Go de RAM libre :
npm run build
Le frontend est prêt ; il est maintenant temps de préparer le backend. Allez dans le répertoire portant le même nom :
cd ./backend
Installez les paquets pip et ffmpeg :
sudo apt -y install python3-pip ffmpeg
Avant l'installation, vous devez ajouter un nouveau chemin à la variable d'environnement :
sudo nano ~/.bashrc
Ajoutez la ligne suivante à la fin du fichier :
export PATH="/home/usergpu/.local/bin:$PATH"
Mettons-le à jour avec la dernière version :
python3 -m pip install --upgrade pip
Vous pouvez maintenant installer les dépendances :
pip install -r requirements.txt -U
Installer Ollama :
curl -fsSL https://ollama.com/install.sh | sh
Tout est prêt pour lancer l'application :
bash start.sh
Ubuntu 24.04 / 24.10
Lors de l'installation d'OpenWebUI sur Ubuntu 24.04/24.10, vous serez confronté à un défi majeur : le système d'exploitation utilise Python 3.12 par défaut, alors qu'OpenWebUI ne supporte que la version 3.11. Vous ne pouvez pas simplement rétrograder Python, car cela casserait le système d'exploitation. Comme le paquetage python3.11 n'est pas disponible dans les dépôts standard, vous devrez créer un environnement virtuel pour utiliser la bonne version de Python.
La meilleure solution consiste à utiliser le système de gestion de paquets Conda. Conda fonctionne comme pip mais ajoute un support d'environnement virtuel similaire à venv. Comme vous n'avez besoin que de fonctionnalités de base, vous utiliserez Miniconda, une distribution légère. Téléchargez la dernière version sur GitHub :
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
Exécutez le script :
bash Miniforge3-$(uname)-$(uname -m).sh
Créons un environnement virtuel nommé pyenv et spécifions la version 3.11 de Python :conda create -n pyenv python=3.11
Activez l'environnement créé :
conda activate pyenv
Vous pouvez maintenant procéder à l'installation standard d'OpenWebUI pour Ubuntu 22.04. L'environnement virtuel garantit que tous les scripts d'installation se dérouleront sans problème et sans conflit de version de paquetage.
Modèles
Bibliothèque Ollama
Open WebUI vous permet de télécharger des modèles directement à partir de l'interface web, en spécifiant uniquement le nom au format model:size. Pour ce faire, naviguez jusqu'à http://192.168.88.20:8080/admin/settings et cliquez sur Connections. Cliquez ensuite sur l'icône de clé à molette en face de la chaîne http://localhost:11434. Après avoir consulté les noms des modèles de la bibliothèque, saisissez son nom et cliquez sur l'icône de téléchargement :

Le système téléchargera ensuite automatiquement le modèle requis, qui sera immédiatement disponible. En fonction de la taille sélectionnée, le téléchargement peut prendre plus ou moins de temps. Avant de procéder au téléchargement, assurez-vous qu'il y a suffisamment d'espace sur le disque dur. Pour plus d'informations, voir l'article Partitionnement du disque sous Linux.
Modèles personnalisés
Si vous devez intégrer un modèle de réseau neuronal qui ne se trouve pas dans la bibliothèque Ollama, vous pouvez utiliser la fonction expérimentale et charger n'importe quel modèle arbitraire au format GGUF. Pour ce faire, allez sur Settings - Admin Settings - Connections et cliquez sur l'icône de clé à molette en face de http://localhost:11434. Cliquez sur Show dans la section Experimental. Par défaut, le mode fichier est activé, ce qui vous permet de charger un fichier à partir de votre ordinateur local. Si vous cliquez sur File Mode, vous passez à URL Mode, qui vous permet de spécifier l'URL du fichier modèle, et le serveur le téléchargera automatiquement :

RAG
Outre une interface web pratique et fonctionnelle, Open WebUI permet d'étendre les capacités des différents modèles et d'assurer leur utilisation conjointe. Par exemple, il est facile de télécharger des documents pour former une base de données vectorielle RAG (Retrieval-augmented generation). Au cours du processus de génération d'une réponse à l'utilisateur, LLM pourra s'appuyer non seulement sur les données obtenues directement à la suite de la formation, mais aussi sur les données placées dans une base de données vectorielles similaire.
Les documents
Par défaut, Open WebUI recherche dans le répertoire /data/docs les fichiers qui peuvent être placés dans l'espace vectoriel de la base de données et effectue la transformation en utilisant le modèle intégré all-MiniLM-L6-v2. Ce n'est pas le seul modèle adapté à cette tâche, il est donc judicieux d'essayer d'autres options, par exemple dans cette liste.
Les documents texte, dépourvus de balises et d'autres caractères spéciaux, sont les mieux adaptés à RAG. Bien sûr, vous pouvez télécharger des documents tels quels, mais cela peut affecter considérablement la précision des réponses générées. Par exemple, si vous disposez d'une base de connaissances au format Markdown, vous pouvez d'abord la débarrasser de son formatage, puis la télécharger dans /data/docs.
Recherche sur le web
Outre les documents locaux, il est possible de demander au modèle de réseau neuronal d'utiliser n'importe quel site web comme source de données. Cela lui permettra de répondre à des questions en utilisant non seulement les données sur lesquelles il a été formé, mais aussi des données hébergées sur des sites web spécifiés par l'utilisateur.
En fait, il s'agit d'un type de RAG, qui reçoit des pages HTML en entrée et les transforme ensuite d'une manière spéciale, en les plaçant dans une base de données vectorielle. La recherche dans une telle base de données sera très rapide ; par conséquent, le modèle de réseau neuronal sera en mesure de générer rapidement une réponse sur la base de ses résultats. Open WebUI prend en charge différents moteurs de recherche, mais ne peut en utiliser qu'un seul à la fois, ce qui est spécifié dans les paramètres.
Pour inclure les résultats de la recherche Web dans les réponses du réseau neuronal, cliquez sur + (symbole plus) et faites glisser le commutateur Recherche Web :

Génération d'images
Le point fort d'Open WebUI est que ce logiciel permet de combiner plusieurs réseaux neuronaux aux tâches différentes pour résoudre un seul problème. Par exemple, Llama 3.1 mène parfaitement un dialogue avec l'utilisateur en plusieurs langues, mais ses réponses seront exclusivement textuelles. Il ne peut pas générer d'images, il n'y a donc aucun moyen d'illustrer ses réponses.
Stable Diffusion, dont nous avons souvent parlé, est à l'opposé : ce réseau neuronal génère parfaitement des images, mais ne peut pas du tout travailler avec des textes. Les développeurs d'Open WebUI ont essayé de combiner les points forts des deux réseaux neuronaux dans un seul dialogue et ont mis en œuvre le schéma de travail suivant.
Lorsque vous menez un dialogue dans Open WebUI, un bouton spécial apparaît à côté de chaque réponse du réseau neuronal. En cliquant dessus, vous obtiendrez une illustration de cette réponse directement dans le dialogue :

Pour ce faire, il faut appeler l'API WebUI de Stable Diffusion et, pour l'instant, une connexion avec les versions d'Automatic1111 et une connexion à ComfyUI sont disponibles. Vous pouvez également générer des images via le réseau neuronal Dall-E, mais il ne peut pas être déployé localement - il s'agit d'un service payant de génération d'images dont le code source est fermé.
Cette fonctionnalité ne fonctionnera que si, en plus d'Open WebUI avec Ollama, Stable Diffusion WebUI est installé sur le serveur. Vous pouvez trouver les instructions d'installation ici. La seule chose qui mérite d'être mentionnée est que lors de l'exécution du script ./webui.sh, vous devrez spécifier une clé supplémentaire pour activer l'API :
./webui.sh --listen --api --gradio-auth user:password
Un autre problème peut survenir en raison d'un manque de mémoire vidéo. Si vous rencontrez ce problème, vous pouvez utiliser deux clés utiles : --medvram et --lowvram. Vous éviterez ainsi l'erreur "Out-of-memory" au démarrage de la génération.
Voir aussi:
Mis à jour: 12.08.2025
Publié: 20.01.2025