РелизКод / SDK · В работуHabr AI→ оригинал

AnythingLLM собирает приватного RAG-ассистента по вашим документам за вечер

AnythingLLM — открытое приложение, которое режет ваши PDF и DOCX на куски, кладёт их в векторную базу и подаёт модели только нужные фрагменты. Работает на десктопе или в Docker, подключается к Ollama, Claude или любому OpenAI-совместимому шлюзу. Вечера хватит, чтобы собрать приватного ассистента. Но RAG из коробки средненький, а в 2026 году нашли серьёзные уязвимости.

AI-обработка оригинала Habr AI; редакция Hamidun News
AnythingLLM собирает приватного RAG-ассистента по вашим документам за вечер
Источник: Habr AI. Коллаж: Hamidun News.
Слушать статью
Паспорт материала и цифры
ПараметрДанные
ПервоисточникHabr AI ↗
Главный редактор
Ключевой факт #1Режим Embed вместо прикрепления не забивает контекстное окно
CVE-2026-48116 даёт RCE в Dockerобновитесь до 1.13.0 и выше
Ключевой факт #3Max tokens по умолчанию 1024, длинные ответы молча обрежутся

Знакомая ситуация: на диске сотня PDF с договорами, конспекты и внутренняя документация. Загружаете в чат-бот один файл, и он справляется. Загружаете двадцать, и контекст переполняется, а часть данных теряется. Плюс подписка, плюс VPN, плюс нежелание отдавать документы в чужое облако. Для такой задачи и сделан AnythingLLM.

Что это и как устроено

AnythingLLM — full-stack open-source приложение. Оно берёт файлы, режет на чанки, векторизует, складывает в базу и подсовывает модели только релевантные куски. Форматов хватает: PDF, DOCX, TXT, веб-страницы, аудио через Whisper.

Главная ловушка для новичков — два способа добавить документ. Если «прикрепить» файл к чату, его полный текст уходит в контекстное окно. Это быстро, но пара больших файлов, и окно кончилось. Режим Embed работает как нормальный RAG: в промпт попадают только фрагменты, близкие к вопросу.

Документы живут в workspace. Это изолированные пространства под проекты, у каждого своя память, свои файлы и своя модель. Один воркспейс может работать на локальной Ollama, другой ходить в Claude по API. В версии 1.13.0 добавили Model Router: он отправляет простые запросы дешёвой модели, а сложные флагманской. Правила задаёте вы, например по ключевым словам или размеру запроса. Там же появились Scheduled Jobs, то есть агенты по расписанию.

Векторная база по умолчанию встроенная LanceDB. При необходимости подключаются PGVector, Chroma, Milvus, Pinecone, Qdrant и другие.

Десктоп или Docker

Десктопная версия ставится в один клик на Mac, Windows и Linux. Всё работает на вашей машине, а встроенная модель предложит три GGUF-варианта под ваше железо. Подходит, чтобы за десять минут понять, нужен ли вам инструмент. Но это режим для одного пользователя, и с большой базой документов встроенный движок начнёт задыхаться.

Docker нужен для сервера: мультипользовательский режим, приглашения, разграничение доступа к workspace, чат-виджеты для сайта, полный API. Бэкап сводится к копированию одной директории хранилища. Две частые грабли:

  • контейнер работает от пользователя с UID/GID 1000, и если папка на хосте принадлежит root, SQLite не создаст базу, а контейнер уйдёт в вечный перезапуск. Лечится командой chown -R 1000:1000 на каталог хранилища;
  • флаг --cap-add SYS_ADMIN выглядит подозрительно, но без него не запустится встроенный headless-браузер для веб-страниц.

Внешнюю модель подключают через провайдера Generic OpenAI: достаточно указать Base URL, ключ и точный ID модели. Так подключаются российские шлюзы вроде Bothub, а также LM Studio, Ollama в режиме совместимости, vLLM и OpenRouter. Схема одна, меняется только адрес. Два поля стоит заполнить сразу: Token context window по реальному окну модели и Max tokens. По умолчанию там 1024, и длинные ответы будут обрезаться без предупреждения.

Где болит

