In questo tutorial, vi mostreremo come installare e utilizzare Open WebUI (noto in precedenza come Ollama WebUI) su GNU/Linux, quindi il tutorial è valido per qualsiasi dispositivo che disponga di tale sistema operativo, come ad esempio un Raspberry Pi o altre board simili.

Open WebUI (inizialmente noto come Ollama Web UI) è un’interfaccia web open source e self-hosted per interagire con modelli di linguaggio di grandi dimensioni (LLM).

L’idea di questo progetto è quella di creare un’interfaccia web facile da usare, un po’ come ci ha abituato OpenAI con il suo ChatGPT, che è possibile utilizzare per interagire con il crescente numero di LLM gratuiti e open-source come Llama 3, Phi3 o Tinyllama.

Se in precedenza hai utilizzato ChatGPT tramite il tuo browser, avrai molta familiarità con il funzionamento di Open WebUI. La sua interfaccia è molto simile e mette a disposizione tutte le opzioni che ci aspetteremmo.

Questa interfaccia web è senz’altro la cosa di più simile che possiamo installare per dare la sensazione di star utilizzando ChatGPT durante l’utilizzo dei propri LLM (Large Language Model). Introduce anche numerose caratteristiche che rendono questo strumento incredibilmente potente. Puoi esplorare le molte funzionalità di questo progetto open-source visitando la sua pagina GitHub.

Per utilizzare Open WebUI sul tuo dispositivo dotato del pinguino 🐧, dovrai aver già installato Ollama (a tal proposito ti consigliamo di dare un’occhiata alla nostra guida in merito) e oltre a quest’ultimo, avremo bisogno di Docker (di cui qui trovi sempre una guida in merito). Questo software, infatti, non nasce per eseguire modelli, ma si limita solamente a fornire un’interfaccia grafica per interagire con questi ultimi.

Fortunatamente, Ollama è abbastanza facile da installare ed eseguire, inoltre, se lo volessimo, potremmo utilizzare Open WebUI anche solamente per interrogare le API di ChatGPT, basta includere nelle impostazioni la propria API Key.

Possiamo fare due tipologie di installazione:

  1. Con Ollama installato localmente e quindi tutto sullo stesso dispositivo (che dovrà quindi avere abbastanza RAM e una CPU performante);
  2. Con Ollama installato a parte, su un’altra macchina.

Per semplicità, in questa guida, metteremo tutto sulla stessa macchina, ma sappiate che per interrogare un Ollama installato su un’altra macchina si tratta solamente di cambiare l’indirizzo IP con quello dell’Ollama remoto (di default è 127.0.0.1 su Open WebUI) nelle impostazioni.

Requisiti

Esattamente come nella guida all’installazione di Ollama, consigliamo come sistema operativo, una distribuzione GNU/Linux basata su Debian come Ubuntu o al più, nel caso di un Raspberry Pi, Raspberry Pi OS.

  • CPU: consigliamo almeno 4 vCPU per l’esecuzione. Potenzialmente, potresti usare anche un Raspberry PI 5 (quindi va bene anche l’architettura ARM), sacrificando la velocità di generazione dell’output. Il problema principale è la RAM.
  • RAM: consigliamo almeno 8 GB di RAM per l’esecuzione. Se volete usare dei LLM più piccoli come TinyLlama, ne dovrebbe bastare anche un pochino meno, tipo almeno 2 GB, è il limite più basso.
  • Spazio su disco: almeno 8 GB liberi.
  • Connettività a internet.

Installazione e utilizzo di Open WebUI su Linux

Nelle sezioni seguenti, ti mostreremo come installare e utilizzare Open WebUI sul tuo dispositivo GNU/Linux.

Preparazione del tuo dispositivo

1. Prima di iniziare a installare Open WebUI sul nostro dispositivo, dobbiamo assicurarci che il sistema sia aggiornato, conseguentemente, procediamo con i seguenti due comandi concatenati:

sudo apt update && sudo apt upgrade -y

2. Per eseguire Open WebUI, utilizzeremo Docker. Docker è il modo più semplice per installare e mantenere aggiornata questa interfaccia web. Se non avete ancora installato Docker, vi consigliamo vivamente di seguire la nostra guida.

3. Con Docker ora installato, il prossimo passo è quello di Installare Ollama sul tuo dispositivo GNU/Linux.

Consentire l’accesso a Docker verso Ollama

4. Per impostazione predefinita, Ollama è configurato per ascoltare solo l’indirizzo di loopback locale. Fortunatamente, possiamo sostituirlo per fare in modo che si metta in ascolto su tutti gli indirizzi. Se non lo facciamo, Open WebUI non sarà in grado di comunicare con Ollama.

