Перейти до вмісту

Рішення · Чат із документами

VPS для AnythingLLM

AnythingLLM це приватний робочий простір для чату з вашими власними документами: ви завантажуєте файли, вони перетворюються на ембедінги у вбудованій векторній базі даних, і ви спілкуєтеся з ними через хмарну модель за API-ключем або локальну через Ollama. Документація вимагає 2 GB RAM, 2-ядерний ЦП з AVX2 і 5 GB диска та називає AVX2 єдиною жорсткою вимогою. GL2-4 за $11.90 на місяць є найдешевшою машиною, що відповідає цьому мінімуму; BD-8 за $12.90 ми купили б самі, бо ембедер працює на ЦП цієї машини.

Що потрібно

Програмне забезпечення з документації, розміри з позначенням джерела

Програмне забезпечення та налаштування безпеки взято з власної документації проєкту. Якщо проєкт не публікує вимог до обладнання, біля розмірів зазначено, чиї вони.

За docs.anythingllm.com та Docker-посібником проєкту

  • «RAM 2GB, 2-core CPU with AVX2, Storage 5GB»: мінімум за документацією. Для хмарної машини Docker-посібник вказує щонайменше 2 GB RAM і мінімум 10 GB диска.
  • AVX2 є «єдиною жорсткою вимогою»: векторна база даних за замовчуванням зібрана для ЦП від 2013 року і новіших, і без нього сервер падає під час запуску. Перевірте всередині машини: lscpu | grep -o avx2. Якщо команда нічого не виводить, задайте в VECTOR_DB іншу векторну базу даних.
  • Встановлення: docker run -d -p 3001:3001 --cap-add SYS_ADMIN … mintplexlabs/anythingllm з каталогом сховища, змонтованим у /app/server/storage. Застосунок працює на порту 3001.
  • Для чату потрібна модель: API-ключ хмарного провайдера або Ollama на цій чи іншій машині. Ембедінг за замовчуванням виконується на ЦП цієї машини. Багатокористувацький режим із правами доступу доступний у Docker-версії. Без GPU.

Розміри (мінімум проєкту, потім наші)

Вибір розміру за завданням
НавантаженняvCPURAM
Документи, чати, хмарна модель (офіційний мінімум)Два ядра з AVX2. 5 GB диска, 10 GB на хмарній машині; самі лише образи займають кілька гігабайтів.22 GB
Справжня бібліотека документів, вбудований CPU-ембедер, кілька користувачівНаш. Ембедінг виконується на цьому ЦП; велике завантаження на двох ядрах обробляється довго.48 GB
Ollama поруч для повністю локального стекуНаш. Це питання хостингу моделі, а не AnythingLLM: підбирайте розмір на сторінці Ollama.832 GB

Тарифи, що підходять

Машин: 5, ціни актуальні

Спершу найдешевша відповідна машина. Ціни актуальні на сьогодні, за місяць, взяті з каталогу. Виконайте перевірку AVX2 на тій машині, яку купите, у першу ж хвилину.

  • GL2-4$11.90/міс

    2 vCPU · 4 GB · диск 40 GB · Unmetered

    Найдешевший, що відповідає мінімуму, Unmetered. 2 vCPU / 4 GB / 40 GB, удвічі більше пам’яті, ніж вимагає документація, і трафік без обліку для завантажень. Перш за все виконайте перевірку AVX2.

  • BD-8$12.90/міс

    4 vCPU · 8 GB · диск 100 GB · 32 TB

    Той, який купили б ми: 4 ядра для ембедера. 4 vCPU, 8 GB, 100 GB і 32 TB трафіку на долар дорожче. Індексування бібліотеки на чотирьох ядрах замість двох: ось різниця, яку ви відчуєте.

  • BD-24$31.90/міс

    8 vCPU · 24 GB · диск 300 GB · 32 TB

    8 vCPU / 24 GB для багатьох користувачів і Ollama поруч. Місце для 8B-моделі в Ollama на тій самій машині (повільно) і для документів команди.

  • C2-4-80$37.90/міс

    2 vCPU · 4 GB · диск 80 GB · 3 TB

    Конфігурація мінімуму в десятках міст. 2 vCPU / 4 GB / 80 GB. Обирайте його заради міста. Хостована модель, невелика бібліотека.

  • C4-8-160$75.90/міс

    4 vCPU · 8 GB · диск 160 GB · 3 TB

    4 vCPU / 8 GB / 160 GB, у десятках міст. Комфортний розмір із диском для великої бібліотеки та її векторів.

Готового пресету для запуску AnythingLLM поки немає: встановлення складається з п'яти кроків нижче, які ви виконуєте самі. Крок 3 відрізняється від команди проєкту одним прапорцем, який прив'язує порт до loopback, і це там зазначено.

Встановлення

П'ять кроків за Docker-посібником проєкту