Первое — качество RAG. Из коробки он работает, но средне. Результат зависит от размера чанков, модели эмбеддингов и порога сходства, а дефолты это компромисс, а не настройка под вашу задачу. Типичный симптом: модель отвечает по одному абзацу из середины PDF и игнорирует три других, где сказано то же другими словами. Первый вечер уйдёт на разбирательства.

Второе — стабильность агентов. В 2026 году были утечки памяти: каждый RAG-запрос в агентской сессии добавлял от 100 до 650 МБ, которые не освобождались. Для домашних опытов терпимо, для сервера с десятком пользователей нет.

Третье — безопасность. CVE-2026-48116 позволяла выполнить произвольную команду внутри контейнера через инъекцию аргумента в ripgrep. Файловый плагин в официальном образе включён по умолчанию, поэтому достаточно было написать агенту сообщение. CVE-2026-45403 давала path traversal через символические ссылки. Обе закрыты в 1.13.0, актуальная версия на момент статьи 1.19.0. Кроме того, у десктопа нет аутентификации, а Docker-версия не просит пароль, пока вы сами его не включите. Открытый порт без пароля это не приватность, а лотерея.

Облачную hosted-версию за 50 долларов в месяц для серьёзной работы с документами не рекомендую: встроенной LLM там нет, эмбеддер на CPU с жёсткими лимитами, а кастомные агенты и MCP отключены.

Практический вывод

Если у вас есть корпус текстов и нежелание отдавать его публичным облакам, AnythingLLM даёт рабочую основу за вечер. Начните с десктопа, переходите на Docker для команды, сразу включайте пароль, обновляйтесь до свежей версии и закладывайте время на тюнинг чанкинга. Для продакшена с критичными данными ассистент пока лучше держать под присмотром, как стажёра с доступом к проду.

Сюжет

Вопросы и ответы по материалу

Что известно по теме: что это и как устроено?

AnythingLLM — full-stack open-source приложение. Оно берёт файлы, режет на чанки, векторизует, складывает в базу и подсовывает модели только релевантные куски. Форматов хватает: PDF, DOCX, TXT, веб-страницы, аудио через Whisper. Главная ловушка для новичков — два способа добавить документ. Если «прикрепить» файл к чату, его полный текст уходит в контекстное окно. Это быстро, но пара больших файлов, и окно кончилось. Режим Embed работает как нормальный RAG: в промпт попадают только фрагменты, близкие к вопросу.

Что известно по теме: десктоп или Docker?

Десктопная версия ставится в один клик на Mac, Windows и Linux. Всё работает на вашей машине, а встроенная модель предложит три GGUF-варианта под ваше железо. Подходит, чтобы за десять минут понять, нужен ли вам инструмент. Но это режим для одного пользователя, и с большой базой документов встроенный движок начнёт задыхаться. Docker нужен для сервера: мультипользовательский режим, приглашения, разграничение доступа к workspace, чат-виджеты для сайта, полный API.

Что известно по теме: где болит?

Первое — качество RAG. Из коробки он работает, но средне. Результат зависит от размера чанков, модели эмбеддингов и порога сходства, а дефолты это компромисс, а не настройка под вашу задачу. Типичный симптом: модель отвечает по одному абзацу из середины PDF и игнорирует три других, где сказано то же другими словами. Первый вечер уйдёт на разбирательства. Второе — стабильность агентов. В 2026 году были утечки памяти: каждый RAG-запрос в агентской сессии добавлял от 100 до 650 МБ, которые не освобождались.

ЖХ
Жемал Хамидун — CPO Alpina Digital, продакт-менеджер AlpinaGPT. Делает AI-продукты с 2019 года. Hamidun News — pet project, который вырос в production-агрегатор с 6000+ читателей.
✦ Единое AI-пространство · Nomad

Протестируйте новые LLM и мультимодальные модели в одном окне

Платформа Nomad AI (nomadnet.ai) даёт прямой доступ к Claude Opus 5.5, GPT-6, Gemini 3.1, DeepSeek и автономным агентам без VPN, зарубежных карт и зоопарка подписок.

Открыть Nomad AI →Автономный Nomad Agent
Что вы думаете?
Загружаем комментарии…