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 목적지를 유지합니다. [고정 프로바이더 엔드포인트](#고정-프로바이더-엔드포인트)를 참조하세요. |
147
147
|`responsesPath?`|`string`|`key` 인증 `openai-responses` 요청에 사용할 선택적 상대 resource path. `/`로 시작해야 하며 URL scheme, query, fragment를 포함할 수 없습니다. 생략하면 기존 `/v1/responses` URL 구성을 유지합니다. |
|`baseUrl`|`string`| Базовый URL вышестоящего API. Большинство встроенных провайдеров с фиксированными конечными точками игнорируют несовпадающий адрес; новые API-key preset с защитой от коллизий сохраняют назначение старого одноимённого custom provider. См. [Фиксированные конечные точки провайдеров](#фиксированные-конечные-точки-провайдеров). |
167
167
|`responsesPath?`|`string`| Необязательный относительный путь ресурса для запросов `openai-responses` с аутентификацией `key`. Должен начинаться с `/` и не содержать схему URL, query или fragment. Если поле опущено, сохраняется прежнее построение URL `/v1/responses`. |
168
168
|`disabled?`|`boolean`| Провайдер остаётся на диске, но исключается из маршрутизации и списков моделей/каталога. |
169
169
|`apiKey?`|`string`| API-ключ или ссылка `${ENV_VAR}` / `$ENV_VAR`, разрешаемая в момент запроса. |
|`desktopExecutor?`|`DesktopExecutorConfig`|**Только Cursor.** Внешние команды computer-use/record-screen; поля перечислены ниже. |
207
207
|`unsafeAllowNativeLocalExec?`|`boolean`|**Только адаптер Cursor.** Явно включаемая лазейка для управляемого сервером Cursor локального выполнения `read` / `write` / `delete` / `ls` / `grep` / `shell` / `fetch`. По умолчанию `false`, поэтому удалённые сообщения Cursor не могут обойти одобрения и песочницу Codex. См. [Провайдер Cursor](#провайдер-cursor-adapter-cursor) ниже. |
208
208
209
+
### Фиксированные конечные точки провайдеров
210
+
211
+
Маршрутизация определяет конечную точку провайдера до того, как запрос увидит адаптер. Для
212
+
большинства встроенных провайдеров адрес из registry имеет приоритет над `baseUrl` в конфигурации.
213
+
Настроенный URL сохраняется на этом этапе в четырёх случаях:
214
+
215
+
- провайдер явно разрешает переопределение — `ollama`, `vllm`, `lm-studio`, `litellm`,
216
+
`qwen-cloud` и `alibaba-token-plan-intl`;
217
+
- конечная точка registry является заполняемым шаблоном, как у `azure-openai` и
218
+
`cloudflare-ai-gateway`;
219
+
- новый фиксированный API-key preset защищает коллизию имени: старый одноимённый custom provider,
220
+
указывающий на другой адрес, сохраняет исходное назначение и не отправляет ключ новому host из registry;
221
+
- провайдер определён пользователем и отсутствует в registry.
222
+
223
+
После этого адаптер всё ещё может изменить разрешённый URL. Например, адаптер `kiro` использует
224
+
API-регион импортированных учётных данных для канонического host `runtime.{region}.kiro.dev`.
225
+
Правила для каждого адаптера описаны в разделе [Адаптеры](/ru/reference/adapters/).
226
+
227
+
Если маршрутизация отбрасывает настроенный `baseUrl`, opencodex выводит предупреждение. Адрес
228
+
registry показывается полностью, а настроенный адрес только как origin; путь скрывается, поскольку
229
+
он может содержать данные учётных записей. Удалите неиспользуемый `baseUrl` либо выберите provider,
230
+
чья конечная точка соответствует нужному URL. Для региональных сервисов используйте правильную
231
+
запись: `alibaba-token-plan` закреплён за Пекином, а `alibaba-token-plan-intl` допускает международную
232
+
конечную точку.
233
+
209
234
## Провайдер Cursor (`adapter: "cursor"`)
210
235
211
236
Мост Cursor экспериментален. После `ocx login cursor` добавьте или отредактируйте запись
@@ -281,15 +306,15 @@ HTTP). Stdio-записи также принимают `args?: string[]`, `env?
281
306
Некоторые провайдеры отдают очень большие или медленные живые каталоги моделей. Установите
282
307
`liveModels` в `false`, когда хотите, чтобы Codex видел только модели, закреплённые в `models`:
283
308
309
+
Когда `liveModels` равен `false`, а `models` пуст или опущен, opencodex не открывает для этого
310
+
провайдера ни одной маршрутизируемой модели.
311
+
284
312
Живой discovery отклоняет ответ до кэширования, если он превышает 4 MiB или 2 000 исходных строк
285
313
моделей. Встроенный preset может снизить эти лимиты и отфильтровать смешанный каталог до chat-моделей.
286
314
Слишком большой или повреждённый ответ использует обычный stale/static fallback, а неподходящие
287
315
строки исключаются. Корректный ответ без подходящих строк остаётся авторитетным пустым каталогом;
288
316
ответ сверх лимита никогда не обрезается молча.
289
317
290
-
Когда `liveModels` равен `false`, а `models` пуст или опущен, opencodex не открывает для этого
291
-
провайдера ни одной маршрутизируемой модели.
292
-
293
318
`selectedModels` служит другой цели: обнаружение по-прежнему выполняется, но в каталог Codex и
294
319
`/v1/models` публикуются только выбранные id. Полный список моделей в дашборде остаётся
295
320
доступным, поэтому allowlist можно изменить позже.
0 commit comments