Решение · боты и AI-функции
Эталонный набор для AI-функций: модель и промпт не меняются вслепую
AI-фичу легко сломать сменой модели или правкой промпта — и узнать об этом от пользователей. Решение — эталонный набор размеченных примеров и прогон, который перед каждым изменением считает precision, recall, задержку и стоимость. Ухудшились метрики — изменение не выходит.
Как это выглядит
Макеты на демо-данных, без реальных данных
🧪Сравнение моделей
| Модель | Фраз | Precision / Recall | Задержка | Стоимость |
|---|---|---|---|---|
| gpt-4o-mini | 60 | 1,0 / 1,0 | 764 мс | $0,06 |
| gpt-5.2 | 63 | 1,0 / 1,0 | 1 203 мс | $0,063 |
Коротко
- В проде
- В собственном продукте Bruno
- Подходит
- Любым AI-функциям: классификация, извлечение, поиск
- Нужно
- Несколько десятков размеченных примеров из вашей реальной работы
Результат у клиента
63
размеченные фразы в наборе Bruno: 27 обещаний и 36 «не обещаний»
2
модели сравнены на одном наборе — по качеству, задержке и цене
Оценка для вашей компании
≈1–2 ч
ручной проверки экономится на каждом изменении модели или промпта
Допущение: 60+ примеров × 1–2 минуты на ручную проверку каждого (наше допущение)
Это расчёт, а не обещание: подставьте свои объёмы — и цифра изменится.
Как было
- После смены модели «вроде работает» — пока пользователь не наткнётся на ошибку.
- Непонятно, стала ли новая версия промпта лучше или просто другой.
- Дорогая модель выбирается «на всякий случай», хотя дешёвая справляется не хуже.
Что построено
Набор из реальной работы
Примеры собираются из настоящих данных и размечаются: что считать правильным ответом, а что нет. В наборе есть и отрицательные примеры — то, на что функция срабатывать не должна.
Прогон и метрики
Скрипт прогоняет весь набор и считает precision, recall, F1, среднюю задержку и стоимость прогона.
Порог для выпуска
Изменение, которое ухудшает метрики, не выходит. Результаты прогонов сохраняются — видно, как качество менялось со временем.
Стек
- TypeScript
- OpenAI
- JSON-фикстуры
Где это работает
Вопросы
Разве 1,0 на наборе — не идеальная точность?
Нет: это результат на небольшом наборе, и мы используем его как порог, а не как обещание. Его задача — поймать регрессию до пользователей.
Сколько нужно примеров?
Для старта — несколько десятков из вашей реальной работы, включая сложные и пограничные случаи. Набор растёт вместе с найденными ошибками.