Запрос «разработка с AI» в поиске звучит широко: чат-бот, распознавание документов, ассистент в CRM, генерация кода, классификация обращений. Разница между демо на конференции и продуктом, которым пользуются каждый день, — в данных, контроле качества, безопасности и экономике токенов. Модель — лишь один компонент в контуре, где не менее важны права доступа, журналирование, fallback и измеримые метрики.
В этой статье — как спроектировать AI-функцию так, чтобы она пережила первый месяц production-нагрузки без сюрпризов для бизнеса и инженеров.
Где AI даёт измеримый эффект
ИИ оправдан, когда есть повторяющаяся когнитивная работа с чёткими входами и критериями «достаточно хорошо»:
| Сценарий | Что автоматизируем | Метрика успеха |
|---|---|---|
| Документы и отчётность | Извлечение полей, сверка, черновики | Время на документ, % ручных правок |
| Поддержка и базы знаний | Ответы по регламентам (RAG) | Deflection, точность с цитатами |
| Операторские подсказки | Следующий шаг, подсказка по коду ошибки | Время решения тикета |
| Классификация | Маршрутизация заявок, теги | F1, стоимость ошибки класса |
| Черновики кода/текста | Ускорение первой версии | Время до merge при том же quality gate |
ИИ не заменяет архитектуру домена. Он сидит в слое поверх бизнес-логики: права доступа, журнал действий, лимиты, fallback на детерминированные правила. Если без модели процесс не определён — сначала описывают процесс, потом добавляют модель.
Когда AI не нужен: табличные отчёты по фиксированным правилам, жёсткие workflow с валидацией на уровне БД, задачи с нулевой терпимостью к ошибке без human-in-the-loop.
Архитектура AI-контура в продукте
Типовая схема production-контура:
[Клиент / API]
↓
[Orchestrator] — маршрутизация, лимиты, кэш
↓
[Retrieval] — поиск по индексу (RAG) [Tools] — CRM, БД, калькуляторы
↓ ↓
[LLM / ML model] ← контекст + политики
↓
[Post-processing] — валидация JSON, модерация, цитаты
↓
[Audit log] + [метрики]
Синхронный vs асинхронный путь
| Режим | Когда использовать | Ограничения |
|---|---|---|
| Синхронный (request–response) | Чат, короткие подсказки, < 10–15 с SLA | Таймауты, очередь на пике |
| Асинхронный (очередь + webhook) | Длинные документы, пакетная обработка | UX «задача в работе», idempotency |
| Streaming | Чат в UI | Обрыв соединения, частичная модерация |
Для критичных операций (изменение данных, финансы) — двухфазный сценарий: модель предлагает, человек или rule engine подтверждает.
RAG: когда и как
Retrieval-Augmented Generation нужен, когда ответ должен опираться на ваши документы, а не на обучение модели:
- Индексация: chunking (500–1500 токенов с перекрытием), метаданные (версия, отдел, дата).
- Поиск: гибрид dense + keyword (BM25) часто стабильнее чистого embedding.
- Сборка промпта: top-k фрагментов + инструкция «отвечай только по контексту».
- Цитирование: возврат source id в ответе — снижает галлюцинации и упрощает аудит.
Типичные ошибки RAG:
- Слишком крупные чанки — модель «теряет» деталь.
- Нет версионирования базы — ответы ссылаются на устаревший регламент.
- Индексация без ACL — пользователь видит чужие фрагменты при поиске.
- Один промпт на все типы вопросов — лучше маршрутизация intent → отдельный pipeline.
Агенты и tool use
Агент — это цикл: модель решает вызвать инструмент (API, SQL, поиск), получает результат, повторяет до финального ответа. Полезно для многошаговых задач («найди заказ → проверь статус → сформируй письмо»).
Ограничения для production:
- Allowlist инструментов — не произвольный shell.
- Лимит шагов (например, 5–10) против бесконечных циклов.
- Идемпотентные side-effect операции или обязательное подтверждение.
- Санитизация аргументов SQL и path traversal.
Агент без guardrails в демо выглядит магически; в prod без них — источник инцидентов.
Пошаговый процесс внедрения
Шаг 1. Задача и метрика
Не «внедрить GPT», а «снизить время обработки заявки с 12 до 6 минут при допустимой ошибке извлечения полей < 3%». Одна primary metric, одна guardrail metric (например, доля эскалаций на человека).
Шаг 2. Данные и границы
| Вопрос | Действие |
|---|---|
| Что можно в промпт? | Классификация PII, маскирование |
| Что нельзя выносить за периметр? | On-prem / VPC / private endpoint |
| Кто владелец золотого набора? | Юридическое и операционное согласование |
| Как обновляются знания? | Pipeline переиндексации по событию |
Для госсектора и НИИ часто нужен контур on-prem или выделенный inference — см. разработку для НИИ.
Шаг 3. Базовый pipeline без «магии»
Сначала — детерминированный baseline (правила, шаблоны, keyword). Затем A/B: модель должна бить baseline по метрике, а не только «казаться умнее» на трёх примерах.
Шаг 4. Оценка качества
- Набор эталонных кейсов (50–500+ для серьёзного пилота) с разметкой.
- Регрессия промптов и моделей в CI — сравнение F1, exact match, human rubric.
- Human review на пилоте: выборочный аудит 5–20% ответов.
- Online метрики: thumbs down, эскалации, время до исправления.
Таблица уровней зрелости оценки:
| Уровень | Практика |
|---|---|
| 0 | «Смотрим глазами на демо» |
| 1 | Фиксированный offline-набор |
| 2 | Регрессия в CI + shadow mode |
| 3 | Continuous eval на проде + алерты по дрейфу |
Шаг 5. Стоимость и производительность
Инференс — операционная статья расходов:
| Приём | Эффект |
|---|---|
| Кэш ответов на идентичные запросы | −30–70% вызовов на FAQ |
| Маленькая модель для классификации / routing | Дешёвый фильтр перед большой моделью |
| Сжатие контекста, summarization истории | Меньше input tokens |
| Batch API для офлайн-задач | Скидка провайдера, выше latency |
| Лимиты на пользователя / tenant | Защита от abuse и счетов |
Считайте стоимость на успешную операцию (например, на один обработанный документ), а не только цену за 1M токенов.
Шаг 6. Деградация и fallback
При недоступности модели или превышении latency:
- Ответ из кэша или шаблона.
- Упрощённый rule-based путь.
- Явное сообщение пользователю и постановка в очередь.
«Тишина» или пустой ответ хуже честного «сервис временно недоступен».
Безопасность, compliance и риски
Конфиденциальность: договор с провайдером о неиспользовании данных для обучения (где применимо), шифрование в transit/at rest, минимизация контекста.
Лицензии на данные: обучение и индексация только на данных, на которые есть права.
Воспроизводимость: temperature, seed (где есть), версия модели и промпта в audit log — иначе невозможно разобрать инцидент.
Зависимость от провайдера: абстракция над API, возможность смены модели с тем же контрактом ответа; для критичных систем — резервный провайдер или локальная модель.
Prompt injection: пользовательский ввод не должен переопределять system policy; разделение ролей в сообщениях, фильтры на выходе, запрет исполнения инструкций из retrieved-текста как команд.
Модерация: токсичность, утечка секретов в ответе — классификаторы или правила на post-processing.
Интеграция AI в процесс разработки ПО
Разработка с AI пересекается с скоростью разработки и вайбкодингом: модели ускоряют черновик кода, тестов и документации, но продукт всё равно требует ревью, тестов и архитектурных границ.
Практики для команды:
| Практика | Зачем |
|---|---|
| AI генерирует черновик, человек — merge | Ответственность за main branch |
| Запрет секретов в промптах в IDE | Утечки ключей в логи провайдера |
| Шаблоны промптов в репозитории с версиями | Как код, не как slack-сообщение |
| CI без внешних вызовов на каждый commit | Стабильность и стоимость |
Для промышленных сценариев связка с классическими системами разобрана в автоматизации с AI: предиктивное обслуживание и анализ телеметрии — отдельный контур с ML, не обязательно LLM.
Выбор модели: практические критерии
Нет универсальной «лучшей» модели — есть соответствие задаче и бюджету:
| Критерий | Вопросы |
|---|---|
| Качество на вашем домене | Benchmark на ваших данных, не общий MMLU |
| Context window | Влезает ли типичный RAG-пакет + история? |
| Latency p95 | Укладывается в SLA интерфейса? |
| Стоимость | Цена успешной операции при реальном mix запросов |
| Локализация | Русский, отраслевая терминология, форматы дат |
| Compliance | Регион данных, сертификация, on-prem |
Стратегия cascade: дешёвая модель отсекает простые запросы (FAQ, классификация), дорогая вызывается только для сложного reasoning. На практике 60–80% трафика часто закрывается первым уровнем без заметной потери качества.
При смене провайдера или версии модели — shadow period: новая модель отвечает параллельно, сравнение метрик на живом трафике без показа пользователю, затем переключение по feature flag.
Типичные ошибки при «разработке с AI»
- Демо = scope. Один красивый сценарий без edge cases и негативных тестов.
- Нет владельца качества. «Модель сама научится» — не стратегия.
- Промпт как единственная спецификация. Бизнес-правила дублируют в коде там, где нужна детерминированность.
- Игнор latency. 40 секунд на ответ убивают UX в операторском интерфейсе.
- Всё в один контекст. Длинная история чата без summarization — рост счёта и падение качества.
- Отсутствие kill switch. Feature flag на AI-функцию обязателен до full rollout.
Чеклист готовности к production
- Primary и guardrail метрики согласованы с заказчиком.
- Offline-набор и порог регрессии в CI.
- Audit log: user id, model version, prompt hash, sources (для RAG).
- Лимиты, rate limit, кэш, оценка месячного burn.
- Fallback при отказе модели протестирован.
- Политика PII и согласования с ИБ/юристами.
- Runbook: деградация качества, смена модели, откат промпта.
- Human-in-the-loop для необратимых действий.
Заключение
Разработка с AI — это инженерия продукта: постановка измеримой задачи, контур данных, оркестрация, оценка, экономика и безопасность. Модель даёт возможности, но устойчивость обеспечивают правила, метрики, fallback и дисциплина версионирования — те же принципы, что и в любой критичной системе. Начинайте с узкого сценария, который бьёт baseline по цифрам; масштабируйте только после того, как контур оценки и эксплуатации работает так же предсказуемо, как остальной backend.

