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

VS Code Copilot Chat — OmniCopilot extension (Русский)

  1. Запустите OmniRoute — npm install -g omniroute && omniroute (панель управления доступна по адресу http://localhost:20128).
  2. Установите расширение — найдите «OmniRoute» в представлении расширений.
  3. Выберите модель — Copilot Chat → средство выбора моделей → Manage Models… → OmniRoute, затем отметьте нужные модели.

Если OmniRoute работает на порте по умолчанию, ничего настраивать не нужно. Для удалённого экземпляра откройте значок OmniRoute на панели действий (или выполните OmniRoute: Manage Connection) и укажите:

  • URL сервера — корневой адрес сервера, например http://192.168.0.15:20128. Суффикс /v1 добавляется расширением; не включайте его.
  • Ключ API — только если на сервере задана переменная REQUIRE_API_KEY. Хранится в системном хранилище ключей через VS Code SecretStorage, но никогда не в settings.json.

Расширение не отображает необработанные данные GET /v1/models — оно преобразует их, поэтому отображаемое количество меньше размера каталога по двум намеренно предусмотренным причинам.

Для каждой модели запрашивается один идентификатор

Заголовок раздела «Для каждой модели запрашивается один идентификатор»

По умолчанию MODELS_CATALOG_PREFIX_MODE имеет значение dual, при котором каждая модель публикуется дважды — один раз с коротким префиксом псевдонима и один раз с каноническим префиксом поставщика, — чтобы старые конфигурации клиентов могли разрешать обе формы:

cc/claude-sonnet-4-6 ← префикс псевдонима
claude/claude-sonnet-4-6 ← канонический префикс, та же модель

Расширение запрашивает GET /v1/models?prefix=alias, поэтому для каждой модели поступает один идентификатор, а общесерверная настройка для других клиентов не изменяется. На эталонном экземпляре это сократило 2345 записей до 1396 — 949 дубликатов, ни одной потерянной модели.

Если вы предпочитаете исправить это на уровне сервера для каждого клиента, установите для флага функции MODELS_CATALOG_PREFIX_MODE значение alias на панели управления. О параметре запроса и таблице для каждого режима см. в разделе API_REFERENCE → prefix.

Модели, не поддерживающие чат, скрываются

Заголовок раздела «Модели, не поддерживающие чат, скрываются»

В каталоге также перечислены модели для изображений, видео, аудио, переранжирования, эмбеддингов и модерации. Запросы чата к ним всё равно отклоняются:

HTTP 400 — Модель '<id>' предназначена для генерации изображений и не может использоваться с
/v1/chat/completions. Вместо этого используйте POST /v1/images/generations.

поэтому они отфильтровываются по полю type до попадания в средство выбора. Модели Responses API сохраняются — каждая запись Codex / GPT-5.x объявляет supported_endpoints: ["responses"], а OmniRoute преобразует их для /v1/chat/completions, поэтому они полностью пригодны для использования.

В каталоге перечислены модели от поставщиков с активным подключением, а также от всех поставщиков noAuth — то есть поставщиков без ключей, составляющих значительную часть бесплатного уровня. Это сделано намеренно. Чтобы скрыть их, добавьте их в blockedProviders в настройках панели управления; в расширении ничего не изменится.


omnicopilot.dashboardOpen: "editor" отображает панель управления OmniRoute во вкладке редактора через Simple Browser вместо внешнего браузера. Встраивание необходимо явно разрешить на сервере с помощью DASHBOARD_ALLOW_EMBED=vscode: в этом случае HTML-страницы отдаются с frame-ancestors 'self' vscode-webview: вместо используемых по умолчанию frame-ancestors 'none' + X-Frame-Options: DENY. Для интерфейсов API (/api, /v1, /v1beta, /a2a, /healthz) строгие заголовки сохраняются в любом случае.

⚠️ Это флаг времени сборки, а не времени выполнения. Next.js компилирует headers() в манифест маршрутов, поэтому next.config.mjs считывает переменную во время сборки пакета (next.config.mjs → resolveDashboardEmbedMode, scripts/build/dashboardEmbed.mjs). Экспорт этой переменной перед запуском уже собранного сервера ничего не изменит — заголовки встроены в сборку.

Окно терминала
# переменная должна быть задана в команде СБОРКИ
DASHBOARD_ALLOW_EMBED=vscode npm run build # или npm run build:release
npm start
Способ установки Можно ли включить встраивание?
Из исходного кода ✅ задайте переменную в команде сборки, как показано выше
npm install -g omniroute ❌ опубликованный пакет содержит предварительно собранный пакет — вместо этого выполните сборку из исходного кода
Образ Docker ✅ docker build --build-arg DASHBOARD_ALLOW_EMBED=vscode -t omniroute:embed . — предварительно собранный образ на Docker Hub не поддерживает встраивание

Без сборки с поддержкой встраивания страница запрещает отображение во фрейме, расширение определяет это по заголовкам ответа и переключается на внешний браузер — ничего не ломается, а уведомление об этом выводится один раз. См. ENVIRONMENT.md и обсуждение #10273.


OmniRoute: Configure Coding CLI использует CLI omniroute для создания готовых к использованию профилей для Codex CLI, Claude Code, Cline, Continue, Cursor, Aider, OpenCode, Goose, Crush, Qwen Code, Kilo и Roo — тех же конфигураций, которые описаны в CLI-INTEGRATIONS.md. Ключ API передаётся CLI через переменную среды OMNIROUTE_API_KEY и никогда не указывается в командной строке.


Симптом Причина / решение
В списке выбора нет моделей OmniRoute Сервер недоступен. Индикатор в строке состояния становится серым; выполните OmniRoute: Check Connection. Обнаружение выполняется без уведомлений и намеренно не добавляет модели вместо вывода запроса пользователю.
Каждая модель отображается дважды Используется версия OmniCopilot старше 1.0.1 — обновите расширение. Теперь оно отправляет запрос с ?prefix=alias.
Модель изображений/аудио раньше отображалась, но исчезла Это намеренное изменение, начиная с версии 1.0.1: такая модель всё равно не могла отвечать на запросы чата.
Панель отсутствует на панели действий VS Code перемещает дополнительные контейнеры представлений в меню переполнения «…» в нижней части панели действий, а контейнер, скрытый через контекстное меню, остаётся скрытым. Щёлкните правой кнопкой мыши панель действий → отметьте OmniRoute или откройте её с помощью OmniRoute: Manage Connection.
Панель управления открывается в браузере, несмотря на режим editor Сервер не был собран с DASHBOARD_ALLOW_EMBED=vscode (см. выше) — установка переменной при запуске предварительно собранной версии ничего не меняет. Переключение на браузер предусмотрено намеренно.
Список моделей не обновился после изменения провайдеров Выполните OmniRoute: Refresh Models или нажмите ссылку ↻ на панели.


Исходный код OmniRoute (a58000c7685f)

HagiCode

HagiCode — агентная среда разработки со структурированными процессами, параллельным выполнением несколькими агентами и интерфейсами Hero Dungeon.

Превращайте идеи в полезное ПО с более умным, быстрым и увлекательным агентным рабочим процессом.

Главный экран HagiCode в светлой теме
  • SmartСтруктурированные процессы превращают намерение в исполнимый путь от идеи до готового изменения.
  • EfficientМультиагентные процессы параллельно продвигают исследование, реализацию и проверку.
  • FunHero Dungeon делает длительную совместную разработку наглядной и увлекательной.
Перейти на HagiCode