Перейти к содержимому

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

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 года и новее, и без AVX2 сервер падает при запуске. Проверьте внутри машины: 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

    Самый дешёвый, отвечающий минимуму, трафик без учёта. 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. Документация прямо говорит, что это единственное аппаратное требование и что его нельзя эмулировать; на машине без 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 запускает веб-приложение, конвейер обработки документов и по умолчанию эмбеддер, работающий только на CPU. Ответы в чате даёт та 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, и на CPU она отвечает со скоростью несколько токенов в секунду. Строка с 24 GB: самая маленькая на этой странице, где это комфортно.