Об этом проекте

zai-proxy — это реверс-прокси на Go, размещённый перед Z.AI Claude API, добавляющий функции наблюдаемости и надёжности, которых не хватает прямому доступу к API. Он состоит из двух основных компонентов: сервиса-прокси и панели мониторинга. Прокси слушает порт 8080, пересылает запросы к вышестоящему LLM API и экспортирует метрики Prometheus по адресу /metrics. Ключевые возможности включают отслеживание токенов (подсчёт входных и выходных токенов на запрос с использованием данных от API или оценки tiktoken в качестве запасного варианта), адаптивное ограничение скорости (отслеживание ответов 429 от вышестоящего сервиса с помощью EWMA-оценщика верхнего предела, который автоматически удерживает нагрузку чуть ниже лимита и периодически проверяет увеличение лимита), а также сквозную передачу SSE-потоков без буферизации. Поддерживаются blue/green и canary развёртывания через метку DEPLOYMENT_VARIANT для сравнения версий прокси или конфигураций моделей бок о бок. Панель мониторинга — это бэкенд на Go с фронтендом на React, который каждые 5 секунд опрашивает Prometheus-эндпоинт прокси, хранит снимки с двумя уровнями разрешения в ограниченных кольцевых буферах в памяти (5-секундное разрешение за 24 часа, 1-минутное за 7 дней) и передаёт обновления в браузер через SSE. Она отображает пропускную способность запросов, процентили задержки, общее использование токенов, частоту ошибок и панели сравнения по вариантам. Прокси предоставляет полный набор метрик Prometheus, включая количество запросов, гистограммы задержек, скорость токенов, частоту ошибок, время ожидания из-за лимитов, попытки повторных запросов, загрузку воркеров и информацию о сборке, все с метками по модели и варианту развёртывания. Конфигурация задаётся через переменные окружения, охватывающие ключи API, целевые URL, параметры ограничения скорости, опрос квот и поведение повторных попыток.