Бенчмарк цены и задержки LLM-шлюзов — запустите сами

«Быстро и надёжно» — утверждение; число, которое можно перезапустить, — доказательство. Вот как измерить связность, p50/p95 задержку и цену за 1M токенов у OpenAI-совместимых шлюзов — воспроизводимо и безопасно.

Обновлено 2026-09-15

Что измеряется#

Доступность

Доля ответов HTTP 200 за N повторов — процент успеха.

Задержка

p50 / p95 / среднее время ответа для маленького фиксированного запроса.

Цена

$/1M входных и выходных токенов из файла цен, который вы заполняете с официальной страницы.

Почему это честно (методология)#

  • Очищено по замыслу. В записи только: id модели, флаг ok, HTTP-статус, задержка (мс), число токенов и грубая категория ошибки. Ключ, промпт и текст ответа не печатаются и не хранятся.
  • Воспроизводимо. Любой может перезапустить против своего аккаунта и моделей.
  • Снимок, а не приговор. Крошечный запрос в один момент — не суждение об общем качестве или долгой надёжности.
  • Честно по устройству. Добавьте любой другой OpenAI-совместимый шлюз и сравните бок о бок.

Почему на этой странице нет leaderboard

Опубликованная таблица «иллюстративных» чисел — это то, как «пример» через три перепоста тихо становится «измерением». Мы не проводили замер, который были бы готовы защищать на ваших моделях, в вашем регионе и на вашем аккаунте, поэтому страница отдаёт вам метод. Инструмент открыт — числа должны быть вашими.

Как построить сравнение, которое что-то значит#

Большинство сравнений шлюзов недействительны ещё до первого запроса, потому что двум сторонам дали разную работу. Сделайте правильно эти пять вещей — и результат станет тем, о чём есть смысл спорить:

  • Один и тот же промпт и параметры. Идентичный текст, одинаковые max_tokens, temperature=0, одинаковый stream. Более длинный промпт на одной стороне завышает и её задержку, и её стоимость.
  • Одна и та же модель, а не одно и то же имя модели. Алиасы у разных провайдеров указывают на разные сборки. Фиксируйте точные ID из списка моделей каждого провайдера и записывайте их в результаты.
  • Чередуйте, а не гоняйте пачками. Запускайте A, B, A, B…, а не пятьдесят раз A и потом пятьдесят раз B. Пачечный прогон измеряет время суток и состояние апстрима, а приписывает это провайдеру.
  • Достаточно повторов для того процентиля, который вы называете. Пять замеров не дают осмысленный p95. Если точек мало — публикуйте медиану и разброс и не выдавайте это за метрику хвоста.
  • Показывайте разброс, а не только середину. Провайдер с хорошей медианой и ужасным p99 в проде ощущается ненадёжным, каким бы приличным ни выглядело среднее.

Ловушки, которые тихо обесценивают прогон#

ЛовушкаЧто она делает с числамиКак её контролировать
Холодный стартПервый вызов по простаивающему маршруту оплачивает DNS, TLS и прогрев апстрима — нередко сотни миллисекунд, которые ничего не говорят о провайдере.Отправляйте прогревочный запрос на каждый эндпоинт или отбрасывайте первые N результатов — одинаково с обеих сторон.
Кеш промптаПовторно отправленный идентичный промпт может попасть в кеш апстрима и вернуться неправдоподобно быстро и дёшево, и второй прогон «докажет» ускорение, которого не будет ни на одной реальной нагрузке.Добавляйте nonce в промпт, когда нужны числа без кеша; фиксируйте промпт и прямо говорите об этом, когда нужны числа с кешем.
Ваша географияВы измеряете свой сетевой путь не меньше, чем провайдера. Результат из Франкфурта мало что говорит о том же провайдере из Сан-Паулу.Указывайте, откуда запускали, и повторяйте прогон из того региона, откуда реально идёт продакшен-трафик.
КонкурентностьПоследовательные запросы измеряют лучший случай. Лимиты, очереди и троттлинг проявляются только под параллельной нагрузкой — то есть в проде.Замеряйте дважды: последовательный проход для чистой базы и конкурентный — на вашем реальном пике.
Стриминг против полного ответаВремя до первого токена и время до последнего — разные метрики, и провайдер может выиграть одну, серьёзно проиграв другую.Выберите одну и подпишите её. Если пользователь смотрит, как появляются токены, честное число — TTFT; для пакетных задач — полное время ответа.
Разная длина ответаДаже при temperature=0 два провайдера выдают разную длину. Более длинный ответ — больше задержка и больше стоимость, и это читается как «медленный и дорогой провайдер».Записывайте токены из usage рядом с задержкой и нормируйте на миллисекунды на выходной токен, когда длины расходятся.
Ничего экзотического. Каждая из них уже порождала вирусный график «X в 3 раза быстрее Y», который разваливался при повторном прогоне.

Как запустить#

Каждая точка — один маленький POST /v1/chat/completions с фиксированным промптом, max_tokens=8, temperature=0, stream=false. Клонируйте репозиторий llm-gateway-benchmark и выполните:

bash
# обновить ПРИМЕРНЫЙ leaderboard (без ключа и расходов)
npm run sample

# реальный прогон (отправляет живые, возможно платные запросы)
export DAOXE_API_KEY="ваш_ключ"
export DAOXE_MODELS="id-1,id-2"
npm run measure && npm run aggregate

Стоимость и бюджет

Реальный прогон отправляет модели × повторы запросов (по умолчанию 5), каждый с лимитом 8 токенов. Сначала проверьте цену и баланс. Тестовый бюджет: уточняется.

Добавьте другой шлюз#

Подойдёт любой OpenAI-совместимый endpoint: укажите его /v1 base URL и его ID моделей и добавьте отдельную подписанную колонку. Честное сравнение — весь смысл, включая сравнение DaoXE с официальными API.

От утверждения к числу

Прогнав его, вы больше не обязаны верить чьему-либо маркетингу — включая наш. Совместите это с распознаванием подмены модели, чтобы проверять и целостность, а не только скорость.

Частые вопросы#

Бенчмарк видит мой ключ?

Нет. Он работает локально и не печатает и не хранит ключ, промпт или ответ модели — только очищенные метрики.

Можно тестировать не только DaoXE?

Да — он провайдер-независимый. Направьте его на официальный API и любой OpenAI-совместимый шлюз и сравните.

Почему на странице нет leaderboard?

Потому что таблица производительности, опубликованная вендором о самом себе, — это маркетинг, а не доказательство; а «иллюстративную» таблицу рано или поздно процитируют как измеренную. Отдаём метод и инструмент — числа должны получиться на ваших моделях, в вашем регионе и на вашем аккаунте.

Один прогон — это вердикт о качестве?

Нет — это снимок крошечного запроса. Перезапускайте по расписанию и совмещайте с пробами способностей.

Попробуйте DaoXE — и проверьте его сами

Один ключ для GPT, Claude, Gemini, DeepSeek и других. Направьте открытый бенчмарк на нас и сравните — не верьте на слово.