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

Автоматический выключатель и Failover

Claudex включает встроенный автоматический выключатель для каждого профиля провайдера с автоматическим переключением на резервных провайдеров при обнаружении сбоев.

success
┌──────────────┐
│ │
▼ failure │
Closed ────────► Open
▲ │
│ timeout │
│ expired ▼
└─────────── HalfOpen
failure → back to Open
СостояниеПоведение
ClosedНормальная работа. Запросы проходят. Сбои подсчитываются.
OpenЗапросы блокируются. Активируется переключение на резервных провайдеров.
HalfOpenПосле истечения таймаута восстановления пропускается один пробный запрос. Успех → Closed; Сбой → обратно в Open.
ПараметрЗначение
Порог сбоев3 последовательных сбоя
Таймаут восстановления30 секунд

Определите резервных провайдеров в вашем профиле для включения автоматического переключения:

[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
default_model = "grok-3-beta"
backup_providers = ["deepseek", "chatgpt"] # цепочка failover

Когда grok даёт сбой 3 раза подряд:

  1. Автоматический выключатель открывается для grok
  2. Запрос повторяется с deepseek
  3. Если deepseek тоже даёт сбой, используется chatgpt
  4. Каждый резервный провайдер имеет собственный независимый автоматический выключатель

Для OAuth-профилей HTTP 401 ответы получают специальную обработку:

  1. Прокси инвалидирует текущий OAuth-токен
  2. Пытается загрузить свежий токен из цепочки учётных данных
  3. Повторяет запрос с новым токеном
  4. Считает как сбой автоматического выключателя только если повторный запрос тоже неуспешен

Это предотвращает срабатывание ненужных failover из-за временного истечения токена.

Фоновая проверка работоспособности выполняется каждые ~30 секунд, отправляя лёгкие пробные запросы всем включённым профилям. Статус работоспособности отображается в TUI-панели мониторинга с цветовой кодировкой:

  • Зелёный: работает нормально
  • Жёлтый: ухудшение (недавние сбои)
  • Красный: автоматический выключатель открыт