Загрузка...

популярность в разделе «Прочие»

AnythingLLM через RouterAI: приватный RAG-ассистент по своим документам

AnythingLLM — open-source приложение (лицензия MIT, около 67 тысяч звёзд на GitHub) для чата со своими документами: PDF, Word, текст и код загружаются в воркспейс, режутся на фрагменты, индексируются, а модель отвечает по найденным фрагментам и показывает источники. Через RouterAI к нему подключаются Claude, GPT, DeepSeek, Gemini и другие модели из каталога: работа из России без VPN, оплата в рублях, один ключ на все модели. Эмбеддинги для поиска по документам тоже можно взять у RouterAI. Статья проверена на AnythingLLM v1.18.0.

Требования

  • AnythingLLM Desktop (Windows, macOS, Linux) или Docker для серверной установки; для Docker, по документации, нужно минимум 2 ГБ RAM.
  • Ключ RouterAI: создайте его в личном кабинете (раздел «Ключи API») и пополните баланс. Ключ показывается один раз.

Установка

Есть два способа. По сравнению в документации, Desktop — для одного пользователя, ставится в один клик, интерфейс в приложении. Docker — для команды: мультипользовательский режим, права на воркспейсы, доступ из браузера, чат-виджеты для сайта.

Desktop. Скачайте установщик для своей системы на anythingllm.com/desktop и запустите приложение.

Docker (образ mintplexlabs/anythingllm, Linux/macOS):

docker pull mintplexlabs/anythingllm
export STORAGE_LOCATION=$HOME/anythingllm && \
mkdir -p $STORAGE_LOCATION && \
touch "$STORAGE_LOCATION/.env" && \
docker run -d --rm -p 3001:3001 \
--cap-add SYS_ADMIN \
-v ${STORAGE_LOCATION}:/app/server/storage \
-v ${STORAGE_LOCATION}/.env:/app/server/.env \
-e STORAGE_DIR="/app/server/storage" \
mintplexlabs/anythingllm

Без -v данные пропадут при перезапуске контейнера. Откройте http://localhost:3001: запустится мастер первого запуска, в котором уже можно выбрать LLM-провайдера. Команда для Windows и подробности — в документации.

1.00

Подключение к RouterAI

LLM

Откройте Settings → AI Providers → LLM Preference (в русском интерфейсе: «Поставщики ИИ» → «Предпочтение LLM»). В списке «Поставщик LLM» выберите Generic OpenAI — это провайдер для любого OpenAI-совместимого API. Документация предупреждает, что он рассчитан на тех, кто понимает назначение каждого поля.

1.00

  1. Base URL — https://routerai.ru/api/v1.
  2. API Key — ваш ключ RouterAI вида sk-xxxxxxxxxxxxxxxx (на кадре и в примерах ниже показана заглушка).
  3. Selected Model — id модели из каталога. Когда Base URL и ключ верны, AnythingLLM сам загружает список моделей RouterAI в выпадающий список. Если список не загрузился, поле превращается в текстовое: впишите id вручную, например anthropic/claude-sonnet-5.5.
  4. Model context window — размер контекста модели в токенах. Для anthropic/claude-sonnet-5.5 в каталоге указано 1 000 000.
  5. Max Tokens — максимум токенов в одном ответе (по умолчанию 1024; для развёрнутых ответов по документам увеличьте, например, до 8192).

Поля 4 и 5 в форме обязательные, AnythingLLM не подставляет их сам, поэтому для моделей RouterAI их нужно задать вручную. Окно контекста смотрите в каталоге RouterAI, а не угадывайте. Сохраните настройки.

Эмбеддинги

Эмбеддинги превращают фрагменты документов в векторы для поиска. По умолчанию AnythingLLM использует встроенный движок (AnythingLLM Embedder), который работает локально. Можно взять модель эмбеддингов RouterAI: Settings → AI Providers → Embedder Preference («Настройки встраивания»), провайдер Generic OpenAI.

1.00

  1. Base URL — https://routerai.ru/api/v1.
  2. Embedding Model — qwen/qwen3-embedding-8b (в каталоге контекст 40 960) или google/gemini-embedding-001 (20 000).
  3. Max embedding chunk length — максимальная длина фрагмента в символах (в интерфейсе подсказка 8192).
  4. API Key — ключ RouterAI (поле помечено optional, для RouterAI он нужен).

Оба id есть в каталоге, запрос к /api/v1/embeddings с qwen/qwen3-embedding-8b и google/gemini-embedding-001 вернул векторы. Embedder задаётся для всей инсталляции, не для воркспейса. После смены эмбеддера документы нужно загрузить и проиндексировать заново, иначе поиск будет работать неверно, поэтому выберите вариант до загрузки документов.

Документы, воркспейсы и цитаты

Воркспейс — отдельное пространство со своими документами, настройками и историей. Модель видит только документы, добавленные в воркспейс.

  1. Нажмите «Загрузить документ» (Upload a document) и выберите файлы.
  2. Перенесите их в воркспейс (Move to Workspace) и нажмите Save and Embed. Документ разбивается на фрагменты, и они отправляются эмбеддеру.
  3. Задайте вопрос в чате. AnythingLLM находит близкие фрагменты и передаёт их модели. Под ответом появляется список «Источники» (Citations) с файлами, из которых взяты фрагменты.

Режим выбирается в настройках воркспейса (значок шестерёнки, вкладка Chat Settings) — описание режимов:

