Каждый второй стартап сейчас где-то в середине разговора произносит: «и вот тут мы добавим ИИ». Звучит хорошо. Потом начинается спринт, в котором ИИ «добавляется» три месяца, а в продакшн так и не уходит. Либо уходит, но с ключом прямо в мобильном приложении и без обработки ошибок.
Я не хочу пугать. Встроить рабочую ИИ-функцию в продукт вполне реально за разумное время, если идти в правильном порядке. Проблема обычно не в технологии, а в том, что команда берётся за слишком большой кусок сразу или пропускает скучные, но обязательные шаги.
Ниже — конкретный маршрут: от «мы решили добавить ИИ» до «функция работает у реальных пользователей». Без магии, без обещаний, что модель заменит вашу бизнес-логику. Она не заменит. Зато поможет там, где это уместно.
Шаг 1. Выбрать одну узкую задачу
Главная ловушка первого спринта — формулировка «ИИ для всего». Умный поиск, автоответы, генерация контента, аналитика, персонализация — всё это сразу. В итоге ничего не доходит до пользователя.
Выберите одну конкретную задачу, у которой есть чёткий вход и выход. Не «улучшить поддержку», а «автоматически классифицировать входящий тикет по одной из восьми категорий». Не «генерировать контент», а «по карточке товара написать описание до 150 слов в заданном тоне».
Хорошая задача для первого запуска: она решаема без контекста всей системы, результат можно оценить человеком за секунду, и если модель ошибётся, ущерб минимален. Начните с этого, выкатите, посмотрите на реальное поведение — потом расширяйте.
Шаг 2. Собрать 20-30 реальных примеров
Прежде чем выбирать модель и писать промпт, соберите данные из реальной жизни вашего продукта. Двадцать-тридцать входных примеров с ожидаемыми ответами — это минимальный набор, без которого вы не поймёте, работает ли решение.
Это не «тестовый датасет» в академическом смысле. Это просто: вот реальный тикет от пользователя — правильная категория «баг с оплатой». Вот карточка товара — вот описание, которое одобрил бы редактор.
Зачем это нужно прямо сейчас, а не потом? Потому что без примеров вы будете оценивать модель интуитивно, а интуиция здесь обманывает. Модель может хорошо отвечать на красивые демо-запросы и плохо справляться с грязными, реальными данными вашего продукта.
Шаг 3. Выбрать модель под задачу и проверить её на своём наборе
Модели сильно отличаются по характеру: одни лучше рассуждают и следуют инструкциям, другие быстрее и экономичнее по расходу баланса, третьи хороши в коде или структурированном выводе.
Грубое правило: для рутинных задач с чётким форматом (классификация, краткое резюме, извлечение полей) берите лёгкие модели — Gemini Flash, DeepSeek, GPT-4o-mini. Они тратят баланс заметно меньше, а качество на простых задачах часто неотличимо от тяжёлых. Для сложных рассуждений, длинного контекста, генерации кода — Claude Sonnet, GPT-5.5 и выше. Claude Opus и GPT-5.6 — это тяжёлая артиллерия, которая тратит баланс заметно быстрее; их имеет смысл подключать там, где качество критично и задача это оправдывает.
Прогоните две-три модели на своих 20-30 примерах. Посчитайте процент правильных ответов. Выберите ту, которая даёт приемлемое качество при разумном расходе. Это займёт несколько часов, но сэкономит недели разочарований в продакшне.
Для подключения к разным моделям через единый интерфейс удобен OpenAI-совместимый шлюз. NeuroZal API даёт доступ к 46 моделям — OpenAI, Anthropic, Google, xAI, DeepSeek и другим — через один base_url: https://api.neurozal.ru/v1. Один ключ, один SDK, весь каталог.
Важно: NeuroZal API — это ключ для программ, редакторов кода, ботов и автоматизации. Это не аккаунт ChatGPT с логином и паролем, он не подключается в мобильном приложении ChatGPT и не заменяет подписку Plus. Модель выбирает разработчик: один ключ открывает весь каталог.
Шаг 4. Завернуть вызов в свой бэкенд. Ключ — не в клиенте
Это самый частый и самый болезненный промах. Разработчик встраивает вызов к API прямо в мобильное приложение или фронтенд, чтобы «пока просто проверить». Потом это уходит в продакшн. Ключ утекает в логи, в декомпилированный APK, в сниффер трафика — нужное подчеркнуть.
Правило простое: API-ключ живёт только на сервере. Клиент обращается к вашему бэкенду, бэкенд — к модели. Точка.
Минимальная схема:
Клиент → ваш API-эндпоинт → NeuroZal API → модель → ответ обратно
На вашем эндпоинте вы контролируете: кто может делать запросы, сколько запросов в единицу времени, что именно уходит в промпт, что возвращается пользователю. Без этого слоя вы не контролируете ничего.
Промпт тоже держите на бэкенде. Если он зашит в мобильное приложение или фронтенд, любое изменение — это релиз. Это медленно и неудобно. На бэкенде промпт можно поменять без деплоя клиента.
Шаг 5. Логировать запросы, токены и ошибки
Без логов вы слепы. Вы не знаете, какие запросы приходят, какие ответы даёт модель, где она ошибается, сколько тратится токенов и на что.
Минимальный набор для лога каждого запроса:
- идентификатор пользователя или сессии
- использованная модель
- количество входных и выходных токенов
- время ответа
- код ошибки, если она была
- (опционально) сам запрос и ответ, если это не противоречит политике конфиденциальности
NeuroZal предоставляет журнал запросов в личном кабинете (https://api.neurozal.ru/panel) — там видно расход по каждому ключу. Но собственные логи на стороне приложения всё равно нужны: только вы знаете, какой запрос принадлежит какому пользователю и какому сценарию.
Логи — это также способ поймать деградацию качества. Если модель начала отвечать хуже, вы узнаете об этом из логов, а не из жалоб пользователей.
Шаг 6. Предусмотреть деградацию
Модель может быть недоступна. Может отвечать медленно. Может вернуть ответ, который не проходит вашу валидацию. Что в этот момент видит пользователь?
Если ответа нет — покажите понятное сообщение и предложите альтернативу. Если это классификация тикета — отправьте его в общую очередь, пусть человек разберёт вручную. Если это генерация описания — дайте пользователю написать самому.
Таймауты обязательны. Если вы не поставили таймаут на запрос к модели, один зависший запрос может держать соединение открытым бесконечно. Устанавливайте разумный таймаут (обычно 15-30 секунд в зависимости от задачи) и обрабатывайте его явно.
Валидация ответа тоже нужна. Если вы ожидаете JSON с определёнными полями — проверьте, что он пришёл именно таким. Если ожидаете категорию из списка — проверьте, что модель вернула одну из допустимых категорий, а не что-то своё. Доверять ответу модели без проверки — это ещё одни грабли, о которых ниже.
Шаг 7. Выкатить на часть пользователей
Не запускайте ИИ-функцию сразу на всю аудиторию. Начните с малой доли — 5-10% пользователей или отдельный сегмент. Это даст реальные данные без риска испортить опыт всей базы.
Смотрите на метрики: как часто функция используется, какой процент ответов пользователи принимают без правок, сколько жалоб приходит. Сравнивайте с контрольной группой, если это возможно.
После стабилизации расширяйте аудиторию. Если что-то пошло не так — откат на малую долю или полное отключение должны занимать минуты, не часы.
Таблица: этапы запуска ИИ-функции
| Этап | Что делаем | Как понять, что этап пройден |
|---|---|---|
| 1. Задача | Формулируем одну конкретную функцию с чётким входом и выходом | Задачу можно описать одним предложением, результат оценивает человек за секунду |
| 2. Примеры | Собираем 20-30 реальных пар вход/ожидаемый ответ | Набор собран, ожидаемые ответы согласованы с командой |
| 3. Модель | Тестируем 2-3 модели на своём наборе, считаем точность | Выбрана модель с приемлемым качеством, задокументирован выбор |
| 4. Бэкенд | Вызов к API идёт только через свой сервер, ключ не в клиенте | Ключ нигде не фигурирует в клиентском коде, промпт на бэкенде |
| 5. Логи | Логируем запросы, токены, ошибки | Есть дашборд или хотя бы файл логов с нужными полями |
| 6. Деградация | Есть таймауты, валидация ответа, фолбэк для пользователя | Протестированы сценарии: таймаут, невалидный ответ, ошибка API |
| 7. Выкатка | Запуск на 5-10% аудитории с мониторингом метрик | Функция работает у части пользователей, метрики собираются |
Честные грабли: где обычно ломается
Ключ уехал в мобильное приложение
Самый распространённый промах. «Пока для теста» превращается в продакшн. Ключ можно извлечь из APK или перехватить в трафике. Последствия: чужие запросы за ваш счёт, потеря контроля над расходом. Решение одно — только бэкенд.
Нет обработки таймаутов
Модели иногда отвечают медленно. Без таймаута запрос висит, пользователь ждёт, соединение не освобождается. Поставьте явный таймаут и обработайте его как отдельный сценарий ошибки.
Нет лимитов на пользователя
Один активный пользователь может сгенерировать сотни запросов за минуту — случайно или намеренно. Без rate limiting вы не контролируете расход. Добавьте ограничение на количество запросов в единицу времени на уровне вашего бэкенда.
Промпт зашит в код и правится только релизом
Промпт — это живой инструмент. Вы будете его менять часто, особенно в первые недели после запуска. Если он в коде клиента, каждое изменение — это полноценный релиз с ревью, тестированием и деплоем. Держите промпты в конфигурации или базе данных на бэкенде.
Доверие к ответам модели без валидации
Модель может вернуть что угодно. Если вы ожидаете структурированный ответ — JSON, список, категорию из перечня — всегда проверяйте его перед использованием. Передавать непроверенный ответ модели напрямую в бизнес-логику или показывать пользователю без фильтрации — это путь к неприятным сюрпризам.
Итог: минимальный набор для запуска
Вот что нужно, чтобы выйти в продакшн с ИИ-функцией, не наступив на главные грабли:
- Одна конкретная задача с чётким форматом входа и выхода
- 20-30 реальных примеров с ожидаемыми ответами
- Выбранная и протестированная модель
- Вызов к API только через свой бэкенд, ключ только на сервере
- Промпт в конфигурации, не в коде клиента
- Логирование запросов, токенов и ошибок
- Таймауты, валидация ответа, фолбэк для пользователя
- Запуск на малой доле аудитории
Что отложить на потом: файнтюнинг, RAG, сложные агентные цепочки, мультимодальность — всё это имеет смысл после того, как базовая функция стабильно работает и даёт ценность пользователям.
ИИ не заменит бизнес-логику вашего продукта. Но там, где задача хорошо определена, он может сделать её быстрее и дешевле, чем любая другая автоматизация. Ключ — начать с малого и дойти до продакшна, а не застрять в экспериментах.
Если вы на этапе выбора API-шлюза, посмотрите на NeuroZal API: единый ключ, 46 моделей, OpenAI-совместимый интерфейс. Личный кабинет и документация — на https://api.neurozal.ru/panel и https://neurozal.ru/docs. Вопросы — на support@neurozal.ru.