LLMock: HTTP-сервер для мокинга, обеспечивающий детерминированное тестирование LLM между процессами

✍️ OpenClawRadar📅 Опубликовано: 14 марта 2026 г.🔗 Source
LLMock: HTTP-сервер для мокинга, обеспечивающий детерминированное тестирование LLM между процессами
Ad

LLMock — это мокинг-сервер, который перехватывает вызовы LLM API, работая как реальный HTTP-сервер на указанном порту, что позволяет проводить детерминированное тестирование в нескольких процессах без обращения к платным API.

Ad

Ключевые детали

Инструмент был обнаружен после того, как разработчик потратил $12 на запуск тестов Playwright против реальных API OpenAI. Проблема возникла при использовании MSW (Mock Service Worker), который патчит HTTP-модуль внутри процесса Node.js, вызывающего server.listen(), но оставляет отдельные процессы (например, агент на Python) полностью невидимыми для мокинга.

С LLMock вы указываете переменную окружения OPENAI_BASE_URL на мок-сервер из любого процесса, независимо от того, Node.js это, Python или любой другой язык:

const mock = new LLMock({ port: 5555 });
await mock.start();
process.env.OPENAI_BASE_URL = "http://localhost:5555/v1";

Фикстуры — это простые JSON-файлы, которые сопоставляются по подстрокам пользовательских сообщений или регулярным выражениям, устраняя шаблонный код обработчиков:

{
  "fixtures": [
    {
      "match": { "userMessage": "stock price of AAPL" },
      "response": { "content": "The current stock price of Apple Inc. (AAPL) is $150.25." }
    }
  ]
}

Ключевые особенности из источника:

  • Корректно использует фактический формат SSE OpenAI/Claude/Gemini (ошибки в типах событий незаметно ломают стриминг)
  • Полная поддержка вызовов инструментов — фреймворки агентов выполняют их как обычно
  • Предикатная маршрутизация для проверки состояния системного промпта или истории сообщений в мультиагентных потоках
  • Журнал запросов для проверки того, что было фактически вызвано, а не просто прошёл ли тест
  • Нет зависимостей

В итоге у разработчика получилось 9 вызовов LLM в 3 тестах Playwright, стоимостью $0 и с детерминированными результатами при каждом запуске.

📖 Читать полный источник:

Ad

👀 Смотрите также

Claude-Powered MCP Tool Генерирует Интерактивные HTML-Компоненты Без Инструментов Сборки
Инструменты

Claude-Powered MCP Tool Генерирует Интерактивные HTML-Компоненты Без Инструментов Сборки

Разработчик создал daub.dev — систему, в которой Claude управляет MCP-сервером для создания стилизованных, интерактивных HTML-компонентов пользовательского интерфейса из описаний на естественном языке без использования React, сборщиков или конвейеров сборки.

OpenClawRadar
Мастер Подсказок: Навык Claude для создания точных подсказок для ИИ-инструментов
Инструменты

Мастер Подсказок: Навык Claude для создания точных подсказок для ИИ-инструментов

Prompt-Master — это бесплатный навык Claude, который создаёт точные промпты для различных ИИ-инструментов, включая Cursor, Claude Code, GPT, Midjourney, Kling и Eleven Labs. Инструмент набрал более 600 звёзд на GitHub и обрабатывает более 4000 посещений.

OpenClawRadar
Инди-разработчик развернул полный сайт игровой студии через Claude Code, включая слой данных Steam API
Инструменты

Инди-разработчик развернул полный сайт игровой студии через Claude Code, включая слой данных Steam API

Инди-разработчик использовал Claude Code для создания и развертывания сайта студии без использования терминала, включая слой данных, который получает актуальную информацию из Steam API.

OpenClawRadar
nan-forget: Локальная память для ИИ-кодирования в одном файле SQLite
Инструменты

nan-forget: Локальная память для ИИ-кодирования в одном файле SQLite

nan-forget — это инструмент памяти для ИИ-агентов программирования, который хранит контекст в одном файле SQLite (~3 МБ) без фоновых служб. Он использует трёхэтапный конвейер извлечения данных и работает в Claude Code, Cursor и терминале через CLI.

OpenClawRadar