Режим Что делает
Query Отвечает только по вашим документам; если ничего не нашёл, сообщает об этом
Chat Использует и документы, и общие знания модели
Agent Сам вызывает навыки и инструменты (по умолчанию для новых воркспейсов)

Если в Query приходит ответ «No relevant information found», откройте Vector Database Settings воркспейса и смягчите «Document similarity threshold» (вплоть до No restriction) или перефразируйте вопрос словами из документа.

1.00

Агенты и Model Router

В режиме Agent модель сама выбирает навыки: поиск по документам, веб-браузинг, SQL, работа с файлами. Набор настраивается в Settings → Agent Skills, а модель для агента можно задать отдельно в настройках воркспейса. Агенты полностью зависят от способности модели вызывать инструменты (tool calling), поэтому для агентных сценариев берите модели с хорошей поддержкой вызова инструментов (см. «Решение проблем»).

Model Router (с версии 1.13.0, Settings → AI Providers → Model Router; в русском интерфейсе пункт называется «Примерный маршрутизатор», а страница — «Модели маршрутизаторов») разводит дешёвые и дорогие модели внутри одного воркспейса. Новый роутер создаётся кнопкой «Новый роутер» (New Router). Роутер состоит из:

  • Fallback Provider & Model («Основной поставщик и модель») — модель по умолчанию; она же классифицирует запросы для LLM-правил, поэтому берите быструю и дешёвую, например anthropic/claude-haiku-5.5;
  • Cache Cooldown (seconds) («Время перезагрузки кэша (секунды)», по умолчанию 300) — как долго решение о маршруте запоминается в разговоре (0 — проверять каждое сообщение);
  • правил, которые проверяются сверху вниз, первое совпавшее срабатывает. Calculated-правила («Рассчитано») смотрят на само сообщение (например, Prompt Content contains) и не вызывают модель. LLM Classified-правила («Классифицированный LLM») описываются обычным текстом («вопросы про договоры и юридические темы») и добавляют один вызов модели на сообщение.

1.00

Правила открываются из списка роутеров (нажмите на число в колонке «Правила»), новое правило добавляется кнопкой «Новое правило» (в списке — «Добавить правило»). В правиле задаются заголовок, тип, условие и поставщик с моделью, куда направить сообщение.

Пример: простые вопросы идут в anthropic/claude-haiku-5.5, а сообщения со словами «договор, юридический, пункт» — в anthropic/claude-sonnet-5.5. Созданный роутер появляется в списке провайдеров как Model Router: выберите его в LLM Preference или в настройках воркспейса. Над каждым ответом показан бейдж с моделью и правилом. Подробности — в документации.

1.00

Приватность

Документы, векторная база (по умолчанию LanceDB) и история чатов хранятся в вашей инсталляции: в каталоге Desktop или в томе /app/server/storage контейнера. Что уходит наружу:

  • при чате в RouterAI отправляются вопрос, история и найденные фрагменты документов;
  • при эмбеддингах через RouterAI в API отправляются фрагменты документов при индексации. Если этого нужно избежать, оставьте встроенный AnythingLLM Embedder: в мастере первого запуска для него написано, что текст документов обрабатывается приватно на вашей инсталляции;
  • анонимную телеметрию AnythingLLM можно отключить в настройках или переменной DISABLE_TELEMETRY="true".

Чтобы полностью стереть документ, удалите его из My Documents: из воркспейса удаляются только векторы.

1.00

Выбор модели

Модель Контекст (каталог) Для чего
anthropic/claude-sonnet-5.5 1 000 000 Основная: ответы по документам, агенты
anthropic/claude-haiku-5.5 1 000 000 Быстрые ответы, fallback-модель роутера
deepseek/deepseek-v4-flash 1 048 576 Дешёвые массовые вопросы
openai/gpt-5.4-mini 400 000 Универсальные задачи, компактная модель
google/gemini-3.1-pro-preview 1 048 576 Длинные документы и сложные вопросы

Цены в рублях — в каталоге моделей.

Проверка подключения

Загрузите небольшой документ, добавьте его в воркспейс и задайте вопрос, ответ на который есть только в нём. Внизу ответа должны быть имя модели и список «Источники». На проверочном проекте с тремя файлами anthropic/claude-sonnet-5.5 ответил верно и перечислил все три документа как источники. Быстрая проверка ключа без интерфейса:

curl https://routerai.ru/api/v1/chat/completions \
  -H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"anthropic/claude-sonnet-5.5","messages":[{"role":"user","content":"Привет"}]}'

Решение проблем

  • Список моделей пуст, поле Selected Model текстовое. Проверьте, что Base URL — https://routerai.ru/api/v1 (с /v1, без /chat/completions) и ключ введён без пробелов. Можно вписать id вручную.
  • Ошибка авторизации (401). Неверный ключ или нулевой баланс: проверьте их в личном кабинете RouterAI.
  • Query отвечает «No relevant information found». Снизьте порог «Document similarity threshold» в Vector Database Settings воркспейса, задайте вопрос словами из документа.
  • Поиск перестал находить документы после смены эмбеддера. Векторы старой и новой моделей несовместимы: удалите документы из воркспейса и проиндексируйте их заново.
  • Агент не использует навыки. Модель плохо вызывает инструменты: смените её на модель с надёжным tool calling. Если нативные вызовы инструментов у провайдера ведут себя неверно, в документации описана переменная PROVIDER_DISABLE_NATIVE_TOOL_CALLING.

Что дальше