# LobeChat через RouterAI: свой ChatGPT-клон с агентами и библиотекой знаний

LobeChat (проект называется LobeHub, репозиторий `lobehub/lobehub`, около 83 тысяч звёзд на GitHub) — open-source веб-клиент и десктоп-приложение для работы с LLM: чат с агентами, библиотека знаний, каталог готовых агентов в разделе «Сообщество», навыки и MCP-серверы. Через RouterAI в него подключаются Claude, GPT, DeepSeek, Gemini и другие модели из [каталога](/models): работа из России без VPN, оплата в рублях, один ключ на все модели. Статья проверена на образе `lobehub/lobehub` версии 2.2.20.

## Требования {#trebovaniya}

* Docker (для самохостинга) или десктопное приложение со [страницы релизов](https://github.com/lobehub/lobehub/releases).
* Для серверной версии, по [документации](https://lobehub.com/docs/self-hosting/start): PostgreSQL 14+ с расширением pgvector и S3-совместимое хранилище для файлов и библиотеки знаний.
* Ключ RouterAI: [создайте его в личном кабинете](https://routerai.ru/settings/keys) (раздел «Ключи API») и пополните баланс.

## Установка {#ustanovka}

В старых инструкциях встречается образ `lobehub/lobe-chat`: его последний тег на Docker Hub — 1.143.3 от 25 января 2026 года. Актуальные релизы выходят в образе `lobehub/lobehub`.

**Docker Compose** — рекомендуемый в документации способ: в одном стеке PostgreSQL, Redis, RustFS (S3) и Searxng.

```bash
mkdir lobehub && cd lobehub
bash <(curl -fsSL https://lobe.li/setup.sh) -l en
docker compose up -d
```

Скрипт предлагает три режима: Local (только с этой машины), Port (доступ по IP) и Domain (за обратным прокси). После запуска откройте `http://localhost:3210`.

**Один контейнер** с отдельными Postgres и S3. Минимальный набор переменных, на котором мы запускали проверку (Postgres с pgvector и S3-хранилище уже подняты):

```bash
docker run -d --name lobehub -p 3210:3210 \
  -e DATABASE_URL=postgres://postgres:mysecretpassword@my-postgres:5432/postgres \
  -e KEY_VAULTS_SECRET=$(openssl rand -base64 32) \
  -e AUTH_SECRET=$(openssl rand -base64 32) \
  -e APP_URL=http://localhost:3210 \
  -e FTS_SEARCH_PROVIDER=pg_like \
  -e S3_ENDPOINT=http://localhost:9000 \
  -e S3_BUCKET=lobe \
  -e S3_ACCESS_KEY_ID=xxxxxxxx \
  -e S3_SECRET_ACCESS_KEY=xxxxxxxx \
  lobehub/lobehub
```

`FTS_SEARCH_PROVIDER=pg_like` нужен, если в Postgres нет расширения `pg_search` (например, образ `pgvector/pgvector`); с образом ParadeDB из документации переменную можно не задавать. Остальные переменные и варианты — в [инструкции по Docker](https://lobehub.com/docs/self-hosting/platform/docker).

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/0dce0f03e07810e699185a63fbd3bf57.png)

Первого пользователя создаёт форма регистрации («Sign up now»).

## Подключение к RouterAI {#podklyuchenie-k-routerai}

LobeChat подключается к RouterAI как к OpenAI-совместимому провайдеру. Есть два способа: переменные окружения для всей инсталляции или форма в интерфейсе.

### Через переменные окружения {#env}

```bash
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxx
OPENAI_PROXY_URL=https://routerai.ru/api/v1
OPENAI_MODEL_LIST=-all,+anthropic/claude-sonnet-5.5=Claude Sonnet 5.5<1000000:fc:vision>,+anthropic/claude-haiku-5.5=Claude Haiku 5.5<1000000:fc:vision>,+deepseek/deepseek-v4-flash=DeepSeek V4 Flash<1048576:fc>
```

`OPENAI_PROXY_URL` должен заканчиваться на `/v1`: [документация](https://lobehub.com/docs/self-hosting/faq/no-v1-suffix) предупреждает, что при неверном суффиксе ответ может приходить пустым.

`OPENAI_MODEL_LIST` управляет списком моделей: `-all` скрывает встроенные, `+id=Название` добавляет модель, в угловых скобках — контекст и возможности (`fc` — вызов инструментов, `vision` — изображения). Формат описан [здесь](https://lobehub.com/docs/self-hosting/advanced/model-list). Id берите из [каталога RouterAI](/models).

### Через интерфейс {#ui}

Откройте Настройки → Поставщик ИИ (AI Provider) → OpenAI и включите провайдера.

1. **Ключ API** — ключ RouterAI вида `sk-xxxxxxxxxxxxxxxx` (на кадре показана заглушка).
2. **URL прокси API** — `https://routerai.ru/api/v1`.
3. **Проверка подключения** — выберите модель в выпадающем списке и нажмите «Проверить».

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/49787e5e309b7547ccd832fd694315de.png)

Переключатель «Использовать режим клиентского запроса» оставьте выключенным: в нём, по описанию в интерфейсе, сессии инициируются напрямую из браузера, а не с сервера LobeChat.

Встроенный список OpenAI-провайдера содержит только модели OpenAI, поэтому id RouterAI вида `anthropic/…` или `deepseek/…` нужно добавить самому — проще всего через `OPENAI_MODEL_LIST`. Цены и даты рядом с моделями LobeChat берёт из собственных метаданных, они не совпадают с ценами RouterAI: стоимость в рублях смотрите в каталоге.

### Выбор модели в чате {#model-picker}

Модель выбирается в поле ввода: нажмите на название модели справа внизу, затем «Модель». В списке есть поиск.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/42f8f94809226f55113387cca2233177.png)

В LobeChat есть и встроенные провайдеры Anthropic, Google и другие со своими списками. Чтобы запросы шли через RouterAI, давайте добавленным моделям узнаваемые названия, например «Claude Sonnet 5.5 (RouterAI)».

## Выбор модели {#vybor-modeli}

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

Цены в рублях — в [каталоге моделей](/models).

## Агенты и каталог сообщества {#agenty}

В LobeChat версии 2 готовые ассистенты называются агентами. Каталог открывается в боковом меню через «Сообщество»: на главной — избранные агенты и поиск, во вкладке «Агент» — категории (программирование, копирайтинг, маркетинг, перевод и другие). Кнопка «Fork & Chat» создаёт вашу копию агента с новым диалогом ([описание](https://lobehub.com/docs/usage/community/agent-market)): в копии можно менять системный промпт, модель по умолчанию, навыки и базы знаний.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/1326e2fd57a5ef1c47c88cba3858a5a0.png)

Адрес индекса агентов задаётся переменной `AGENTS_INDEX_URL`. Чтобы агент работал через RouterAI, выберите в его настройках одну из добавленных моделей.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/642cc1b697c2a66636407fa3be5b6d86.png)

## Библиотека знаний {#baza-znanij}

Раздел «Ресурсы» (Resource Library) — личная библиотека: загруженные в чат файлы, изображения и документы. Файлы режутся на фрагменты, превращаются в эмбеддинги и ищутся семантически; агент отвечает по найденным фрагментам ([документация](https://lobehub.com/docs/usage/getting-started/resource)).

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/9da7428b5a4883ede42e3b2765f766ce.png)

Серверной версии для этого нужны PostgreSQL с pgvector и S3 (в Docker Compose они уже есть). По [документации](https://lobehub.com/docs/self-hosting/advanced/knowledge-base), эмбеддинги по умолчанию строит `text-embedding-3-small` через OpenAI-провайдер. У RouterAI эта модель называется `openai/text-embedding-3-small`: при коротком id в журнале контейнера появляется ошибка `Model 'text-embedding-3-small' not found`. Модель по умолчанию меняется переменной (формат значения — `провайдер/модель`):

```bash
DEFAULT_FILES_CONFIG=embedding_model=openai/openai/text-embedding-3-small
```

Это значение проверено на живой инсталляции: загруженный документ разбился на фрагменты, для каждого RouterAI вернул эмбеддинг, и агент ответил по содержимому файла (см. ниже). Эмбеддинг-модели RouterAI: `openai/text-embedding-3-small` (контекст 8192), `qwen/qwen3-embedding-8b` (40 960), `google/gemini-embedding-001` (20 000); запрос к `/api/v1/embeddings` вернул векторы для `openai/text-embedding-3-small` и `qwen/qwen3-embedding-8b`. После смены модели эмбеддингов загруженные файлы лучше проиндексировать заново.

Чтобы файлы загружались и индексировались, на проверочной инсталляции понадобились три условия:

* **`JWKS_KEY`** — RSA-ключ в формате JWKS (тот же, что выдаёт `scripts/generate-oidc-jwk.mjs` из репозитория). Без него разбор файла завершается ошибкой `JWKS_KEY environment variable is not set`. Задайте его один раз и не меняйте.
* **S3 доступен из браузера.** Браузер загружает файл в S3 напрямую по временной ссылке, поэтому `S3_ENDPOINT` должен открываться с вашего компьютера, а не только из docker-сети, а для бакета нужно разрешить CORS. Иначе загрузка зависает на «Подготовка к загрузке… 99%».
* **`APP_URL` доступен с самого сервера.** Для разбора файла LobeChat обращается к себе по `APP_URL`: порт в нём должен совпадать с портом, на котором приложение слушает внутри контейнера, иначе файл получает статус «Ошибка сегментации» (`Please make sure the APP_URL is available from your server`).

Сгенерировать ключ для `JWKS_KEY` можно так (команда выводит одну строку JSON):

```bash
docker run --rm node:24-slim node -e 'const c=require("crypto");const k=c.generateKeyPairSync("rsa",{modulusLength:2048}).privateKey.export({format:"jwk"});k.use="sig";k.alg="RS256";k.kid=c.randomBytes(8).toString("hex");console.log(JSON.stringify({keys:[k]}))'
```

Создайте библиотеку («Создать новую библиотеку»), откройте её и нажмите «Загрузить файл». В проверке мы загрузили короткий документ `faq-invoices.md` (2,7 КБ, ответы на вопросы о демо-сервисе счетов): он разбился на 3 фрагмента.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/1ff1248668f9782416a61fa9604976df.png)

Чтобы агент отвечал по библиотеке:

1. В поле ввода чата нажмите «+» и выберите «Вложения».
2. Нажмите «Выбрать файлы / библиотеки» и «Добавить» напротив нужной библиотеки.
3. Выберите модель Claude Sonnet 5.5 и задайте вопрос по документу.

Агент назвал файл `faq-invoices.md` и базу знаний «Invoices FAQ» и ответил по их содержимому: срок оплаты счёта по умолчанию — 14 дней, номер счёта имеет формат `INV-ГГГГ-ММ-NNNN`. Обе подробности есть только в загруженном документе.

![1.00](https://b51bc417-3ee0-451a-a83b-8a681d027a96.selstorage.ru/public/5b83fe79f9bf58f4d380b0c404a56b7f.png)

## Навыки, MCP и голос {#navyki}

Вместо старых плагинов во второй версии используются навыки (Skills) и MCP-серверы: каталоги лежат в «Сообщество» → «Навыки» и «MCP» ([MCP Market](https://lobehub.com/docs/usage/community/mcp-market)). Чтобы агент вызывал инструменты, модель должна уметь tool calling: в `OPENAI_MODEL_LIST` такая модель помечается `fc`. Часть навыков и MCP-серверов требует собственного ключа сервиса (поиск, почта и т. п.), он вводится в настройках самого навыка и с ключом RouterAI не связан.

Голосовой ввод отправляет запись как голосовое сообщение; транскрибации в текст перед отправкой, по [документации](https://lobehub.com/docs/usage/agent/tts-stt), сейчас нет.

## Самохостинг для команды {#komanda}

Серверная версия уже включает PostgreSQL и вход по учётным записям (Better Auth). Для команды:

* задайте `APP_URL` с публичным адресом и поставьте обратный прокси с HTTPS (режим Domain в `setup.sh`);
* ограничьте регистрацию: `AUTH_ALLOWED_EMAILS` (список разрешённых адресов) или SSO вместе с `AUTH_DISABLE_EMAIL_PASSWORD=1` ([авторизация](https://lobehub.com/docs/self-hosting/auth));
* задайте RouterAI один раз через `OPENAI_API_KEY` и `OPENAI_PROXY_URL`, чтобы не раздавать ключи сотрудникам;
* настройте резервное копирование Postgres и S3: в Compose-файле тома по умолчанию локальные.

## Проверка подключения {#proverka}

Откройте чат, выберите модель RouterAI и отправьте сообщение. Быстрая проверка ключа без интерфейса:

```bash
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":"Привет"}]}'
```

В проверочной инсталляции `lobehub/lobehub` 2.2.20 с `OPENAI_PROXY_URL=https://routerai.ru/api/v1` агент Lobe AI ответил на сообщение с выбранной моделью Claude Sonnet 5.5.

## LobeChat, LibreChat и Open WebUI {#sravnenie}

Все три — self-hosted чаты, которые подключаются к RouterAI по OpenAI-совместимому API. LobeChat выбирают за каталог готовых агентов, личную библиотеку знаний и навыки/MCP; цена за это — более тяжёлая серверная часть (Postgres, S3). Подключение остальных клиентов описано в статьях [Open WebUI через RouterAI](/pages/open-webui-routerai) и [LibreChat через RouterAI](/pages/librechat-routerai).

## Решение проблем {#problemy}

* **Ответ пустой.** Убедитесь, что `OPENAI_PROXY_URL` (или «URL прокси API») — `https://routerai.ru/api/v1`, с `/v1`.
* **Нужной модели нет в списке.** Добавьте её id из каталога RouterAI через `OPENAI_MODEL_LIST`.
* **Контейнер завершается при старте с сообщением про `pg_search`.** В базе нет расширения ParadeDB. Задайте `FTS_SEARCH_PROVIDER=pg_like` или используйте образ из документации.
* **Ошибка `Invalid environment variables … S3_ENDPOINT`.** Серверной версии нужен настроенный S3: `S3_ENDPOINT` должен быть валидным URL, бакет создан заранее.
* **В журнале `Model 'text-embedding-3-small' not found`.** Эмбеддинги запрашиваются у RouterAI под коротким id. Задайте `DEFAULT_FILES_CONFIG` с полным id, как в разделе про библиотеку знаний.
* **Файл в библиотеке: загрузка висит на 99% или статус «Ошибка сегментации».** Проверьте три условия из раздела про библиотеку знаний: `JWKS_KEY`, доступность S3 из браузера с CORS и доступность `APP_URL` с самого сервера.
* **На экране входа «Email registration is disabled and no SSO providers are configured».** Включён `AUTH_DISABLE_EMAIL_PASSWORD=1`, но SSO не настроен. Уберите переменную или подключите SSO.
* **401.** Неверный ключ или нулевой баланс: проверьте их в личном кабинете RouterAI.

## Что дальше {#chto-dalshe}

* [Каталог моделей RouterAI](/models) — id, контекст и цены.
* [Open WebUI](/pages/open-webui-routerai) и [LibreChat](/pages/librechat-routerai) — другие self-hosted чаты.
* [AnythingLLM](/pages/anythingllm-routerai) — приватный RAG-ассистент по документам; [Cherry Studio](/pages/cherry-studio-routerai) — десктопный клиент.
* [Репозиторий LobeHub](https://github.com/lobehub/lobehub) и [документация](https://lobehub.com/docs).
