sections.json 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381
  1. {
  2. "basic": {
  3. "identity": {
  4. "title": "Идентификация провайдера",
  5. "desc": "Укажите уникальное имя для идентификации этого провайдера"
  6. },
  7. "endpoint": {
  8. "title": "API Endpoint",
  9. "desc": "Настройте базовый URL для API запросов"
  10. },
  11. "endpointPool": {
  12. "title": "Пул эндпоинтов",
  13. "desc": "Управляйте эндпоинтами для этого типа провайдера"
  14. },
  15. "auth": {
  16. "title": "Аутентификация",
  17. "desc": "Укажите API ключ для аутентификации"
  18. }
  19. },
  20. "apiTest": {
  21. "desc": "Проверяет доступность модели у провайдера. По умолчанию соответствует типу провайдера, выбранному в настройках маршрутизации.",
  22. "summary": "Проверка связности провайдера и модели",
  23. "testLabel": "Тест модели провайдера",
  24. "title": "Тест модели провайдера"
  25. },
  26. "circuitBreaker": {
  27. "desc": "Автоматическое отключение при серии неудач для защиты качества сервиса",
  28. "failureThreshold": {
  29. "desc": "Сколько подряд неудач для срабатывания",
  30. "label": "Порог неудач",
  31. "placeholder": "5",
  32. "warning": "Значение 0 отключает предохранитель - используйте с осторожностью"
  33. },
  34. "maxRetryAttempts": {
  35. "desc": "Общее число попыток (включая первую) перед переключением на другого провайдера. Оставьте пустым для значения по умолчанию.",
  36. "label": "Максимум попыток на провайдера",
  37. "placeholder": "2"
  38. },
  39. "openDuration": {
  40. "desc": "Через сколько перейти в полураскрытое состояние",
  41. "label": "Длительность блокировки (мин)",
  42. "placeholder": "30"
  43. },
  44. "successThreshold": {
  45. "desc": "Сколько успешных запросов в полураскрытом режиме для полного восстановления",
  46. "label": "Порог восстановления",
  47. "placeholder": "2"
  48. },
  49. "summary": "{failureThreshold} неудач / {openDuration} мин. блокировки / {successThreshold} успеха для восстановления / до {maxRetryAttempts} попыток на провайдера",
  50. "title": "Предохранитель"
  51. },
  52. "mcpPassthrough": {
  53. "desc": "При включении передаёт вызовы инструментов MCP указанному AI-провайдеру (например, minimax для распознавания изображений, веб-поиска)",
  54. "hint": "Подсказка: сквозная передача MCP позволяет клиенту Claude Code использовать возможности инструментов, предоставляемых сторонними AI-провайдерами (например, распознавание изображений, веб-поиск)",
  55. "select": {
  56. "custom": {
  57. "desc": "Сквозная передача в пользовательский сервис MCP (зарезервировано, не реализовано)",
  58. "label": "Пользовательский"
  59. },
  60. "glm": {
  61. "desc": "Сквозная передача в сервис GLM MCP (поддержка анализа изображений, видео и т.д.)",
  62. "label": "GLM"
  63. },
  64. "label": "Тип сквозной передачи",
  65. "minimax": {
  66. "desc": "Сквозная передача в сервис minimax MCP (поддержка распознавания изображений, веб-поиска и т.д.)",
  67. "label": "Minimax"
  68. },
  69. "none": {
  70. "desc": "Не включать сквозную передачу MCP (по умолчанию)",
  71. "label": "Отключено"
  72. },
  73. "placeholder": "Выберите тип сквозной передачи"
  74. },
  75. "summary": {
  76. "custom": "Пользовательский (Зарезервировано)",
  77. "glm": "GLM",
  78. "minimax": "Minimax",
  79. "none": "Отключено"
  80. },
  81. "title": "Конфигурация сквозной передачи MCP",
  82. "urlAuto": "Автоматически извлечено: {url}",
  83. "urlDesc": "Базовый URL сервиса MCP. Оставьте пустым для автоматического извлечения из URL провайдера",
  84. "urlLabel": "URL сквозной передачи MCP",
  85. "urlPlaceholder": "https://api.minimaxi.com"
  86. },
  87. "proxy": {
  88. "desc": "Настройте прокси для улучшения соединения (поддержка HTTP, HTTPS, SOCKS4, SOCKS5)",
  89. "fallback": {
  90. "desc": "При включении будет предпринята попытка прямого соединения при сбое прокси",
  91. "label": "Откат к прямому соединению при сбое прокси"
  92. },
  93. "summary": {
  94. "configured": "Прокси настроен",
  95. "fallback": " (включён откат)",
  96. "none": "Не настроено"
  97. },
  98. "test": {
  99. "desc": "Проверка доступа к URL провайдера через прокси (запрос HEAD, без списания средств)",
  100. "label": "Проверка соединения"
  101. },
  102. "title": "Прокси",
  103. "url": {
  104. "formats": "Поддерживаемые форматы:",
  105. "label": "URL прокси",
  106. "optional": "(необязательно)",
  107. "placeholder": "например: http://proxy.example.com:8080 или socks5://127.0.0.1:1080"
  108. }
  109. },
  110. "rateLimit": {
  111. "title": "Ограничения",
  112. "desc": "Настройка лимитов расходов для контроля затрат в разных временных окнах",
  113. "dailyResetMode": {
  114. "desc": {
  115. "fixed": "Сбрасывать квоту каждый день в фиксированное время",
  116. "rolling": "Считать от первой заявки, сброс через 24 часа"
  117. },
  118. "label": "Режим ежедневного сброса",
  119. "options": {
  120. "fixed": "Фиксированное время",
  121. "rolling": "Скользящее окно (24 часа)"
  122. }
  123. },
  124. "dailyResetTime": {
  125. "label": "Время ежедневного сброса (HH:mm)"
  126. },
  127. "limit5h": {
  128. "label": "Лимит за 5 часов (USD)",
  129. "placeholder": "Пусто — без ограничений"
  130. },
  131. "limitConcurrent": {
  132. "label": "Лимит параллельных сессий",
  133. "placeholder": "0 — без ограничений"
  134. },
  135. "limitDaily": {
  136. "label": "Дневной лимит расходов (USD)",
  137. "placeholder": "Пусто — без ограничений"
  138. },
  139. "limitMonthly": {
  140. "label": "Месячный лимит (USD)",
  141. "placeholder": "Пусто — без ограничений"
  142. },
  143. "limitTotal": {
  144. "label": "Общий лимит (USD)",
  145. "placeholder": "Пусто — без ограничений"
  146. },
  147. "limitWeekly": {
  148. "label": "Недельный лимит (USD)",
  149. "placeholder": "Пусто — без ограничений"
  150. },
  151. "summary": {
  152. "concurrent": "Параллельно: {count}",
  153. "daily": "день: {amount} (сброс {resetTime})",
  154. "fiveHour": "5ч: ${amount}",
  155. "monthly": "Месяц: ${amount}",
  156. "none": "Без ограничений",
  157. "total": "Всего: ${amount}",
  158. "weekly": "Неделя: ${amount}"
  159. },
  160. "title": "Ограничения"
  161. },
  162. "limits": {
  163. "timeBased": "Временные ограничения",
  164. "dailyReset": "Настройки ежедневного сброса",
  165. "otherLimits": "Другие ограничения"
  166. },
  167. "routing": {
  168. "cacheTtl": {
  169. "desc": "Принудительно задать TTL кэша промптов; влияет только на запросы с cache_control.",
  170. "label": "Переопределение Cache TTL",
  171. "options": {
  172. "1h": "1 час",
  173. "5m": "5 минут",
  174. "inherit": "Не переопределять (следовать клиенту)"
  175. }
  176. },
  177. "swapCacheTtlBilling": {
  178. "label": "Инверсия тарификации Cache TTL",
  179. "desc": "Инвертировать TTL кэша на входе: токены 1h обрабатываются как 5 мин и наоборот. Влияет на бейдж, стоимость и все сохраняемые метрики."
  180. },
  181. "codexOverrides": {
  182. "title": "Переопределение параметров Codex",
  183. "desc": "Переопределение параметров запросов Codex (Responses API) на уровне провайдера",
  184. "parallelToolCalls": {
  185. "help": "Управляет тем, разрешены ли параллельные вызовы инструментов. \"inherit\" следует запросу клиента. Отключение может снизить параллельность вызовов инструментов.",
  186. "label": "Переопределение параллельных tool calls",
  187. "options": {
  188. "false": "Принудительно отключить",
  189. "inherit": "Не переопределять (следовать клиенту)",
  190. "true": "Принудительно включить"
  191. }
  192. },
  193. "reasoningEffort": {
  194. "help": "Управляет тем, сколько усилий модель тратит на рассуждения перед ответом. \"inherit\" следует запросу клиента, остальные значения принудительно задают reasoning.effort. Примечание: \"none\" поддерживается только моделями GPT-5.1, а \"xhigh\" — только GPT-5.1-Codex-Max. Неподдерживаемые значения приведут к ошибке у апстрима.",
  195. "label": "Переопределение уровня рассуждений",
  196. "options": {
  197. "high": "high",
  198. "inherit": "Не переопределять (следовать клиенту)",
  199. "low": "low",
  200. "medium": "medium (по умолчанию)",
  201. "minimal": "minimal",
  202. "none": "none (только GPT-5.1)",
  203. "xhigh": "xhigh (только GPT-5.1-Codex-Max)"
  204. }
  205. },
  206. "reasoningSummary": {
  207. "help": "Управляет тем, возвращает ли Responses API сводку рассуждений. auto — кратко, detailed — подробнее. \"inherit\" следует запросу клиента.",
  208. "label": "Переопределение сводки рассуждений",
  209. "options": {
  210. "auto": "auto",
  211. "detailed": "detailed",
  212. "inherit": "Не переопределять (следовать клиенту)"
  213. }
  214. },
  215. "textVerbosity": {
  216. "help": "Управляет подробностью ответа. low — короче, high — подробнее. \"inherit\" следует запросу клиента.",
  217. "label": "Переопределение подробности текста",
  218. "options": {
  219. "high": "high",
  220. "inherit": "Не переопределять (следовать клиенту)",
  221. "low": "low",
  222. "medium": "medium (по умолчанию)"
  223. }
  224. }
  225. },
  226. "anthropicOverrides": {
  227. "maxTokens": {
  228. "label": "Переопределение Max Tokens",
  229. "help": "Переопределяет max_tokens в теле запроса. Диапазон: 1-64000. 'Наследовать' следует запросу клиента.",
  230. "options": {
  231. "inherit": "Без переопределения (следовать клиенту)",
  232. "custom": "Пользовательское"
  233. },
  234. "placeholder": "напр. 32000"
  235. },
  236. "thinkingBudget": {
  237. "label": "Переопределение бюджета размышлений",
  238. "help": "Переопределяет thinking.budget_tokens в теле запроса. Диапазон: 1024-32000. При установке принудительно включает thinking.type = 'enabled'. Если также включено адаптивное мышление и модель совпадает, адаптивное имеет приоритет.",
  239. "options": {
  240. "inherit": "Без переопределения (следовать клиенту)",
  241. "custom": "Пользовательское"
  242. },
  243. "placeholder": "напр. 10240",
  244. "maxOutButton": "Максимум (32000)"
  245. },
  246. "adaptiveThinking": {
  247. "label": "Адаптивное мышление",
  248. "help": "Включить режим адаптивного мышления. При включении и совпадении модели имеет приоритет над бюджетом размышлений. Несовпадающие модели используют переопределение бюджета.",
  249. "effort": {
  250. "label": "Уровень усилий",
  251. "help": "Управляет глубиной рассуждений. Выше = глубже.",
  252. "options": {
  253. "low": "Низкий",
  254. "medium": "Средний",
  255. "high": "Высокий (Рекомендуется)",
  256. "max": "Максимальный"
  257. }
  258. },
  259. "modelMatchMode": {
  260. "label": "Сопоставление моделей",
  261. "help": "Какие модели используют адаптивное мышление.",
  262. "options": {
  263. "all": "Все модели",
  264. "specific": "Только определённые модели"
  265. }
  266. },
  267. "models": {
  268. "label": "Целевые модели",
  269. "help": "Модели с адаптивным мышлением. Несовпадающие модели передаются без изменений.",
  270. "placeholder": "напр. claude-opus-4-6",
  271. "addButton": "Добавить модель"
  272. }
  273. }
  274. },
  275. "geminiOverrides": {
  276. "title": "Переопределение параметров Gemini",
  277. "desc": "Переопределение параметров запроса Gemini API на уровне провайдера",
  278. "googleSearch": {
  279. "label": "Google Search (веб-доступ)",
  280. "options": {
  281. "inherit": "Без переопределения (следовать клиенту)",
  282. "enabled": "Принудительно включено",
  283. "disabled": "Принудительно отключено"
  284. }
  285. }
  286. },
  287. "context1m": {
  288. "desc": "Настройка поддержки контекстного окна 1M. Применяется только к моделям Sonnet (claude-sonnet-4-5, claude-sonnet-4). При включении применяется многоуровневая тарификация.",
  289. "label": "Контекстное окно 1M",
  290. "options": {
  291. "disabled": "Отключено",
  292. "forceEnable": "Принудительно включить",
  293. "inherit": "Наследовать (следовать клиенту)"
  294. }
  295. },
  296. "modelRedirects": {
  297. "label": "Перенаправление моделей",
  298. "optional": "(необязательно)"
  299. },
  300. "modelWhitelist": {
  301. "allowAll": "✓ Разрешить все модели (рекомендуется)",
  302. "desc": "Ограничьте модели, которые может обслуживать провайдер. По умолчанию доступны все модели данного типа.",
  303. "label": "Разрешённые модели",
  304. "moreModels": "+{count} ещё",
  305. "optional": "(необязательно)",
  306. "selectedOnly": "Разрешены только выбранные {count} моделей. Другие модели не будут направляться к этому провайдеру.",
  307. "title": "Список разрешённых моделей"
  308. },
  309. "preserveClientIp": {
  310. "desc": "Передавать x-forwarded-for / x-real-ip в апстрим (может раскрыть реальный IP клиента)",
  311. "help": "По умолчанию выключено для приватности. Включайте только если апстриму нужен IP пользователя.",
  312. "label": "Пробрасывать IP клиента"
  313. },
  314. "providerType": {
  315. "desc": "(определяет политику выбора)",
  316. "label": "Тип провайдера",
  317. "placeholder": "Выберите тип провайдера"
  318. },
  319. "providerTypeDesc": "Выберите формат API провайдера.",
  320. "providerTypeDisabledNote": "Примечание: функции типа OpenAI Compatible находятся в разработке и пока недоступны",
  321. "scheduleParams": {
  322. "costMultiplier": {
  323. "desc": "Множитель при расчёте стоимости. Официальный=1.0, дешевле на 20%=0.8, дороже на 20%=1.2 (до 4 знаков после запятой)",
  324. "label": "Множитель стоимости",
  325. "placeholder": "1.0"
  326. },
  327. "group": {
  328. "desc": "Тег группы. Выберите из списка или введите новое имя и нажмите Enter для создания (макс. 50 символов). Только пользователи с соответствующим providerGroup могут использовать этого провайдера.",
  329. "label": "Группа провайдера",
  330. "placeholder": "напр. premium, economy"
  331. },
  332. "groupPriorities": {
  333. "label": "Приоритет по группам",
  334. "desc": "Переопределение глобального приоритета для определённых групп. Оставьте пустым для использования глобального приоритета выше.",
  335. "placeholder": "Использовать глобальный приоритет",
  336. "noGroups": "Сначала задайте тег группы для настройки приоритетов по группам"
  337. },
  338. "priority": {
  339. "desc": "Меньше — выше приоритет (0 — наивысший). Система выбирает только из провайдеров с максимальным приоритетом. Рекомендации: основной=0, резерв=1, аварийный=2",
  340. "label": "Приоритет",
  341. "placeholder": "0"
  342. },
  343. "title": "Параметры выбора",
  344. "weight": {
  345. "desc": "Взвешенное случайное распределение. В пределах одного приоритета больший вес увеличивает вероятность выбора. Пример 1:2:3 ≈ 16%:33%:50%",
  346. "label": "Вес",
  347. "placeholder": "1"
  348. }
  349. },
  350. "summary": {
  351. "models": "{count} моделей в белом списке",
  352. "none": "Не настроено",
  353. "redirects": "{count} правил перенаправления"
  354. },
  355. "title": "Маршрутизация"
  356. },
  357. "timeout": {
  358. "desc": "Установить время ожидания запроса, 0 означает отключение тайм-аута",
  359. "disableHint": "Установите 0 для отключения тайм-аута (только для сценариев отката канарейки, не рекомендуется)",
  360. "nonStreamingTotal": {
  361. "core": "true",
  362. "desc": "Полный тайм-аут непотоковой передачи, диапазон 60-1200 секунд, 0 для отключения (по умолчанию: без ограничений)",
  363. "label": "Полный тайм-аут непотоковой передачи (секунды)",
  364. "placeholder": "0"
  365. },
  366. "streamingFirstByte": {
  367. "core": "true",
  368. "desc": "Тайм-аут первого байта потоковой передачи, диапазон 1-180 секунд, 0 для отключения (по умолчанию: без ограничений)",
  369. "label": "Тайм-аут первого байта потока (секунды)",
  370. "placeholder": "0"
  371. },
  372. "streamingIdle": {
  373. "core": "true",
  374. "desc": "Тайм-аут простоя потоковой передачи, диапазон 60-600 секунд, 0 для отключения (по умолчанию: без ограничений)",
  375. "label": "Тайм-аут простоя потока (секунды)",
  376. "placeholder": "0"
  377. },
  378. "summary": "1 байт: {streaming}с | поток: {idle}с | не поток: {nonStreaming}с",
  379. "title": "Конфигурация тайм-аута"
  380. }
  381. }