På det seneste har der været behov for privat chatbot-tjeneste som et komplet alternativ til OpenAIs ChatGPT. Så jeg beslutter mig for at implementere en derhjemme og gøre den tilgængelig for alle i min husstand sammen med min netværksprinter og NAS (OpenMediaVault) .
Tidligere plejede jeg at anbefale folk at bruge Llama-serien til engelske opgaver og Qwen-serien til kinesiske opgaver. Der var ingen open source-model, der er stærk nok i flersprogede opgaver sammenlignet med proprietære (GPT/Claude).
Men som vi alle ved - har tingene ændret sig for nylig. Jeg har brugt DeepSeek-V2 af og til, hver gang jeg blev træt med Qwen2.5 og er kommet bagud med DeepSeek V2.5 og V3 på grund af mangel på hardware. Men DeepSeek svigtede mig ikke, R1 præsterer så imponerende og giver så lille som 1,5B!
Dette betyder, at vi kan køre det selv på CPU med en betydelig brugeroplevelse. Da mange mennesker har GPU'er til spil, er hastighed ikke et problem. At få lokale LLM'er til at behandle uploadede dokumenter og billeder er en stor fordel, da OpenAI begrænser denne brug for gratis konti.
Selvom det er meget nemt at installere Open WebUI med bundtet Ollama-support med den officielle kommando på én linje:
docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
Men at få RAG (Websøgning) til at virke er ikke let for de fleste, så jeg vil gerne finde en out-of-box løsning.
Som jeg nævnte i mit sidste indlæg , er havn en fantastisk testplads til at eksperimentere med forskellige LLM-stak. Men det er ikke kun fantastisk til det, det er også en alt-i-én-løsning til selv-hosting af lokale LLM'er med RAG, der arbejder out-of-box. Så lad os begynde at implementere det fra bunden, og du er velkommen til at springe trin over, da de fleste mennesker ikke starter fra OS-installation.
Som det samme som tidligere , gå gennem installationsprocessen ved hjælp af debian-11.6.0-amd64-netinst.iso
Tilføj til sudoer usermod -aG sudo username
og genstart derefter
(Valgfrit) Tilføj ekstra swap
fallocate -l 64G /home/swapfile chmod 600 /home/swapfile mkswap /home/swapfile swapon /home/swapfile
og gør swapfilen til vedvarende nano /etc/fstab
UUID=xxxxx-xxx swap swap defaults,pri=100 0 0 /home/swapfile swap swap defaults,pri=10 0 0
Tjek med swapon --show
eller free -h
Deaktiver Nouveau-driver
bash -c "echo blacklist nouveau > /etc/modprobe.d/blacklist-nvidia-nouveau.conf" bash -c "echo options nouveau modeset=0 >> /etc/modprobe.d/blacklist-nvidia-nouveau.conf" update-initramfs -u update-grub reboot
Installer afhængigheder
apt install linux-headers-`uname -r` build-essential libglu1-mesa-dev libx11-dev libxi-dev libxmu-dev gcc software-properties-common sudo git python3 python3-venv pip libgl1 git-lfs -y
(Valgfrit) Udfør afinstallation, hvis det er nødvendigt
apt-get purge nvidia* apt remove nvidia* apt-get purge cuda* apt remove cuda* rm /etc/apt/sources.list.d/cuda* apt-get autoremove && apt-get autoclean rm -rf /usr/local/cuda*
wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda-repo-debian11-12-4-local_12.4.1-550.54.15-1_amd64.deb sudo dpkg -i cuda-repo-debian11-12-4-local_12.4.1-550.54.15-1_amd64.debsudo cp /var/cuda-repo-debian11-12-4-local/cuda-*-keyring.gpg /usr/share/keyrings/ sudo add-apt-repository contrib sudo apt-get update sudo apt-get -y install cuda-toolkit-12-4 sudo apt install libxnvctrl0=550.54.15-1 sudo apt-get install -y cuda-drivers
Installer NVIDIA Container Toolkit, da havnen er docker-baseret
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
Derefter sudo apt-get update
og sudo apt-get install -y nvidia-container-toolkit
Udfør en cuda post-install handling nano ~/.bashrc
export PATH=/usr/local/cuda-12.4/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-12.4/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Derefter sudo update-initramfs -u
, ldconfig
eller source ~/.bashrc
for at anvende ændringer
efter genstart, bekræft med nvidia-smi
og nvcc --version
Installer Miniconda (valgfrit, ikke til havn)
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && sudo chmod +x Miniconda3-latest-Linux-x86_64.sh && bash Miniconda3-latest-Linux-x86_64.sh
# Add Docker's official GPG key: sudo apt-get update sudo apt-get install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # Add the repository to Apt sources: echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Udfør efterinstallation til docker uden sudo
sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker run hello-world
git clone https://github.com/av/harbor.git && cd harbor ./harbor.sh ln
Bekræft med harbor --version
Tilføj med RAG-understøttelse til standarder med harbor defaults add searxng
Brug harbor defaults list
til at tjekke, nu er der tre aktive tjenester: ollama
, webui
, searxng
Kør med harbor up
for at bringe disse tjenester op i docker
Brug harbor ps
som docker ps
, og harbor logs
for at se tailing logs
Nu serverer open-webui-frontenden på 0.0.0.0:33801
og kan tilgås fra http://localhost:33801
eller klienter fra LAN med serverens IP-adresse.
Overvåg VRAM-brug med watch -n 0.3 nvidia-smi
Overvåg log med harbor up ollama --tail
eller harbor logs
Alle ollama-kommandoer er brugbare, såsom harbor ollama list
Det er tid til at få adgang fra andre enheder (desktop/mobil) for at registrere en administratorkonto og downloade modeller nu.
Når du har logget ind med en administratorkonto, skal du klikke på øverste højre avatarikon, åbne Admin Panel
og derefter Settings
eller blot få adgang via `http://ip:33801/admin/settings.
Klik på Models
, og øverst til højre klik på Manage Models
, der ligner en downloadknap.
Indsæt deepseek-r1
eller en hvilken som helst anden model i tekstboksen nedenfor Pull a model from Ollama.com
og klik på download-knappen i højre side.
Efter modellen er downloadet, kan det kræve en opdatering, og den nyligt downloadede model vil være brugbar under rullemenuen på siden New Chat
(hjemmesiden).
Nu kører det ikke kun en chatbot-alternativ til ChatGPT, men også et fuldt funktionelt API-alternativ til OpenAI API, plus et privat søgemaskinealternativ til Google!
webui er tilgængelig i LAN via: http://ip:33801
ollama er tilgængelig i LAN via: http://ip:33821
searxng er tilgængelig i LAN via: http://ip:33811
Kald Ollama API med enhver applikation med LLM API-integration:
http://ip:33821/api/ps http://ip:33821/v1/models http://ip:33821/api/generate http://ip:33821/v1/chat/completionsb