- text-generation-webui (souvent appelé oobabooga d’après le nom de son auteur sur GitHub) est une interface web libre, gratuite et open source permettant d’exécuter des modèles de langage (LLM) localement sur votre propre matériel.
- Installation via des scripts à un clic —
start_windows.bat,start_linux.sh, oustart_macos.sh— aucune configuration manuelle de l’environnement Python n’est requise. - Prend en charge plusieurs moteurs d’inférence : llama.cpp pour les fichiers GGUF, ExLlamaV2 pour les modèles EXL2/GPTQ sur NVIDIA, et Transformers pour les modèles Hugging Face.
- Intègre une extension API compatible OpenAI (
--extensions openai) afin que d’autres applications puissent se connecter à votre modèle local sans modification de code.
text-generation-webui est une interface web open source, auto-hébergée, conçue pour exécuter localement des modèles de langage de grande taille. Développée et maintenue sur GitHub sous le nom de oobabooga/text-generation-webui, elle s’exécute dans votre navigateur à l’adresse http://localhost:7860, prend en charge un large éventail de formats de modèles grâce à des moteurs d’inférence interchangeables, et expose une API REST compatible OpenAI. C’est l’interface graphique la plus complète disponible, au prix d’une courbe d’installation plus raide que celle des applications bureautiques telles que LLM local Qu’est-ce que text-generation-webui (et pourquoi les utilisateurs l’appellent-ils Oobabooga) LM Studio.
Installation de text-generation-webui
, qui est devenu le terme usuel utilisé par la communauté pour désigner l’outil lui-même. Les deux dénominations renvoient au même projet hébergé à l’adresse oobaboogagithub.com/oobabooga/text-generation-webui L’interface repose sur Gradio et fonctionne entièrement sur votre machine locale — aucune donnée ne quitte votre système. Au-delà de la discussion basique, elle prend en charge :.
Trois modes d’entrée : Discussion (mode instruction), Discussion (mode rôle avec cartes de personnages) et Carnet (génération brute de texte)
- Chargement de LoRA pour appliquer des poids adaptatifs affinés par-dessus un modèle de base
- Un système d’extensions avec des plugins communautaires pour la synthèse de résumés, la synthèse vocale, la génération de légendes d’images, etc.
- Un point de terminaison API compatible OpenAI permettant de connecter des clients tiers et des scripts d’automatisation
- Avant de choisir un modèle, utilisez le
pour vérifier que votre GPU peut l’accueillir — les exigences varient fortement selon la taille du modèle et son niveau de quantification. Calculateur de VRAM La méthode recommandée sur toutes les plateformes est l’installateur à un clic. Celui-ci crée un environnement Conda isolé et installe automatiquement toutes les dépendances Python. N’installez pas le logiciel dans votre environnement Python système, sauf si vous avez une raison spécifique de le faire.
Chargeurs de modèles : lequel choisir
Clonez le dépôt ou téléchargez une archive ZIP depuis la page GitHub :
Windows
- git clone https://github.com/oobabooga/text-generation-webui
dans le dossier cloné. - Double-cliquez sur
start_windows.batLe script détecte automatiquement le type de votre GPU (NVIDIA, AMD ou processeur uniquement) et installe les dépendances correspondantes — sélectionnez l’option appropriée lorsque vous y êtes invité. - Une fois l’installation terminée, le serveur démarre automatiquement. Ouvrez
- dans votre navigateur.
http://localhost:7860Pour les exécutions ultérieures, double-cliquez simplement à nouveau sur
. L’environnement Conda est déjà configuré ; le démarrage ne prend que quelques secondes. start_windows.bat Clonez le dépôt et entrez dans le répertoire :
Linux
- git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
Rendez le script exécutable puis lancez-le : - chmod +x start_linux.sh
./start_linux.sh
Sélectionnez votre type de GPU lors de l’invite : NVIDIA, AMD, processeur uniquement ou puce Apple Silicon (non applicable sous Linux, bien que l’invite apparaisse tout de même). - Accédez à l’interface utilisateur à l’adresse
- dès que le serveur est opérationnel.
http://localhost:7860Clonez le dépôt puis exécutez le script de démarrage :
macOS
- git clone https://github.com/oobabooga/text-generation-webui
cd text-generation-webui
./start_macos.sh
Sélectionnez l’option D (puce Apple Silicon / Metal) ou C (processeur uniquement) lorsque vous y êtes invité. - Sur les puces M-series, le moteur d’inférence llama.cpp exploite Metal pour l’accélération GPU — aucune installation de CUDA n’est nécessaire.
- Les utilisateurs macOS sont limités aux chargeurs llama.cpp et Transformers. ExLlamaV2 nécessite CUDA et n’est pas compatible avec les puces Apple Silicon.
text-generation-webui sépare clairement le moteur d’inférence de l’interface utilisateur. Vous choisissez un chargeur par modèle depuis l’onglet
Chargement pas à pas d’un modèle GGUF
. Chaque chargeur accepte des formats de fichiers spécifiques et impose des exigences matérielles différentes. Modèle Chargeur
| Format | Format | Matériel | Quand utiliser |
|---|---|---|---|
| llama.cpp | GGUF | NVIDIA, AMD, Apple Silicon, CPU | Par défaut pour les fichiers GGUF ; le format le plus portable entre plates-formes |
| ExLlamaV2 | EXL2, GPTQ | Uniquement pour NVIDIA CUDA | Débit maximal sur NVIDIA ; privilégié par rapport à AutoGPTQ pour les modèles récents |
| Transformers | HuggingFace (fp16, bf16, int8, int4) | NVIDIA, CPU | Modèles HuggingFace dans leur format d’origine ; plus lents mais offrant la compatibilité la plus large |
| AutoAWQ | AWQ | NVIDIA CUDA | Modèles quantifiés AWQ |
| AutoGPTQ | GPTQ | NVIDIA CUDA | Anciens modèles GPTQ ; ExLlamaV2 est plus rapide pour le même format |
Choix pratique par défaut : Si vous avez téléchargé un fichier .gguf (le format le plus courant sur les pages de modèles HuggingFace), utilisez llama.cpp. Si vous disposez d’un GPU NVIDIA et souhaitez une vitesse maximale de génération, recherchez une variante EXL2 du même modèle et utilisez ExLlamaV2.
Pour connaître les modèles compatibles avec chaque GPU, consultez Exigences en VRAM des principaux modèles de langage.
L’extension API compatible OpenAI
- Copiez le fichier dans le dossier
text-generation-webui/models/. Les fichiers GGUF monoblocs (ex. :mistral-7b-instruct.Q4_K_M.gguf) sont placés directement dans ce dossier. Les fichiers découpés en plusieurs parties doivent être placés dans un sous-dossier nommé. - Ouvrez l’onglet Modèle vers
http://localhost:7860. - Sélectionnez votre fichier dans la liste déroulante (cliquez sur l’icône Actualiser si celui-ci n’apparaît pas).
- Définissez Format sur
llama.cpp. - Définissez n-gpu-layers pour contrôler le déchargement vers le GPU. Saisissez une valeur élevée (p. ex.,
999) afin de transférer autant de couches que possible dans la VRAM ; saisissez0pour une inférence exclusivement sur CPU. - Cliquez Chargez. Un message de confirmation apparaît dans la zone d’état dès que le modèle est prêt.
Passez à l’onglet Discussion pour entamer une conversation, ou à l’onglet Par défaut Génération brute Modèle d’instruction dans l’onglet Paramètres.
text-generation-webui vs LM Studio vs Jan
L’extension intégrée openai expose des points de terminaison REST conformes aux formats des API OpenAI Chat Completions et Completions. Tout client acceptant une URL de base personnalisée — LangChain, Open WebUI, Continue.dev ou un simple script curl — peut se connecter à votre modèle local sans modification du code.
Activez-la en passant un indicateur au démarrage :
# Linux / macOS
./start_linux.sh --extensions openai
# ou lancez directement server.py depuis l’environnement Conda
python server.py --extensions openaiVous pouvez également l’activer depuis l’onglet Session de l’interface utilisateur, puis cliquez sur Appliquer les indicateurs / Redémarrer.
Par défaut, l’API écoute sur le port 5000, distinct de l’interface Gradio qui utilise le port 7860. Configurez votre client pour qu’il pointe vers :
base_url = "http://localhost:5000/v1"
api_key = "n'importe quelle valeur" # requis par la plupart des clients, mais non validé localementLes points de terminaison pris en charge incluent /v1/chat/completions, /v1/completions, et /v1/models. Le port est configurable via l’indicateur de démarrage --api-port .
Le nom d’utilisateur GitHub du projet est
Ces trois outils exécutent les modèles localement, sans dépendance vis-à-vis du cloud. Ils ciblent des utilisateurs et des cas d’usage différents.
| text-generation-webui | LM Studio | Jan | |
|---|---|---|---|
| Interface | Navigateur (Gradio) | Application native pour bureau | Application native pour bureau |
| Complexité de configuration | Moyen (script à un clic) | Faible (installeur graphique) | Faible (installeur graphique) |
| Formats de modèles | GGUF, EXL2, GPTQ, AWQ, HF fp16 | Principalement GGUF | Principalement GGUF |
| Navigateur intégré de modèles | Non | Oui | Oui |
| API compatible OpenAI | Oui (extension) | Oui (intégré) | Oui (intégré) |
| Système d’extensions / plugins | Oui | Limité | Limité |
| Puces Apple Silicon (Metal) | Oui (llama.cpp) | Oui | Oui |
| Idéal pour | Utilisateurs avancés, automatisation, recherche | Débutants, usage quotidien en discussion | Utilisateurs orientés open source |
Choisissez text-generation-webui lorsque vous avez besoin de plusieurs moteurs de chargement, des performances EXL2 sur NVIDIA, du chargement de LoRA, de l’écosystème d’extensions ou d’un accès scripté à l’API pour l’automatisation et les flux de développement.
Choisissez LM Studio ou Jan lorsque vous souhaitez un installeur soigné, une recherche intégrée de modèles avec téléchargement en un clic et une configuration minimale. Consultez le Guide complet de LM Studio pour un guide détaillé de cette option.
Si vous hésitez à savoir si l’inférence locale justifie réellement le coût matériel, le Calculateur de seuil de rentabilité entre hébergement local et utilisation d’une API permet de quantifier le compromis par rapport au paiement d’un accès via une API, selon votre volume d’utilisation.
Questions fréquemment posées
Pourquoi l’installeur à un clic prend-il autant de temps la première fois ?
Il télécharge Miniconda et construit, à partir de zéro, un environnement Python isolé comprenant PyTorch et toutes les bibliothèques de chargement de modèles. Sur une connexion rapide, cela prend généralement entre 5 et 15 minutes. Les lancements ultérieurs ignorent cette étape et démarrent en quelques secondes.
Puis-je exécuter text-generation-webui sans GPU ?
Oui. Sélectionnez l’option « uniquement CPU » lors de l’installation, puis définissez n-gpu-layers sur 0 lors du chargement d’un modèle GGUF. Un modèle de 7 milliards de paramètres peut produire 2 à 5 jetons par seconde sur un processeur de bureau moderne — suffisant pour des tests, mais trop lent pour une conversation fluide. Des quantifications plus légères (Q4 et inférieures) améliorent le débit. Consultez meilleures GPU pour les LLM locaux si vous envisagez une mise à niveau matérielle.
Comment mettre à jour text-generation-webui ?
Exécuter git pull dans le répertoire du dépôt pour récupérer le code le plus récent, puis relancez le script de démarrage. Ce dernier détecte automatiquement les modifications de l’environnement et met à jour les dépendances. Vous pouvez également exécuter manuellement pip install -r requirements.txt dans l’environnement Conda actif si vous préférez une mise à jour ciblée.
Quelle est la différence entre GGUF et EXL2 ?
Ces deux formats sont quantifiés afin de réduire la taille des fichiers de modèles et leurs besoins en VRAM. GGUF (via llama.cpp) fonctionne sur les GPU NVIDIA, AMD et les puces Apple Silicon : il s’agit donc d’un choix plus portable, avec la plus large disponibilité de modèles. EXL2 (via ExLlamaV2) est réservé aux GPU NVIDIA, mais génère généralement des jetons plus rapidement à qualité équivalente. Si vous disposez d’un GPU NVIDIA et que la vitesse est votre priorité, EXL2 mérite d’être privilégié.
Où sont enregistrés les journaux de conversation ?
Les journaux sont stockés dans le dossier text-generation-webui/logs/. Chaque conversation est sauvegardée sous forme de fichier JSON. Vous pouvez également l’exporter directement depuis l’interface de l’onglet « Chat », à l’aide du bouton de téléchargement situé sous la fenêtre de discussion.
Plusieurs utilisateurs peuvent-ils se connecter à une même instance ?
Le --listen Le drapeau de démarrage rend le serveur accessible sur votre réseau local plutôt que sur localhost uniquement. Toutefois, text-generation-webui n’est pas conçu pour des déploiements de production multi-utilisateurs : il ne comporte aucune authentification intégrée et l’interface Gradio est mono-session. L’extension API OpenAI gère mieux les requêtes API simultanées que l’interface web dans les scénarios multi-clients, mais vous devriez ajouter un proxy inverse avec authentification devant celle-ci si vous l’exposez au-delà de localhost.