Перевірте ЦП, встановіть Docker, запустіть контейнер на loopback, налаштуйте через SSH, потім призначте домен.

  1. Спершу перевірте AVX2. lscpu | grep -o avx2 Команда має вивести avx2. Документація чітко зазначає, що це єдина апаратна вимога і її неможливо емулювати; на машині без неї перед першим запуском потрібно встановити VECTOR_DB на зовнішню векторну базу даних.
  2. Docker. curl -fsSL https://get.docker.com | sh
  3. Запустіть його на loopback. export STORAGE_LOCATION=/opt/anythingllm && mkdir -p $STORAGE_LOCATION && touch $STORAGE_LOCATION/.env docker run -d --name anythingllm --restart unless-stopped -p 127.0.0.1:3001:3001 --cap-add SYS_ADMIN --add-host=host.docker.internal:host-gateway -v $STORAGE_LOCATION:/app/server/storage -v $STORAGE_LOCATION/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm Це команда проєкту з однією зміною: -p 127.0.0.1:3001:3001 замість -p 3001:3001, щоб чат не опинився у відкритому інтернеті до того, як ви встановите пароль. Каталог сховища містить базу даних, вектори та ваші документи; робіть його резервні копії.
  4. Налаштуйте його через SSH. ssh -N -L 3001:127.0.0.1:3001 root@your-server, потім http://127.0.0.1:3001. Оберіть LLM: хмарного провайдера та його API-ключ або Ollama за адресою http://host.docker.internal:11434, якщо вона працює на цій машині. Увімкніть багатокористувацький режим або встановіть пароль екземпляра в Settings, перш ніж хтось інший зможе до нього дістатися.
  5. Призначте йому домен. Спрямуйте A-запис на сервер, встановіть Caddy, і один блок Caddyfile reverse_proxy 127.0.0.1:3001 під вашим доменом отримає сертифікат і поставить HTTPS перед портом 3001. Відкрийте в брандмауері 80 і 443, і нічого більше.

Чесно кажучи

Що ми купили б насправді

Мінімум: 2 ядра і 2 GB, і найдешевший рядок йому відповідає. Ми все ж доплатили б зайвий долар.

Для бібліотеки документів, якою ви справді користуватиметеся

BD-8 · $12.90/міс

4 vCPU, 8 GB і 100 GB за $12.90 проти GL2-4 за $11.90: долар на місяць дає два додаткові ядра для ембедера, який працює на цій машині щоразу, коли ви щось завантажуєте, і 100 GB для документів та їхніх векторів. Модель розміщена деінде, за API-ключем, тож GPU не потрібен; якщо хочете Ollama поруч, прочитайте сторінку Ollama і купуйте під модель, а не під AnythingLLM. На будь-якій із них виконайте перевірку AVX2, перш ніж завантажити хоч один файл.

Запитання

Що запитують перед покупкою.

Які системні вимоги AnythingLLM?
Документація вказує мінімум 2 GB RAM, 2-ядерний ЦП з AVX2 і 5 GB сховища та зазначає, що цього достатньо, щоб зберігати деякі документи, спілкуватися в чаті й користуватися функціями. Docker-посібник проєкту додає, що на хмарній машині варто орієнтуватися щонайменше на 2 GB RAM і 10 GB диска, бо обсяг диска зростає з документами, векторами та будь-якими локальними моделями. Документація також каже, що застосунок є обгорткою над зовнішніми сервісами, тому він легкий, коли модель і ембедер розміщені деінде, і важчий, коли вони працюють на тій самій машині.
Що таке вимога AVX2 і чи буде вона на моєму VPS?
Векторна база даних за замовчуванням, LanceDB, скомпільована для ЦП з набором інструкцій AVX2 (Intel Haswell, 2013, і новіші). Без нього серверний процес завершується в момент завантаження бази даних, і документація називає це єдиною жорсткою апаратною вимогою. Каверза у віртуальних машинах: гіпервізор може надавати узагальнену модель ЦП, яка приховує AVX2 навіть на сучасному хості, тому документація радить перевіряти всередині гостьової системи командою lscpu | grep -o avx2, а не на хості. Ми не обіцяємо прапорець ЦП, якого не бачимо в каталозі, тож виконайте цей рядок у першу ж хвилину. Якщо він нічого не виводить, задайте у VECTOR_DB одну з інших підтримуваних векторних баз даних, які працюють як окремі сервіси.
Чи потрібен GPU?
Ні. Сам AnythingLLM виконує вебзастосунок, обробку документів і, за замовчуванням, ембедер лише на ЦП. Відповіді в чаті надає та LLM, яку ви підключите: хмарний провайдер через API-ключ, з тим, що документація називає майже нульовими накладними витратами, або локальна модель через Ollama. Документація сама радить розмістити локальну модель на іншій машині з GPU, якщо на машині з AnythingLLM його немає. Про це сторінка Ollama та лінійка GPU, а не ця.
Чи відкритий він в інтернеті після встановлення?
Команда проєкту відкриває порт 3001 на всіх інтерфейсах, а новий екземпляр не має пароля, доки ви його не встановите. Встановлення на цій сторінці натомість прив'язує 3001 до 127.0.0.1, тож доки ви не додасте домен, єдиний спосіб доступу це SSH-тунель. Далі в Settings встановіть пароль екземпляра або увімкніть багатокористувацький режим (README зазначає його як функцію Docker-версії), перш ніж ставити перед ним HTTPS.
Де зберігаються мої дані?
У каталозі сховища, який ви монтуєте в /app/server/storage: база даних SQLite, вектори LanceDB, завантажені документи та будь-які локально завантажені моделі. Docker-посібник радить монтувати його на хості саме для того, щоб ви могли завантажити новий образ, нічого не втративши. Робіть резервні копії цього каталогу та файлу .env поруч із ним; разом вони становлять увесь екземпляр.
Чи може він використовувати Ollama на тій самій машині?
Так. Зсередини контейнера хост доступний як http://host.docker.internal:11434, що в Linux потребує --add-host=host.docker.internal:host-gateway у команді запуску; крок вище це враховує. Тоді підбирайте машину під модель: 8B-модель потребує власних 8 GB понад AnythingLLM і відповідає на ЦП зі швидкістю кілька токенів на секунду. Рядок із 24 GB є найменшим на цій сторінці, де це комфортно.