Comment installer Open WebUI : une interface web Open Source pour exécuter des LLMs ?

Introduction à Open WebUI

Open WebUI est une interface web open source, riche en fonctionnalités et conviviale, qui permet d'exécuter des modèles de langage de grande taille (LLMs) en utilisant Ollama et des API compatibles avec OpenAI.

Vous pouvez étendre Open WebUI avec divers modèles d'IA et plugins pour répondre à vos besoins spécifiques. Cet article explique comment installer Open WebUI et exécuter des LLMs sur une instance Vultr Cloud GPU, tout en configurant des certificats SSL pour sécuriser l'accès via un domaine personnalisé.

 

 Open WebUI

 

Prérequis pour installer Open WebUI

Avant de commencer :

  • Déployez un serveur avec GPU avec une grosse proportion de Ram, les LLMs sont gourmands donc on préconise à minima la taille du LLMs en Go de RAM pour les exécuter.
  • L'installation de Ollama comme nous l'avons vu ici ainsi qu'un 1er LLM déployé
  • Configurez un enregistrement DNS de type A pointant vers l'adresse IP publique de votre instance, par exemple openwebui.greenhoster.fr
  • Accédez à l'instance en utilisant SSH pour exécuter les commandes 

 

Installation d'Open WebUI sur votre machine

Vous pouvez installer Open WebUI en utilisant Python Pip ou Docker. La méthode Pip nécessite Python 3.11, tandis que Docker utilise une image conteneur préconstruite.

Suivez les étapes ci-dessous pour installer Open WebUI en utilisant les deux méthodes.

 

Option 1 : Installation d'Open WebUI avec Pip

 

  1. Installez Python 3.11 :

    apt install python3.11 python3-pip pipx python3.11-venv
  2. Installez Open WebUI dans un environnement virtuel python :

    cd /opt
    mkdir project/openwebui -p # choissisez votre propre répertoire et utilisateur
    cd project/openwebui
    python3.11 -m venv webui-env
    source webui-env/bin/activate
    pip install open-webui

  3. Exécutez Open WebUI et vérifiez qu'il ne retourne pas d'erreurs :

    open-webui serve

     

 

Création d'un service système pour exécuter Open WebUI

Si vous installez Open WebUI avec Pip, l'application s'exécute avec la commande open-webui serve. Vous devez créer un service système pour gérer les processus d'Open WebUI sans exécuter directement la commande.

  1. Créez un nouveau fichier de service /usr/lib/systemd/system/openwebui.service :

    vi /etc/systemd/system/open-webui.service
  2. Ajoutez les configurations de service suivantes au fichier :

    [Unit]
    Description=open-webui Application
    After=network.target

    [Service]
    User=webui
    WorkingDirectory=/opt/project/openwebui
    ExecStart=/bin/bash -c "source /opt/project/openwebui/webui-env/bin/activate && /opt/project/openwebui/webui-env/bin/open-webui serve"
    Restart=always
    StandardOutput=inherit
    StandardError=inherit

    [Install]
    WantedBy=multi-user.target

  3. Rechargez systemd pour appliquer la nouvelle configuration de service :

    systemctl daemon-reload
  4. On Active le service pour le démarrage au boot et on lance Open WebUI :

    systemctl enable open-webui.service
    systemctl start open-webui
    systemctl status open-webui

     

Configuration de Nginx comme reverse proxy et exécutez Open WebUI proprement sur votre machine

Open WebUI est accessible sur le port 8080 en utilisant l'adresse IP de votre serveur
Nous vous conseillons de mettre en place un serveur proxy qui va gèrer le point d'entrée ssl de votre domaine.


Voici la configuration nginx que nous mettons en place :

  1. Installez Nginx et Certbot
    apt install nginx certbot python3-certbot-nginx/stable
  2. Ajoutez les configurations Nginx suivantes au fichier :

  3. server { listen 80; server_name openwebui.greenhoster.fr; access_log /var/log/nginx/openwebui_access.log; error_log /var/log/nginx/openwebui_error.log; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}
  4. Mettez un certificat https/ssl en place pour sécuriser au minimum votre connexion

  5. certbot --nginx -d openwebui.greenhoster.fr -m admin@example.com --agree-tos
  6. Testez Nginx pour détecter les erreurs de configuration et relancez Nginx:

    nginx -t && systemctl restart nginx
  7. Votre interface web est prête

     Open WebUI

 

