provider-chain.json 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. {
  2. "circuit": {
  3. "closed": "Закрыт (Нормально)",
  4. "halfOpen": "Полуоткрыт (Тестирование)",
  5. "open": "Открыт (Сработал)",
  6. "unknown": "Неизвестно"
  7. },
  8. "errors": {
  9. "ENOTFOUND": "Не удалось разрешить DNS",
  10. "ECONNREFUSED": "Соединение отклонено",
  11. "ETIMEDOUT": "Тайм-аут соединения или чтения",
  12. "ECONNRESET": "Соединение сброшено",
  13. "EHOSTUNREACH": "Хост недоступен (проблема маршрутизации сети)",
  14. "ENETUNREACH": "Сеть недоступна (проблема локальной сетевой конфигурации)",
  15. "EPROTO": "Ошибка протокола (ошибка SSL/TLS рукопожатия)",
  16. "CLIENT_ABORT": "Клиент прервал запрос",
  17. "PROVIDER_TIMEOUT": "Тайм-аут ответа провайдера (высокая задержка первого байта)",
  18. "STREAMING_IDLE_TIMEOUT": "Тайм-аут простоя потоковой передачи (провайдер прекратил отправку данных)"
  19. },
  20. "summary": {
  21. "singleSuccess": "{total} провайдеров, {healthy} работоспособных → {provider} ✓",
  22. "sessionReuse": "Повторное использование сессии → {provider} ✓"
  23. },
  24. "description": {
  25. "noDecisionRecord": "Нет записей решений",
  26. "sessionReuse": "Повторное использование сессии - Выбор провайдера",
  27. "sessionId": "ID сессии: {id}",
  28. "unknown": "Неизвестно",
  29. "reuseProvider": "Повторно используемый провайдер: {provider}",
  30. "initialSelection": "Первоначальный выбор: {provider}",
  31. "candidateCount": "{count} провайдеров-кандидатов",
  32. "groupFiltered": "Группа {group} отфильтрована до {count}",
  33. "healthyCount": "{count} после проверки состояния",
  34. "priority": "Приоритет {priority}",
  35. "candidate": "{name}({probability}%)",
  36. "requestChain": "Цепочка запросов:",
  37. "systemError": "Системная ошибка",
  38. "resourceNotFound": "Ресурс не найден (404)",
  39. "concurrentLimit": "Лимит параллельных запросов",
  40. "http2Fallback": "Откат HTTP/2",
  41. "clientError": "Ошибка клиента",
  42. "endpointPoolExhausted": "Пул конечных точек исчерпан",
  43. "vendorTypeAllTimeout": "Тайм-аут всех конечных точек"
  44. },
  45. "reasons": {
  46. "request_success": "Успешно",
  47. "retry_success": "Повтор успешен",
  48. "retry_failed": "Повтор не удался",
  49. "system_error": "Системная ошибка",
  50. "resource_not_found": "Ресурс не найден (404)",
  51. "client_error_non_retryable": "Ошибка клиента",
  52. "concurrent_limit_failed": "Лимит параллельных запросов",
  53. "http2_fallback": "Откат HTTP/2",
  54. "session_reuse": "Повторное использование сессии",
  55. "initial_selection": "Первоначальный выбор",
  56. "endpoint_pool_exhausted": "Пул конечных точек исчерпан",
  57. "vendor_type_all_timeout": "Тайм-аут всех конечных точек типа поставщика"
  58. },
  59. "filterReasons": {
  60. "rate_limited": "Ограничение скорости",
  61. "circuit_open": "Автомат открыт",
  62. "disabled": "Отключен",
  63. "excluded": "Исключен",
  64. "format_type_mismatch": "Несоответствие формата",
  65. "type_mismatch": "Несоответствие типа",
  66. "model_not_allowed": "Модель не разрешена",
  67. "context_1m_disabled": "1M контекст отключен",
  68. "model_not_supported": "Модель не поддерживается",
  69. "group_mismatch": "Несоответствие группы",
  70. "health_check_failed": "Проверка состояния не пройдена",
  71. "endpoint_circuit_open": "Автомат конечной точки открыт",
  72. "endpoint_disabled": "Эндпоинт отключен"
  73. },
  74. "filterDetails": {
  75. "vendor_type_circuit_open": "Временное размыкание типа поставщика",
  76. "circuit_open": "Размыкатель открыт",
  77. "circuit_half_open": "Размыкатель полуоткрыт",
  78. "rate_limited": "Ограничение скорости"
  79. },
  80. "details": {
  81. "selectionMethod": "Метод выбора",
  82. "attemptNumber": "Номер попытки",
  83. "endpoint": "Конечная точка",
  84. "config": "Конфигурация",
  85. "priority": "Приоритет",
  86. "weight": "Вес",
  87. "costMultiplier": "Множитель стоимости",
  88. "groupTag": "Тег группы",
  89. "circuitBreaker": "Автомат защиты",
  90. "circuitDisabled": "Отключен",
  91. "failures": "ошибок",
  92. "modelRedirect": "Перенаправление модели",
  93. "error": "Ошибка",
  94. "errorDetails": "Детали ошибки",
  95. "decisionContext": "Контекст решения",
  96. "beforeHealthCheck": "До проверки состояния",
  97. "afterHealthCheck": "После проверки состояния",
  98. "filteredProviders": "Отфильтрованные провайдеры",
  99. "priorityLevels": "Уровни приоритета",
  100. "candidates": "Кандидаты провайдеров"
  101. },
  102. "technicalTimeline": "Техническая временная шкала",
  103. "timeline": {
  104. "sessionReuse": "Повторное использование сессии",
  105. "sessionReuseSelection": "Повторное использование сессии - Выбор провайдера",
  106. "sessionReuseTitle": "Повторное использование сессии - Выбор провайдера",
  107. "sessionId": "ID сессии: {id}",
  108. "reuseProvider": "Повторно используемый провайдер: {provider}",
  109. "configuration": "Конфигурация",
  110. "priority": "Приоритет",
  111. "weight": "Вес",
  112. "cost": "Стоимость",
  113. "providerConfig": "Конфигурация провайдера: приоритет={priority} вес={weight} стоимость={cost}",
  114. "basedOnCache": "Повторное использование провайдера на основе кеша сессии (в течение 5 минут)",
  115. "sessionCache": "На основе кеша сессии (в течение 5 минут)",
  116. "waitingForResult": "Ожидание результата запроса...",
  117. "waiting": "Ожидание результата запроса...",
  118. "initialSelection": "Первоначальный выбор провайдера",
  119. "initialSelectionTitle": "Первоначальный выбор провайдера",
  120. "systemStatus": "Состояние системы",
  121. "totalProviders": "Всего провайдеров: {count}",
  122. "enabledProviders": "Включено типа {type}: {count}",
  123. "type": "Тип",
  124. "userGroup": "Группа пользователей {group}: {count}",
  125. "healthCheck": "Прошли проверку состояния: {count}",
  126. "filtered": "Отфильтровано",
  127. "priorityLevel": "Приоритет",
  128. "priorityCandidates": "Кандидаты приоритета {priority} ({count})",
  129. "candidates": "Кандидаты",
  130. "candidateInfo": " • {name}: вес={weight} стоимость={cost} вероятность={probability}%",
  131. "selected": "✓ Выбрано: {provider}",
  132. "requestFailed": "Запрос не выполнен (Попытка {attempt})",
  133. "resourceNotFoundFailed": "Ресурс не найден (404) (Попытка {attempt})",
  134. "attemptNumber": "Попытка {number}",
  135. "firstAttempt": "Первая попытка",
  136. "nthAttempt": "Попытка {attempt}",
  137. "provider": "Провайдер: {provider}",
  138. "statusCode": "Код состояния: {code}",
  139. "statusCodeInferred": "Код состояния (выведено): {code}",
  140. "error": "Ошибка: {error}",
  141. "requestDuration": "Длительность запроса: {duration}мс",
  142. "requestDurationSeconds": "Длительность запроса: {duration}с",
  143. "circuitStatus": "Состояние автомата",
  144. "current": "Текущее",
  145. "circuitCurrent": "Текущее состояние: {state}",
  146. "failureCount": "Количество сбоев: {current}/{threshold}",
  147. "untilBreak": "До срабатывания",
  148. "circuitRemaining": "{remaining} попыток до срабатывания автомата",
  149. "remaining": "Осталось попыток: {count}",
  150. "status": "Состояние",
  151. "alreadyBroken": "Уже сработал",
  152. "circuitTriggered": "Предупреждение: Автомат защиты сработал",
  153. "circuitDisabled": "Автомат защиты отключен",
  154. "errorDetails": "Детали ошибки",
  155. "systemError": "Системная ошибка",
  156. "systemErrorFailed": "Системная ошибка (Попытка {attempt})",
  157. "errorType": "Тип ошибки: Системная ошибка",
  158. "errorName": "Ошибка",
  159. "errorCode": "Код ошибки: {code}",
  160. "errorSyscall": "Системный вызов: {syscall}",
  161. "errorMeaning": "Значение: {meaning}",
  162. "meaning": "Значение",
  163. "notCountedInCircuit": "Эта ошибка не учитывается в автомате защиты провайдера",
  164. "systemErrorNote": "Примечание: Эта ошибка не учитывается в автомате защиты провайдера",
  165. "resourceNotFoundNote": "Примечание: Эта ошибка не учитывается в автомате защиты; после исчерпания повторов произойдёт переключение.",
  166. "reselection": "Повторный выбор провайдера",
  167. "reselect": "Повторный выбор провайдера",
  168. "excluded": "Исключено: {providers}",
  169. "remainingCandidates": "Оставшиеся кандидаты: {count}",
  170. "requestSuccess": "{label} Запрос выполнен",
  171. "requestSuccessAttempt": "{attempt} Запрос выполнен",
  172. "requestOk": "OK",
  173. "successStatus": "Состояние: {code} OK",
  174. "requestCompleted": "Запрос успешно выполнен",
  175. "completed": "Запрос успешно выполнен",
  176. "concurrentLimitFailed": "Лимит параллельных запросов",
  177. "attemptFailed": "Попытка не удалась (Попытка {attempt})",
  178. "concurrentLimit": "Лимит параллельных запросов",
  179. "concurrentLimitInfo": "Текущих параллельных: {current}/{limit}",
  180. "sessions": "Сессии",
  181. "withPriorityWeight": "(приоритет={priority} вес={weight})",
  182. "unknown": "Неизвестно",
  183. "noDecisionRecord": "Нет записей решений",
  184. "modelRedirect": "Перенаправление модели",
  185. "modelRedirectFrom": " Запрошенная модель: {model}",
  186. "modelRedirectTo": " Перенаправлено на: {model}",
  187. "modelRedirectBilling": " Модель для расчета: {model}",
  188. "http2Fallback": "Откат протокола HTTP/2",
  189. "http2ErrorType": "Тип ошибки HTTP/2: {type}",
  190. "http2FallbackNote": "Прозрачный откат на HTTP/1.1, не учитывается в автомате защиты",
  191. "requestDetails": "Детали запроса (для отладки)",
  192. "requestMethod": "Метод",
  193. "requestUrl": "URL",
  194. "requestHeaders": "Заголовки",
  195. "requestBody": "Тело",
  196. "requestBodyTruncated": "(обрезано)",
  197. "clientErrorNonRetryable": "Ошибка клиента (попытка {attempt}, без повторов)",
  198. "matchedRule": "Совпавшее правило ошибки",
  199. "ruleId": "ID правила: {id}",
  200. "ruleCategory": "Категория: {category}",
  201. "rulePattern": "Шаблон: {pattern}",
  202. "ruleMatchType": "Тип совпадения: {matchType}",
  203. "ruleDescription": "Описание: {description}",
  204. "ruleHasOverride": "Переопределения: response={response}, statusCode={statusCode}",
  205. "clientErrorNote": "Эта ошибка вызвана вводом клиента, не повторяется и не учитывается в автомате защиты.",
  206. "endpointPoolExhausted": "Пул конечных точек исчерпан (все конечные точки недоступны)",
  207. "endpointStats": "Статистика фильтрации конечных точек",
  208. "endpointStatsTotal": "Всего конечных точек: {count}",
  209. "endpointStatsEnabled": "Включено конечных точек: {count}",
  210. "endpointStatsCircuitOpen": "Эндпоинтов с открытым автоматом: {count}",
  211. "endpointStatsAvailable": "Доступных конечных точек: {count}",
  212. "strictBlockNoEndpoints": "Строгий режим: нет доступных кандидатов конечных точек, провайдер пропущен без отката",
  213. "strictBlockSelectorError": "Строгий режим: ошибка селектора конечных точек, провайдер пропущен без отката",
  214. "vendorTypeAllTimeout": "Тайм-аут всех конечных точек типа поставщика (524)",
  215. "vendorTypeAllTimeoutNote": "Все конечные точки этого типа поставщика превысили тайм-аут. Активирован размыкатель типа поставщика."
  216. }
  217. }