Prima di procedere, assicuriamoci che nano sia l’editor di testo predefinito, eseguendo il comando:

sudo update-alternatives --config editor

Quindi, scegliamo il numero associato a nano:

Sono disponibili 8 scelte per l'alternativa editor (che fornisce /usr/bin/editor).

  Selezione    Percorso            Priorità  Stato
------------------------------------------------------------
* 0            /usr/bin/joe         70        modalità automatica
  1            /bin/nano            40        modalità manuale
  2            /usr/bin/jmacs       50        modalità manuale
  3            /usr/bin/joe         70        modalità manuale
  4            /usr/bin/jpico       50        modalità manuale
  5            /usr/bin/jstar       50        modalità manuale
  6            /usr/bin/rjoe        25        modalità manuale
  7            /usr/bin/vim.basic   30        modalità manuale
  8            /usr/bin/vim.tiny    15        modalità manuale

Premere Invio per mantenere il valore predefinito[*] o digitare il numero della selezione: 1

Dopodiché, procediamo effettuando la modifica al servizio Ollama utilizzando il seguente comando:

sudo systemctl edit ollama.service

5. All’interno di questo file, cerchiamo la seguente riga. Dovrebbe essere all’inizio:

### Anything between here and the comment below will become the new contents of the file

6. Dopo aver trovato la linea in questione, andiamo ad aggiungere quanto segue. Questa riga imposta una variabile d’ambiente che dice a Ollama di mettersi in ascolto su tutti gli indirizzi IP:

[Service]
Environment="OLLAMA_HOST=0.0.0.0"

7. Salviamo e usciamo premendo CTRL+ X, Y e poi ENTER.

8. Dal momento che abbiamo apportato alcune modifiche al servizio Ollama, avremo bisogno di farle caricare da Systemd, così da applicarle, utilizzando il seguente comando:

sudo systemctl daemon-reload

9. A questo punto è possibile riavviare Ollama eseguendo il comando sottostante:

sudo systemctl restart ollama

Scrivere il file di Docker Compose per Open WebUI

10. Con Ollama ora riconfigurato, possiamo installare Open WebUI sul nostro dispositivo.

La prima parte di questo processo è creare una directory in cui andremo a salvare il file di Docker Compose per Open WebUI, oltre che a dargli un posto in cui archiviare i suoi dati.

È possibile creare questa directory utilizzando il comando mkdir, come mostrato di seguito.

sudo mkdir -p /opt/stacks/openwebui

11. Dopo aver creato la directory in questione, accediamoci con il comando cd:

cd /opt/stacks/openwebui

12. Possiamo passare adesso alla scrittura del file di Docker Compose.

Questo file fornisce a Docker tutte le info su come installare ed eseguire Open WebUI:

sudo nano compose.yaml

13. Una volta aperto il nuovo file, incolliamoci il seguente contenuto:

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    volumes:
      - ./data:/app/backend/data
    ports:
      - 3000:8080
    extra_hosts:
      - host.docker.internal:host-gateway
    restart: unless-stopped

14. Terminata l’operazione, salviamo e usciamo premendo CTRL + X, Y e poi ENTER.

Avvio e accesso a Open WebUI

15. Dopo aver finito di scrivere il file di Docker Compose, è possibile avviare il container di Open WebUI eseguendo il comando qui sotto.

Questo processo può richiedere alcuni minuti in quanto Docker scaricherà diversi layer contenenti le dipendenze e i file necessari al corretto funzionamento di Open WebUI.

docker compose up -d

16. Ora che hai Open WebUI attivo sul tuo dispositivo GNU/Linux, vorrai accedere alla sua interfaccia web.

Se non si conosci l’indirizzo IP del dispositivo, puoi recuperarlo utilizzando il comando hostname.

hostname -I

17. Nel tuo browser web preferito, vai al seguente URL.

Assicurati di sostituire “<INDIRIZZO-IP>“ con l’IP del tuo dispositivo per continuare.

http://<INDIRIZZO-IP>:3000

18. Prima di poter accedere all’interfaccia di Open WebUI, è necessario creare un account. Il primo account che verrà creati diventerà automaticamente l’amministratore.

Per iniziare a creare un nuovo account, fai click  su “Registrati“.

OpenWebUI - Login
OpenWebUI – Login

19. Nella schermata successiva, compila le informazioni per creare il tuo account amministratore su Open WebUI, quindi clicca su “Crea account“:

Open WebUI - Registrazione
Open WebUI – Registrazione

