Останнім часом виникла потреба в службі приватного чат-бота як повної альтернативи ChatGPT OpenAI. Тож я вирішив запровадити його вдома та зробити його доступним для всіх членів моєї родини разом із моїм мережевим принтером і . NAS (OpenMediaVault) У минулому я рекомендував людям використовувати серію Llama для завдань з англійської мови та серію Qwen для завдань з китайської мови. Не було моделі з відкритим вихідним кодом, яка б була достатньо сильною в багатомовних завданнях порівняно з пропрієтарними (GPT/Claude). Однак, як ми всі знаємо, нещодавно все змінилося. Я час від часу використовував DeepSeek-V2 щоразу, коли втомлювався з Qwen2.5, і відставав із DeepSeek V2.5 та V3 через брак обладнання. Але DeepSeek мене не підвів, R1 працює настільки вражаюче та забезпечує лише 1,5 B! Це означає, що ми можемо запускати його навіть на процесорі з деяким значним досвідом користувача. Оскільки багато людей мають графічні процесори для ігор, швидкість не є проблемою. Змусити локальних LLM обробляти завантажені документи та зображення є великою перевагою, оскільки OpenAI обмежує це використання для безкоштовних облікових записів. Хоча дуже легко за допомогою офіційної однорядкової команди: встановити Open WebUI із пакетною підтримкою Ollama 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 Але змусити RAG (веб-пошук) працювати для більшості людей непросто, тому я хотів би знайти якесь готове рішення. Як я вже згадував у , harbor є чудовим випробувальним майданчиком для експериментів із різними стеками LLM. Але це не лише чудове рішення для цього, це також комплексне рішення для самостійного розміщення локальних LLM із RAG, що працює поза коробки. Отже, давайте почнемо впроваджувати його з нуля і не соромтеся пропускати кроки, оскільки більшість людей не починають установку ОС. своєму минулому дописі Підготовка системи (необов'язково) Як і , пройдіть процес встановлення за допомогою раніше debian-11.6.0-amd64-netinst.iso Додайте до sudoer і перезавантажтеся usermod -aG sudo username (Необов’язково) Додайте додатковий своп fallocate -l 64G /home/swapfile chmod 600 /home/swapfile mkswap /home/swapfile swapon /home/swapfile і зробіть файл підкачки постійним nano /etc/fstab UUID=xxxxx-xxx swap swap defaults,pri=100 0 0 /home/swapfile swap swap defaults,pri=10 0 0 Перевірте за допомогою або swapon --show free -h Вимкнути драйвер Nouveau 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 Встановити залежності 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 (Необов’язково) Виконайте видалення, якщо потрібно 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* Встановіть cuda-tookit і 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 оскільки порт базується на докерах Установіть NVIDIA Container Toolkit, 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 Потім і sudo apt-get update sudo apt-get install -y nvidia-container-toolkit Виконайте дію cuda після встановлення 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}} Потім , або щоб застосувати зміни sudo update-initramfs -u ldconfig source ~/.bashrc після перезавантаження підтвердіть за допомогою та nvidia-smi nvcc --version Встановити Miniconda (необов’язково, не для гавані) 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 Виконайте для докера без sudo постінсталяцію sudo groupadd docker sudo usermod -aG docker $USER newgrp docker docker run hello-world Ручна установка Harbor git clone https://github.com/av/harbor.git && cd harbor ./harbor.sh ln Перевірте за допомогою harbor --version Додати з підтримкою RAG до параметрів за замовчуванням із harbor defaults add searxng Використовуйте , щоб перевірити, зараз є три активні служби: , , harbor defaults list ollama webui searxng Запустіть з , щоб відкрити ці служби в докері harbor up Використовуйте як і для перегляду хвостових журналів harbor ps docker ps harbor logs Тепер інтерфейс open-webui працює за і до нього можна отримати доступ із або клієнти з локальної мережі за допомогою IP-адреси сервера. 0.0.0.0:33801 http://localhost:33801 Відстежуйте використання VRAM за допомогою watch -n 0.3 nvidia-smi Журнал монітора з або harbor up ollama --tail harbor logs Усі команди ollama можна використовувати, наприклад, harbor ollama list Настав час отримати доступ з інших пристроїв (настільний/мобільний), щоб зареєструвати обліковий запис адміністратора та завантажити моделі зараз. Використання локального LLM Увійшовши за допомогою облікового запису адміністратора, клацніть піктограму аватара вгорі праворуч, відкрийте , а потім або просто перейдіть за допомогою `http://ip:33801/admin/settings. Admin Panel Settings Клацніть та вгорі праворуч клацніть « , яка виглядає як кнопка завантаження. Models Manage Models Введіть або у текстове поле нижче. і натисніть кнопку завантаження праворуч. deepseek-r1 будь-яку іншу модель Pull a model from Ollama.com Після завантаження моделі може знадобитися оновлення, і щойно завантажену модель можна буде використовувати в спадному меню на сторінці (домашній). New Chat Тепер він не лише використовує чат-бот, альтернативний ChatGPT, але й повнофункціональний API, альтернативний OpenAI API, а також приватну пошукову систему, альтернативну Google! webui доступний у локальній мережі через: http://ip:33801 ollama доступний у локальній мережі через: http://ip:33821 searxng доступний у локальній мережі через: http://ip:33811 Виклик з будь-якою програмою з інтеграцією LLM API: Ollama API http://ip:33821/api/ps http://ip:33821/v1/models http://ip:33821/api/generate http://ip:33821/v1/chat/completionsb