Text Generation WebUI (oobabooga)
oobabooga è lo pseudonimo dello sviluppatore di Text Generation WebUI, oggi rinominato TextGen: un'interfaccia open source (AGPL-3.0, circa 47.000 stelle su GitHub) per eseguire modelli di linguaggio localmente, senza telemetria. Si scarica in versione portatile, come un'applicazione desktop, per i modelli GGUF; l'installazione completa aggiunge altri motori, l'addestramento di LoRA e le estensioni. Fonte ufficiale: il repository GitHub oobabooga/textgen.
Molti tutorial su Text Generation WebUI descrivono una versione di due anni fa: motori scomparsi, estensioni sostituite, comandi modificati. Questa guida riprende l'argomento sulla base del repository attuale: il nuovo nome, i tre modi per installarlo, i motori effettivamente supportati, le estensioni, l'API e le impostazioni di sicurezza da conoscere prima di rendere l'interfaccia accessibile ad altri.
#oobabooga, Text Generation WebUI, TextGen: di cosa si tratta?
oobabooga è lo pseudonimo GitHub dello sviluppatore del progetto. Lo strumento, a lungo chiamato Text Generation WebUI, è ora presentato con il nome TextGen: il vecchio indirizzo del repository reindirizza a github.com/oobabooga/textgen. Si tratta di un'applicazione open source, sotto licenza AGPL-3.0, che riunisce chat, generazione libera, visione, chiamate agli strumenti, API compatibile con OpenAI e addestramento di LoRA. Il repository la descrive come completamente offline e privata, senza telemetria, risorse esterne né richieste remote di aggiornamento.
Il progetto è attivo: l'ultima versione che abbiamo rilevato, la 4.9, risale a maggio 2026. Per quanto ne sappiamo, non esiste un altro sito ufficiale oltre a questo repository GitHub: diffida dei siti di download di terze parti e dei fork che pretendono di sostituirlo, perché un eseguibile manomesso viene eseguito con i tuoi permessi.
#1. Installazione: portable, con un clic o manuale
Il tuo ChatGPT privato e gratuito sulla tua macchina in 1 ora — LM Studio, Ollama, Open WebUI, i tuoi documenti, senza cloud.
- Spazio online a vita
- PDF + file
- Aggiornamenti a vita
Il repository propone tre opzioni. La versione portatile è la più semplice: include tutte le dipendenze, si avvia con un doppio clic e carica solo i modelli GGUF (motore llama.cpp). È disponibile per Linux, Windows e macOS con varianti CUDA, Vulkan, ROCm e solo CPU. L'installazione completa, necessaria per gli altri motori, l'addestramento, la generazione di immagini e le estensioni, scarica PyTorch e richiede circa 10 GB di spazio su disco.
| Modalità | Cosa ottieni | Cosa sapere |
|---|---|---|
| Versione portatile (applicazione desktop) | GGUF tramite llama.cpp, tutto incluso | Il più semplice; nessuna estensione né altri motori |
| Installer con un clic (script start_) | Installazione completa: ExLlamaV3, Transformers, training, estensioni | Circa 10 GB; scelta del produttore della scheda grafica all'installazione |
| Manuale con venv o Conda | Controllo totale dell'ambiente Python | Per i developer; da riservare a casi particolari |
- 01Scaricare la versione portatileDalla pagina delle versioni del repository, scegli l'archivio adatto al tuo sistema e alla tua GPU. Per NVIDIA, scegli la build cuda13.1 se nvidia-smi indica una versione di CUDA superiore o uguale a 13.1, altrimenti cuda12.4. AMD e Intel usano Vulkan, AMD può anche usare ROCm ed esiste una versione che usa solo la CPU.
- 02Estrarre e avviareDecomprimi l'archivio, poi fai doppio clic su textgen: si apre una finestra.
- 03Su macOS, rimuovi la quarantenaEsegui xattr -cr seguito dal percorso della cartella estratta prima del primo avvio, come indicato nella nota della versione.
- 04Aggiungere un modelloPosiziona un file GGUF nella cartella user_data/models; l'interfaccia lo rileva automaticamente.
- 05Caricare e chattareSeleziona il modello nella scheda dei modelli, poi apri la chat.
Puoi aggiornare una build portatile senza perdere i tuoi modelli né le tue impostazioni: scarica il nuovo archivio, estrailo e sostituisci la sua cartella user_data con quella della tua vecchia installazione. Dalla versione 4.0, puoi anche collocare user_data un livello sopra le cartelle di installazione; in questo caso viene rilevata automaticamente.
Per l'installazione completa, clona il repository e avvia lo script per il tuo sistema. Lo script chiede il produttore della tua GPU e installa le dipendenze in una cartella locale; poi apri http://127.0.0.1:7860 nel browser.
Tutto viene archiviato in una cartella installer_files locale. Per reinstallare da zero, rimuovi questa cartella e riavvia lo script. Per applicare opzioni in modo permanente, scrivile nel file user_data/CMD_FLAGS.txt, ad esempio --api per abilitare l'API. Nessuno di questi script ha bisogno di diritti amministrativi.
#2. Scaricare e scegliere un modello
Le istruzioni d'uso del repository si riassumono in tre frasi: scarica un file GGUF da Hugging Face, posizionalo in user_data/models e l'interfaccia lo rileva. I modelli distribuiti su più file (Transformers a 16 bit, EXL3) vanno in una sottocartella dello stesso percorso e richiedono l'installazione completa, non la versione portatile.
L'unico criterio pratico è la memoria. Valori di riferimento del sito con quantizzazione Q4, considerando solo i pesi: 3B circa 2 GB, da 7 a 8B circa 5 GB, 14B circa 9 GB, 32B circa 19–20 GB, 70B circa 40 GB. Aggiungi la cache di contesto e un margine per il sistema. Il calcolatore di VRAM del sito ti dà il totale esatto per il tuo contesto.
#Contesto e cache: le due opzioni che risparmiano memoria
Due opzioni di avvio hanno un impatto diretto sulla memoria. --ctx-size imposta la dimensione del contesto in token: il valore 0 significa automatico con llama.cpp, a condizione di collocare tutti i layer sulla GPU (--gpu-layers=-1), mentre il valore predefinito è 8192 per gli altri motori. --cache-type sceglie il formato della cache del contesto; con llama.cpp, i valori validi sono fp16, q8_0 e q4_0. Una cache quantizzata occupa meno memoria di una cache fp16, a scapito di una precisione leggermente inferiore: se la memoria non basta, prova prima q8_0, prima di ridurre le dimensioni del modello.
Il repository rimanda anche a due strumenti della comunità per orientare questa scelta: un calcolatore di memoria per i modelli GGUF e un elenco di quantizzazioni consigliate. Verifica i loro risultati con il calcolatore del sito, poi monitora l'utilizzo effettivo della memoria della scheda durante una lunga conversazione.
#3. Scegliere un motore (loader)
TextGen carica un modello con un motore, chiamato loader. Per impostazione predefinita lo rileva; puoi forzarlo con l'opzione --loader. I valori accettati oggi sono Transformers, llama.cpp, ExLlamav3_HF, ExLlamav3 e TensorRT-LLM, e si può cambiare motore e modello senza riavviare.
| Motore | Formato del modello | Uso |
|---|---|---|
| llama.cpp | GGUF | Scelta predefinita: processore e GPU, unico motore della versione portatile |
| ik_llama.cpp | GGUF | Variante di llama.cpp, elencata come backend aggiuntivo |
| ExLlamaV3 | EXL3 | Quantizzazione per GPU, nell'installazione completa |
| Transformers | Modelli a 16 bit, safetensors | Versatile e con un elevato consumo di memoria; serve anche per l'addestramento |
| TensorRT-LLM | Modelli compilati per NVIDIA | Per le GPU NVIDIA, installazione completa |
Se sei agli inizi, resta su llama.cpp e sul formato GGUF: è il percorso più breve, quello della versione portatile e quello usato anche dagli altri strumenti (Ollama, LM Studio). Gli altri motori si giustificano solo per un'esigenza precisa: un formato particolare, il fine-tuning o la possibilità di sfruttare al massimo una scheda NVIDIA.
#4. Chat, instruct, notebook, vision
- Instruct
- La modalità che segue le istruzioni, come ChatGPT. I prompt vengono formattati automaticamente con template Jinja2.
- Chat-instruct e chat
- Per parlare con personaggi personalizzati.
- Notebook
- Una scheda per la generazione libera, al di fuori dei turni di chat: tu scrivi, il modello continua.
- Visione e file
- Puoi allegare immagini ai messaggi, nonché file di testo, PDF e .docx per discutere del loro contenuto.
- Modifica e diramazioni
- Modificare un messaggio, passare da una sua versione all'altra e aprire una diramazione in qualsiasi punto della conversazione.
I modelli possono anche chiamare strumenti durante la conversazione: ricerca web, recupero di pagine, calcoli. Ogni strumento è un semplice file Python e i server MCP sono supportati. Questa funzione interagisce con il contesto: un agente che chiama strumenti riempie rapidamente una finestra di contesto piccola, quindi considera di aumentare la dimensione del contesto con l'opzione --ctx-size.
#5. Estensioni: ciò che esiste veramente
Le estensioni funzionano solo con l'installazione completa. La cartella delle estensioni del repository contiene, tra le altre, coqui_tts, silero_tts (sintesi vocale), whisper_stt (input vocale), sd_api_pictures e send_pictures (immagini), google_translate, superbooga e superboogav2, ngrok, gallery e perplexity_colors. Il README aggiunge che esistono anche estensioni della comunità.
#6. Modalità API
Aggiungi --api alle tue opzioni per avviare l'API. Secondo il wiki del repository, la porta predefinita è 5000, modificabile con --api-port, e l'API rimane locale finché non chiedi esplicitamente di renderla accessibile dall'esterno. Il wiki specifica che è offline, non si connette a OpenAI e non genera log. Gli endpoint supportano le chat, i completamenti e i messaggi nel formato Anthropic, con chiamate a strumenti.
Puoi collegare qualsiasi client OpenAI (un frontend di chat, un agente di programmazione, LangChain) configurandolo perché punti a questo indirizzo. La documentazione interattiva di tutti gli endpoint è disponibile allo stesso indirizzo, sotto /docs.
#Aprire l'interfaccia agli altri: le opzioni da conoscere
Per impostazione predefinita, l'interfaccia è accessibile solo dalla tua macchina. Tre opzioni cambiano questa situazione. --listen rende l'interfaccia accessibile dalla tua rete locale. --share crea un indirizzo pubblico, da evitare salvo per un test occasionale. E --multi-user non salva le cronologie delle chat: il repository la descrive come adatta a piccoli gruppi di persone fidate, non come una soluzione aziendale.
Per l'API, aggiungi --api-key con una chiave a tua scelta non appena il servizio è in ascolto sulla rete: senza chiave, qualsiasi dispositivo che raggiunge la porta può interrogare il tuo modello. Per un vero utilizzo in team (account, ruoli, registrazione dei log), metti piuttosto un frontend dedicato davanti al motore.
#TextGen contro Ollama e LM Studio
| Esigenza | TextGen | Ollama o LM Studio |
|---|---|---|
| Iniziare rapidamente con un GGUF | Versione portatile, anch'essa semplice | Ollama : un comando; LM Studio : interfaccia guidata |
| Testare diversi motori e formati | Sì: è il suo punto forte | Centrati su GGUF |
| Effettuare il fine-tuning di un LoRA nell'interfaccia | Sì, con l'installazione completa | No |
| Servire un team | Poco adatto (supporto multiutente limitato) | Ollama dietro Open WebUI o LibreChat |
| Uso quotidiano fluido | Più impostazioni, più operazioni manuali | Più semplice da mantenere |
In sintesi: TextGen è lo strumento per l'esplorazione e la regolazione fine, non per l'uso quotidiano di un principiante. Se vuoi prima parlare con un modello, inizia con Ollama o LM Studio; torna a TextGen quando hai bisogno di un motore, di un formato o di un addestramento che gli altri non offrono.
- Ollama vs LM Studio vs Jan vs GPT4All
- Fonte: repository TextGen (oobabooga)
- Fonte: note della versione 4.9
- Fonte: wiki, API compatibile con OpenAI
oobabooga e Text Generation WebUI, è la stessa cosa?+
Come installare Text Generation WebUI nel 2026?+
Quali motori e formati sono supportati?+
È veramente offline e senza telemetria?+
Come abilitare l'API per collegare un altro strumento?+
È meglio scegliere TextGen rispetto a Ollama?+
Un feedback, un errore, una precisazione? Facci sapere, così la guida migliora per tutti.