Skip to content

Open WebUI in Ollama

Open WebUI je vmesnik, ki omogoča dostop in interaktivnost za modele LLM. Ollama je zaledni del, ki zagotavlja nalaganje in zagon modelov LLM.

Zagon Open WebUI in Ollama na Vegi

Prijavite se v Vego in dodelite vozlišče, nato pa se povežite z njim.

salloc -n 1 --gres=gpu:1 --partition=gpu -t 00:30:00
ssh node

Aktivirajte Conda in ustvarite novo okolje.

Če ne uporabljate Open WebUI prvič in ste okolje že ustvarili, lahko te korake preskočite in okolje preprosto omogočite.

module load Anaconda3

conda create -n owui python=3.11 -y

conda activate owui

Prenesite, razpakirajte in počistite datoteko Ollama v mapi env bin in lib.

curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o $CONDA_PREFIX/ollama.tgz && \
tar -xzvf $CONDA_PREFIX/ollama.tgz -C $CONDA_PREFIX && \
rm $CONDA_PREFIX/ollama.tgz

Dodajte Open WebUI vmesnik v svoje okolje.

pip install open-webui

Ollama bo privzeto shranila modele v direktorij ~/.ollama/models. Če želite to spremeniti, lahko spremenite privzeto pot, ki jo Ollama uporablja za modele, tako da nastavite spremenljivko okolja.

conda env config vars set OLLAMA_MODELS="$(pwd)/models"

Spremembe veljajo šele po ponovnem omogočanju okolja.

Seznami vseh razpoložljivih konfiguracij spremenljivk okolja so dostopni na spletnih straneh owui in ollama.

Zaženite obe storitvi v ozadju.

ollama serve > ollama.log 2>&1 &
open-webui serve > owui.log 2>&1 &

Za dostop do Open WebUI v sistemu Windows v lokalnem brskalniku boste morali ustvariti tunel do svojega vozlišča. Če uporabljate PuTTY v sistemu Windows, lahko to nastavite na desni strani pod Connection -> SSH -> Tunnels.

Nastavite poljubna izvorna vrata, ki jih želite uporabljati na lokalnem računalniku (na primer 8080), ciljna vrata pa nastavite na \:8080. Vozlišče nastavite na ime gostitelja katerega koli dodeljenega vozlišča.

V sistemih Mac in Linux lahko preprosto zaženete ta ukaz:

ssh -N -f -L <port>:gnXX:8080 <your-username>@login.vega.izum.si

Zdaj lahko dostopate do Open WebUI v brskalniku na http://localhost:8080 (8080 zamenjajte z vrati, ki ste jih uporabili).

Vsebnik Singularity za Open WebUI in Ollama

Spodaj je podana datoteka z definicijo slike Singularity. Sliko lahko ustvarite sami ali pa uporabite tisto, ki jo ponuja Vega.

Upoštevajte, da za uporabo --fakeroot za gradnjo slik Singularity na Vegi potrebujete dovoljenja, ki so privzeto onemogočena. Če želite to omogočiti za svoj račun, se obrnite na support@sling.si.

Bootstrap: docker
From: ghcr.io/open-webui/open-webui:main

%post
    curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o /tmp/ollama.tgz
    tar -xzf /tmp/ollama.tgz -C /usr
    rm /tmp/ollama.tgz

    mkdir /models /data
    chmod 777 /models /data
    chmod 777 -R /app

    ln -s /data /usr/share/ollama

%environment
    # OLLAMA
    export OLLAMA_MODELS="/models"
    export OLLAMA_HOST="127.0.0.1:11434"

    # OPENWEB UI
    export DATA_DIR="/data"
    export OLLAMA_BASE_URL="http://127.0.0.1:11434"
    export ENABLE_OPENAI_API
    export PORT=8080
    export WEBUI_SECRET_KEY="key"
    export NVIDIA_VISIBLE_DEVICES=all

%test
    echo "Checking for Ollama installation..."
    test -f /usr/bin/ollama || exit 1
    echo "Checking for Open WebUI installation..."
    test -d /app/backend || exit 1

%runscript
    echo "Starting Open WebUI / Ollama stack"
    echo "Starting Ollama server ..."
    ollama serve > /data/ollama.log 2>&1 &

    echo "Starting Open WebUI on localhost:8080 ..."
    bash /app/backend/start.sh

%startscript
    echo "Starting Open WebUI / Ollama stack"

    echo "Starting Ollama server ..."
    ollama serve > /data/ollama.log 2>&1 &

    echo "Starting Open WebUI on localhost:8080 ..."
    bash /app/backend/start.sh > /data/owui.log 2>&1 &

%help
    This container runs a bundled Ollama and Open WebUI stack.
    Replace the ./models and ./data locations with whatever path you want to use as model and data persistent storage locations
    Usage:
        singularity run --nv --writable-tmpfs -B ./models:/models -B ./data:/data owui.sif owui

Ponujamo vnaprej izdelan vsebnik Singularity, ki vsebuje obe storitvi Open WebUI in Ollama. Za zagon vsebnika morate najprej ustvariti mape za shranjevanje podatkov modela za Ollamo in trajno mesto za shranjevanje podatkov Open WebUI.

Za ustvarjanje map lahko uporabite spodnje ukaze. Če ste nekatere modele že prenesli z Ollamo, lahko preskočite ustvarjanje nove mape modelov in preprosto uporabite obstoječo.

mkdir -p owui/models
mkdir -p owui/data
cd owui

Preden zaženete storitev, si morate najprej priskrbeti računsko vozlišče in se z njim povezati.

salloc -n 1 --gres=gpu:1 --partition=gpu -t 01:00:00
ssh {allocated_node}

Za zagon vsebnika v terminalu lahko uporabite ta ukaz, pri čemer lokacije vezave zamenjate s katero koli potjo, ki ste jo izbrali.

singularity run --nv --writable-tmpfs -B ./owui/models:/models -B ./owui/data:/data owui.sif

Dnevniki Ollame bodo na voljo tudi v mapi /data, ki ste jo ustvarili.

Vsako izvorno nastavitev storitve je mogoče nastaviti z zastavico --env v ukazu Singularity run. Če želite na primer spremeniti vrata Open WebUI, lahko v ukazu singularity run uporabite:

--env PORT=9090

Za dostop do Open WebUI v sistemu Windows v lokalnem brskalniku boste morali ustvariti tunel do svojega vozlišča. Če uporabljate PuTTY v sistemu Windows, lahko to nastavite na desni strani pod Connection -> SSH -> Tunnels.

Nastavite poljubna izvorna vrata, ki jih želite uporabljati na lokalnem računalniku (na primer 8080), ciljna vrata pa nastavite na \:8080. Vozlišče nastavite na ime gostitelja katerega koli dodeljenega vozlišča.

V sistemih Mac in Linux lahko preprosto zaženete ta ukaz:

ssh -N -f -L <port>:gnXX:8080 <your-username>@login.vega.izum.si