20. Dopo aver creato il tuo account, si verrà accolti dalla schermata di benvenuto che ci mostra un changelog (le ultime novità).

Procediamo cliccando sul tasto “Ok, andiamo!”:

Open WebUI - Benvenuti
Open WebUI – Benvenuti

Scelta di un modello (LLM) da utilizzare su Open WebUI

21. Ora che hai Open WebUI installato sul tuo dispositivo, probabilmente vorrai sapere come usarlo.

Per prima cosa, è necessario selezionare un modello per Open WebUI, facendo click su “Seleziona un modello” nella parte superiore dello schermo.

Seguendo la nostra guida Ollama, dovresti già avere alcuni LLM installati, che verranno visualizzati in questo elenco. Selezionane quindi uno, così da utilizzarlo per la sessione corrente.

Nota: se non visualizzi i modelli, potrebbe essere che Ollama non sia in esecuzione o non hai ancora installato alcun modello. Inoltre, a seconda del setup, se per esempio hai un firewall attivo, potresti dover autorizzare il traffico in ingresso dall’interfaccia docker0 (quella di Docker) verso la tua macchina. Puoi seguire il nostro tutorial su Ollama per vedere come installare un nuovo LLM, oppure puoi saltare alla sezione successiva per vedere come farlo attraverso l’interfaccia web.

Open WebUI - Seleziona Modello
Open WebUI – Seleziona Modello

22. Una volta selezionato un LLM, è possibile digitare un messaggio nella casella di testo nella parte inferiore dello schermo e premere il tasto INVIO.

Open Web UI invierà questo messaggio a Ollama, che lo eseguirà con il modello selezionato, mostrandoti il risultato man mano che diventa disponibile.

Open WebUI - Richiesta
Open WebUI – Richiesta

23. Di seguito, puoi vedere la risposta che ci ha restituito il modello tinyllama, quando gli abbiamo chiesto “Qual è la capitale italiana?“:

Open WebUI - Risposta
Open WebUI – Risposta

Gestione dei modelli (LLM) tramite Open WebUI

24. Open WebUI ti permette di gestire facilmente i modelli scaricati da Ollama sul tuo dispositivo.

Per iniziare a gestire i modelli attraverso l’interfaccia web, fai click sull’icona del tuo account (nel mio caso la D su sfondo giallo oro) nell’angolo in alto a destra e dopodiché fai click su “Impostazioni“:

Open WebUI - Menù Impostazioni
Open WebUI – Menù Impostazioni

25. A questo punto, accediamo alle Impostazioni amministratore, come mostrato nella screenshot qui sotto (penultima voce sulla sinistra).

Open WebUI - Impostazioni Amministratore
Open WebUI – Impostazioni Amministratore

26. Da questa schermata, verremo reindirizzati alla pagina dalla quale potremo andare sulla schedaModelli“, dove potremo gestire i modelli che Ollama avrà a disposizione. È anche possibile utilizzare questo strumento per installare nuovi modelli.

Open WebUI - Gestione Modelli
Open WebUI – Gestione Modelli

Aggiornamento di Open WebUI su Linux

Questa sezione ti mostrerà come fare l’aggiornamento all’ultima versione di Open WebUI sul tuo dispositivo GNU/Linux.

Uno dei più grandi vantaggi dell’utilizzo di Docker per eseguire il software è che rende l’aggiornamento un processo semplice.

1. Accediamo alla directory dove abbiamo memorizzato il file di Docker Compose:

cd /opt/stacks/openwebui

2. Dopodiché impartiamo il comando sottostante, che scaricherà l’ultima versione dell’immagine Open WebUI.

Docker non migrerà automaticamente i contenitori alla nuova versione, per questa operazione sarà necessario un ulteriore passaggio.

docker compose pull

3. Per far sì che Docker migri tutto alla nuova versione di Open WebUI, utilizziamo il comando qui sotto.

Docker rileverà la nuova versione di Open WebUI, interromperà quella attualmente in esecuzione e la sostituirà con la nuova.

docker compose up -d

A questo punto del tutorial, dovresti aver installato e provato con successo Open WebUI.

Questa interfaccia web è molto simile a ChatGPT e fornisce un ottimo modo per accedere e interagire con modelli linguistici di grandi dimensioni. Come avrai visto, nelle impostazioni dei modelli, è possibile utilizzare anche ChatGPT, inserendo la tua API Key recuperata dal sito web di quest’ultimo.

Se hai dubbi, domande, consigli ecc., lascia pure un commento qui sotto o dai un’occhiata agli altri progetti che abbiamo realizzato.

Rispondi