Accès à Open WebUI depuis un nom de domaine

Vous pouvez accéder à Open WebUI en utilisant votre domaine configuré précédemment. Créez un nouveau compte administrateur pour exécuter des LLMs sur le serveur.

  1. Accédez à votre domaine Open WebUI :

    https://openwebui.greenhoster.fr
  2. Cliquez sur "Get started" pour accéder à l'interface web d'Open WebUI.

  3. Entrez un nom d'utilisateur, une adresse e-mail et un mot de passe pour créer le premier compte administrateur.

  4. Sélectionnez le modèle LLM que vous avez préinstallé, MistalAI par exemple que vous avez installé précédemment et entrez une nouvelle invite pour générer un résultat.

 

Installation et exécution de LLMs dans Open WebUI

Open WebUI est livré avec quelques modèles d'IA par défaut. Vous pouvez également installer de nouveaux modèles directement en utilisant Ollama sur le serveur ou en téléchargeant les fichiers de modèle via l'interface Open WebUI.

  1. Visitez la bibliothèque Ollama et trouvez de nouveaux modèles.
    https://ollama.com/library

  2. Téléchargez un nouveau modèle, par exemple Openhermes, un modèle opensource alternatif à Mistral AI :

    $ sudo ollama pull openhermes
  3. Accédez à Open WebUI dans un nouveau navigateur web et vérifiez que les nouveaux modèles sont disponibles.

 

 Open WebUI

 

 

Open WebUI l'interface aux nombreux avantages !

L'interface utilisateur pour les chatbots offre plusieurs fonctionnalités intéressantes.
Voici quelques avantages que nous avons retenu :

  1. Interface Intuitive : Open WebUI propose une interface conviviale qui permet aux utilisateurs d'interagir facilement avec le chatbot.
    Elle est conçue pour être accessible et simple à utiliser, même pour les non-initiés.

  2. Sécurité et Confidentialité : Open WebUI met l'accent sur la sécurité et la confidentialité des données des utilisateurs, garantissant que les interactions avec le chatbot sont protégées.
    Il est possible d'intégrer des authentifications fortes, d'ajouter un ldap, ou de garantir l'utilisation des données en local de votre serveur.
  3. Personnalisation : Les utilisateurs peuvent personnaliser l'apparence et le comportement du chatbot pour qu'il corresponde à leurs besoins spécifiques.
    Pour une intégration parfaite avec votre projet, vous allez pouvoir modifier les visuels, les flux de conversation et les sources de données.

  4. Support Multilingue : L'interface prend en charge plusieurs langues, ce qui permet aux utilisateurs de communiquer dans leur langue préférée. Cela élargit l'accessibilité et l'utilité du chatbot à un large public.
    Nous avons noté quelques défaillances avec un changement de langue dans les réponses sans identifier l'origine du problème.

  5. Intégration Facile : Open WebUI générer un webhook pour être facilement interrogé, facilitant ainsi son intégration dans des sites web, des applications mobiles ou d'autres systèmes.

  6. Gestion des Conversations : L'interface permet de gérer et de suivre les conversations avec les utilisateurs, offrant des outils pour analyser les interactions et améliorer les performances du chatbot.

  7. Extensibilité : Grâce à une architecture modulaire, les développeurs peuvent ajouter de nouvelles fonctionnalités ou étendre les capacités existantes du chatbot sans avoir à réécrire tout le code.

  8. Opensource: Le projet est forte suivi et maintenu par la communauté, vous pouvez le retrouver sur Github officiel.

Ces fonctionnalités font d'Open WebUI un outil puissant pour créer et gérer des chatbots efficaces et conviviaux.
L'interaction avec les LLMs de tout horizon devient un défi majeur, avec Open WebUI, vous disposez d'un outil puissant et capable de répondre à l'essentiel des besoins actuels

Et pour plus d'informations, contactez-nous sur contact@greenhoster.fr ou sur notre page de contact.