Запись архива

Почему у LLM-API до сих пор нет нормального тестового режима — вопрос, который задали на Hacker News

Разработчики жалуются, что для нагрузочного тестирования чат-ботов приходится тратить реальные токены или писать собственные моки. На Hacker News предлагают взять пример со Stripe и внедрить официальный тестовый эндпоинт.

Иллюстрация тестирования LLM API с помощью мок-сервера
Иллюстрация тестирования LLM API с помощью мок-сервера
Редакционная тематическая обложка COMRAD404

На Hacker News развернулось обсуждение проблемы, с которой сталкивается практически каждая команда, интегрирующая LLM в production: отсутствие официального тестового режима у API OpenAI и Anthropic.

Проблема и контекст

Пользователь masternoob описал ситуацию, возникшую при подготовке к стресс-тестированию чат-бота. Если нагрузочные тесты пропускать через реальные API OpenAI или Claude, проверка масштабируемости быстро превращается в тест расходования токенов. Логично, что для проверки собственных шлюзов, очередей, WebSocket-соединений, потоковой передачи, ретраев и обработки ошибок не нужно тратить реальные ресурсы.

Предложенное решение — замокать всё взаимодействие между бэкендом и LLM-провайдером. Однако, как отмечает автор, строить и поддерживать такой мок-сервер приходится каждой компании самостоятельно.

Почему это неудобно

Разработчик проводит параллель с Stripe, который много лет назад решил аналогичную проблему. Stripe предоставляет тестовый режим, тестовые данные и stripe-mock — API-совместимый сервер, который не совершает реальных транзакций. Для большинства тестов этого достаточно.

В случае с LLM-провайдерами ситуация иная. Ни OpenAI, ни Anthropic не предлагают публичного тестового эндпоинта, который бы:
– Возвращал детерминированные заглушки
– Поддерживал потоковые ответы
– Позволял настраивать задержки и время до первого токена
– Симулировал конфигурируемое количество токенов
– Отрабатывал вызовы инструментов
– Генерировал ошибки 429, 5xx и таймауты
– Имитировал повреждённые или прерванные потоки
– Симулировал ограничения скорости

Ирония, подмеченная автором, заключается в том, что и OpenAI, и Anthropic используют OpenAPI-совместимые мок-серверы в собственных SDK-тестах, но не предоставляют эту возможность клиентам.

Как решают проблему сейчас

В комментариях пользователи делятся своими подходами:
– Самодельные мок-серверы
– Общее HTTP-мокирование с помощью инструментов вроде WireMock
– Record/replay — запись реальных ответов и их воспроизведение в тестах
– Просто бюджетирование реальных API-вызовов

Каждый из этих подходов требует времени и ресурсов на разработку и поддержку.

Почему это важно

Для команд, запускающих LLM-приложения в масштабе, отсутствие тестового режима означает не только лишние расходы, но и замедление разработки. Интеграционное тестирование, нагрузочные тесты и проверка обработки ошибок становятся либо дорогими, либо сложными в реализации.

Что дальше

Обсуждение на Hacker News может привлечь внимание провайдеров. Пока же разработчикам приходится выбирать между неэффективными подходами и собственной инфраструктурой для тестирования. В идеале, как отмечают участники дискуссии, хотелось бы видеть официальное решение от OpenAI и Anthropic, аналогичное stripe-mock.

Источники
– Оригинальное обсуждение на Hacker News: https://news.ycombinator.com/item?id=49556909
– Комментарий модератора dang о недопустимости AI-сгенерированных комментариев на HN: https://news.ycombinator.com/item?id=49556909