Что измеряется#
Доступность
Доля ответов 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 рядом с задержкой и нормируйте на миллисекунды на выходной токен, когда длины расходятся. |
Как запустить#
Каждая точка — один маленький POST /v1/chat/completions с фиксированным промптом, max_tokens=8, temperature=0, stream=false. Клонируйте репозиторий llm-gateway-benchmark и выполните:
# обновить ПРИМЕРНЫЙ 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 и других. Направьте открытый бенчмарк на нас и сравните — не верьте на слово.