Open WebUI: Alles in één

Open WebUI is oorspronkelijk ontwikkeld voor Ollama, waarover we in een van onze artikelen hebben gesproken. Voorheen heette het Ollama WebUI, maar na verloop van tijd verschoof de focus naar universaliteit van toepassing en werd de naam veranderd in Open WebUI. Deze software lost het sleutelprobleem op van handig werken met grote neurale netwerkmodellen die lokaal of op door de gebruiker beheerde servers worden geplaatst.
Installatie
De belangrijkste en meest geprefereerde installatiemethode is het implementeren van een Docker-container. Hierdoor hoef je niet na te denken over de aanwezigheid van afhankelijkheden of andere componenten die zorgen voor de juiste werking van de software. Je kunt Open WebUI echter ook installeren door de projectrepository van GitHub te klonen en het vanaf de broncode te bouwen. In dit artikel bekijken we beide opties.
Voordat je begint, moet je ervoor zorgen dat de GPU-stuurprogramma's op de server zijn geïnstalleerd. Onze instructie Nvidia-stuurprogramma's installeren in Linux helpt je hierbij.
Docker gebruiken
Als je net een server hebt besteld, dan ontbreken de Docker Engine zelf en de nodige tools om GPU's aan de container door te geven. We raden niet aan Docker te installeren vanuit de standaard Ubuntu repository, omdat deze mogelijk verouderd is en niet alle moderne opties ondersteunt. Het is beter om het installatiescript te gebruiken dat op de officiële website staat:
curl -sSL https://get.docker.com/ | sh
Naast Docker moet je ook de NVIDIA® Container Toolkit installeren, dus schakel de Nvidia-repository in:
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
Werk je pakketcache bij en installeer NVIDIA® Container Toolkit:
sudo apt update && sudo apt -y install nvidia-container-toolkit
Om de toolchain te laten werken, moet je de Docker-daemon herstarten:
sudo systemctl restart docker
Nu kun je de gewenste container uitvoeren. Merk op dat het volgende commando de containers niet isoleert van het hostnetwerk, omdat u later extra opties kunt inschakelen, zoals het genereren van images met de Stable Diffusion WebUI. Dit commando zal automatisch alle lagen van het image downloaden en uitvoeren:
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
Git gebruiken
Ubuntu 22.04
Eerst moet je de inhoud van het archief klonen:
git clone https://github.com/open-webui/open-webui.git
Open de gedownloade map:
cd open-webui/
Kopieer de voorbeeldconfiguratie (je kunt deze indien nodig aanpassen), die de omgevingsvariabelen voor het bouwen instelt:
cp -RPp .env.example .env
Installeer de NVM installer, die je zal helpen om de vereiste versie van Node.js op de server te installeren:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Daarna moet je de SSH-sessie sluiten en opnieuw openen zodat het volgende commando correct werkt.
Installeer Node Package Manager:
sudo apt -y install npm
Installeer Node.js versie 22 (actueel op het moment van schrijven van dit artikel):
npm install 22
Installeer de afhankelijkheden die nodig zijn voor verdere assemblage:
npm install
Laten we de build starten. Houd er rekening mee dat er meer dan 4 GB vrij RAM-geheugen nodig is:
npm run build
De voorkant is klaar; nu is het tijd om de achterkant voor te bereiden. Ga naar de map met dezelfde naam:
cd ./backend
Installeer pip en ffmpeg pakketten:
sudo apt -y install python3-pip ffmpeg
Voor de installatie moet je een nieuw pad toevoegen aan de omgevingsvariabele:
sudo nano ~/.bashrc
Voeg de volgende regel toe aan het einde van het bestand:
export PATH="/home/usergpu/.local/bin:$PATH"
Laten we het bijwerken naar de nieuwste versie:
python3 -m pip install --upgrade pip
Nu kun je de afhankelijkheden installeren:
pip install -r requirements.txt -U
Installeer Ollama:
curl -fsSL https://ollama.com/install.sh | sh
Alles is klaar om de toepassing te starten:
bash start.sh
Ubuntu 24.04 / 24.10
Bij het installeren van OpenWebUI op Ubuntu 24.04/24.10 wordt u geconfronteerd met een belangrijke uitdaging: het besturingssysteem gebruikt standaard Python 3.12, terwijl OpenWebUI alleen versie 3.11 ondersteunt. U kunt Python niet eenvoudigweg downgraden, want dan zou het besturingssysteem kapot gaan. Aangezien het python3.11 pakket niet beschikbaar is in de standaard repositories, moet u een virtuele omgeving maken om de juiste Python versie te gebruiken.
De beste oplossing is om het Conda pakketbeheersysteem te gebruiken. Conda werkt als pip, maar voegt ondersteuning voor virtuele omgevingen toe, vergelijkbaar met venv. Omdat je alleen basisfunctionaliteit nodig hebt, gebruik je Miniconda, een lichtgewicht distributie. Download de nieuwste versie van GitHub:
curl -L -O "https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-$(uname)-$(uname -m).sh"
Voer het script uit:
bash Miniforge3-$(uname)-$(uname -m).sh
Laten we een virtuele omgeving aanmaken met de naam pyenv en de Python versie 3.11 specificeren:conda create -n pyenv python=3.11
Activeer de aangemaakte omgeving:
conda activate pyenv
Nu kunt u doorgaan met de standaard OpenWebUI installatiestappen voor Ubuntu 22.04. De virtuele omgeving zorgt ervoor dat alle installatiescripts soepel verlopen zonder conflicten met pakketversies.
Modellen
Ollama bibliotheek
Met Open WebUI kunt u modellen rechtstreeks uploaden vanuit de webinterface, waarbij u alleen de naam hoeft op te geven in het formaat model:size. Navigeer hiervoor naar http://192.168.88.20:8080/admin/settings en klik op Connections. Klik vervolgens op het moersleutelpictogram tegenover de http://localhost:11434 string. Nadat u de namen van de modellen in de bibliotheek hebt bekeken, voert u de naam in en klikt u op het uploadpictogram:

Daarna zal het systeem automatisch het gewenste model downloaden en zal het onmiddellijk beschikbaar worden voor gebruik. Afhankelijk van de geselecteerde grootte kan het downloaden een andere hoeveelheid tijd in beslag nemen. Controleer voor het downloaden of er voldoende ruimte is op de schijf. Zie voor meer informatie het artikel Schijfpartitionering in Linux.
Aangepaste modellen
Als je een neuraal netwerkmodel moet integreren dat niet in de Ollama-bibliotheek zit, kun je de experimenteerfunctie gebruiken en een willekeurig model in GGUF-formaat laden. Ga hiervoor naar Settings - Admin Settings - Connections en klik op het moersleutelpictogram tegenover http://localhost:11434. Klik op Show in de sectie Experimental. Standaard is de bestandsmodus geactiveerd, waarmee je een bestand van je lokale computer kunt laden. Als je op File Mode klikt, verandert dit in URL Mode, waarmee je de URL van het modelbestand kunt opgeven, waarna de server het automatisch downloadt:

RAG
Naast een handige en functionele webinterface helpt Open WebUI om de mogelijkheden van verschillende modellen uit te breiden, zodat ze samen kunnen worden gebruikt. Het is bijvoorbeeld eenvoudig om documenten te uploaden om een RAG (Retrieval-augmented generation) vectordatabase te vormen. Bij het genereren van een antwoord aan de gebruiker zal LLM niet alleen kunnen vertrouwen op gegevens die direct als resultaat van de training zijn verkregen, maar ook op gegevens die in een vergelijkbare vectordatabase zijn geplaatst.
Documenten
Open WebUI scant standaard de map /data/docs op bestanden die in de vectorruimte van de database kunnen worden geplaatst en voert de transformatie uit met behulp van het ingebouwde all-MiniLM-L6-v2 model. Dit is niet het enige model dat geschikt is voor deze taak, dus het is zinvol om andere opties te proberen, bijvoorbeeld uit deze lijst.
Tekstdocumenten zonder tags en andere speciale tekens zijn het meest geschikt voor RAG. Natuurlijk kun je documenten uploaden zoals ze zijn, maar dit kan de nauwkeurigheid van de gegenereerde antwoorden sterk beïnvloeden. Als je bijvoorbeeld een kennisbank in Markdown-indeling hebt, kun je deze eerst opmaken en pas daarna uploaden naar /data/docs.
Zoeken op het web
Naast lokale documenten kan het neurale netwerkmodel ook de opdracht krijgen om websites te gebruiken als gegevensbron. Hierdoor kan het vragen beantwoorden door niet alleen de gegevens te gebruiken waarop het getraind is, maar ook gegevens die gehost worden op websites die door de gebruiker gespecificeerd zijn.
In feite is dit een soort RAG, die HTML-pagina's als invoer ontvangt en ze vervolgens op een speciale manier transformeert en in een vectorgegevensbank plaatst. Het doorzoeken van zo'n database gaat erg snel; daarom kan het neurale netwerkmodel snel een antwoord genereren op basis van de resultaten. Open WebUI ondersteunt verschillende zoekmachines, maar kan er maar met één tegelijk werken, wat wordt aangegeven in de instellingen.
Om webzoekresultaten op te nemen in neurale netwerkreacties, klikt u op + (plusteken) en verschuift u de schakelaar Web Search:

Afbeelding genereren
Het hoogtepunt van Open WebUI is dat je met deze software meerdere neurale netwerken met verschillende taken kunt combineren om een enkel probleem op te lossen. Llama 3.1 voert bijvoorbeeld perfect een dialoog met de gebruiker in verschillende talen, maar zijn antwoorden zijn uitsluitend tekst. Het kan geen afbeeldingen genereren, dus er is geen manier om zijn antwoorden te illustreren.
Stable Diffusion, waar we vaak over schreven, is het tegenovergestelde: dit neurale netwerk genereert perfect afbeeldingen, maar kan helemaal niet met teksten werken. De ontwikkelaars van Open WebUI probeerden de sterke punten van beide neurale netwerken te combineren in één dialoog en implementeerden het volgende werkschema.
Als je een dialoog voert in Open WebUI, verschijnt er een speciale knop naast elk neuraal netwerkantwoord. Door erop te klikken, krijg je een illustratie van dit antwoord direct in de chat:

Dit wordt bereikt door de Stable Diffusion WebUI API aan te roepen, en op dit moment zijn een verbinding met versies van Automatic1111 en een verbinding met ComfyUI beschikbaar. U kunt ook afbeeldingen genereren via het Dall-E neurale netwerk, maar dit kan niet lokaal worden ingezet - dit is een betaalde dienst voor het genereren van afbeeldingen met gesloten broncode.
Deze functie werkt alleen als naast Open WebUI met Ollama ook Stable Diffusion WebUI op de server is geïnstalleerd. U kunt de installatie-instructies hier vinden. Het enige dat het vermelden waard is, is dat wanneer u het script ./webui.sh uitvoert, u een extra sleutel moet opgeven om de API in te schakelen:
./webui.sh --listen --api --gradio-auth user:password
Een andere valkuil kan ontstaan door een gebrek aan videogeheugen. Als je dit tegenkomt, kun je twee handige sleutels gebruiken: --medvram en --lowvram. Dit voorkomt de foutmelding Out-of-memory bij het starten van de generatie.
Zie ook:
Bijgewerkt: 12.08.2025
Gepubliceerd: 20.01.2025