You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|`baseUrl`|`string`| 업스트림 API base URL. 고정 endpoint를 쓰는 대부분의 기본 제공 provider는 일치하지 않는 URL을 무시합니다. 새로 승격된 충돌 보호 API-key preset은 기존의 같은 이름 custom provider 목적지를 유지합니다. [고정 프로바이더 엔드포인트](#고정-프로바이더-엔드포인트)를 참조하세요. |
162
162
|`responsesPath?`|`string`|`key` 인증 `openai-responses` 요청에 사용할 선택적 상대 resource path. `/`로 시작해야 하며 URL scheme, query, fragment를 포함할 수 없습니다. 생략하면 기존 `/v1/responses` URL 구성을 유지합니다. |
|`baseUrl`|`string`| Базовый URL вышестоящего API. Большинство встроенных провайдеров с фиксированными конечными точками игнорируют несовпадающий адрес; новые API-key preset с защитой от коллизий сохраняют назначение старого одноимённого custom provider. См. [Фиксированные конечные точки провайдеров](#фиксированные-конечные-точки-провайдеров). |
185
185
|`responsesPath?`|`string`| Необязательный относительный путь ресурса для запросов `openai-responses` с аутентификацией `key`. Должен начинаться с `/` и не содержать схему URL, query или fragment. Если поле опущено, сохраняется прежнее построение URL `/v1/responses`. |
186
186
|`disabled?`|`boolean`| Провайдер остаётся на диске, но исключается из маршрутизации и списков моделей/каталога. |
187
187
|`apiKey?`|`string`| API-ключ или ссылка `${ENV_VAR}` / `$ENV_VAR`, разрешаемая в момент запроса. |
|`desktopExecutor?`|`DesktopExecutorConfig`|**Только Cursor.** Внешние команды computer-use/record-screen; поля перечислены ниже. |
225
225
|`unsafeAllowNativeLocalExec?`|`boolean`|**Только адаптер Cursor.** Явно включаемая лазейка для управляемого сервером Cursor локального выполнения `read` / `write` / `delete` / `ls` / `grep` / `shell` / `fetch`. По умолчанию `false`, поэтому удалённые сообщения Cursor не могут обойти одобрения и песочницу Codex. См. [Провайдер Cursor](#провайдер-cursor-adapter-cursor) ниже. |
226
226
227
+
### Фиксированные конечные точки провайдеров
228
+
229
+
Маршрутизация определяет конечную точку провайдера до того, как запрос увидит адаптер. Для
230
+
большинства встроенных провайдеров адрес из registry имеет приоритет над `baseUrl` в конфигурации.
231
+
Настроенный URL сохраняется на этом этапе в четырёх случаях:
232
+
233
+
- провайдер явно разрешает переопределение — `ollama`, `vllm`, `lm-studio`, `litellm`,
234
+
`qwen-cloud` и `alibaba-token-plan-intl`;
235
+
- конечная точка registry является заполняемым шаблоном, как у `azure-openai` и
236
+
`cloudflare-ai-gateway`;
237
+
- новый фиксированный API-key preset защищает коллизию имени: старый одноимённый custom provider,
238
+
указывающий на другой адрес, сохраняет исходное назначение и не отправляет ключ новому host из registry;
239
+
- провайдер определён пользователем и отсутствует в registry.
240
+
241
+
После этого адаптер всё ещё может изменить разрешённый URL. Например, адаптер `kiro` использует
242
+
API-регион импортированных учётных данных для канонического host `runtime.{region}.kiro.dev`.
243
+
Правила для каждого адаптера описаны в разделе [Адаптеры](/ru/reference/adapters/).
244
+
245
+
Если маршрутизация отбрасывает настроенный `baseUrl`, opencodex выводит предупреждение. Адрес
246
+
registry показывается полностью, а настроенный адрес только как origin; путь скрывается, поскольку
247
+
он может содержать данные учётных записей. Удалите неиспользуемый `baseUrl` либо выберите provider,
248
+
чья конечная точка соответствует нужному URL. Для региональных сервисов используйте правильную
249
+
запись: `alibaba-token-plan` закреплён за Пекином, а `alibaba-token-plan-intl` допускает международную
250
+
конечную точку.
251
+
227
252
## Провайдер Cursor (`adapter: "cursor"`)
228
253
229
254
Мост Cursor экспериментален. После `ocx login cursor` добавьте или отредактируйте запись
@@ -299,15 +324,15 @@ HTTP). Stdio-записи также принимают `args?: string[]`, `env?
299
324
Некоторые провайдеры отдают очень большие или медленные живые каталоги моделей. Установите
300
325
`liveModels` в `false`, когда хотите, чтобы Codex видел только модели, закреплённые в `models`:
301
326
327
+
Когда `liveModels` равен `false`, а `models` пуст или опущен, opencodex не открывает для этого
328
+
провайдера ни одной маршрутизируемой модели.
329
+
302
330
Живой discovery отклоняет ответ до кэширования, если он превышает 4 MiB или 2 000 исходных строк
303
331
моделей. Встроенный preset может снизить эти лимиты и отфильтровать смешанный каталог до chat-моделей.
304
332
Слишком большой или повреждённый ответ использует обычный stale/static fallback, а неподходящие
305
333
строки исключаются. Корректный ответ без подходящих строк остаётся авторитетным пустым каталогом;
306
334
ответ сверх лимита никогда не обрезается молча.
307
335
308
-
Когда `liveModels` равен `false`, а `models` пуст или опущен, opencodex не открывает для этого
309
-
провайдера ни одной маршрутизируемой модели.
310
-
311
336
`selectedModels` служит другой цели: обнаружение по-прежнему выполняется, но в каталог Codex и
312
337
`/v1/models` публикуются только выбранные id. Полный список моделей в дашборде остаётся
313
338
доступным, поэтому allowlist можно изменить позже.
0 commit comments