В 2018 году моя команда потратила четыре месяца на разработку системы маршрутизации входящих обращений в техподдержку. Задача звучала тривиально: прочитать текст письма, понять суть проблемы и назначить тикет на нужный отдел. Мы собрали датасет из пятидесяти тысяч исторических писем. Наняли асессоров для разметки. Развернули пайплайн очистки данных: стемминг, лемматизация, удаление стоп-слов. Обучили несколько моделей — от наивного Байеса до кастомного BERT. Настроили MLOps-инфраструктуру для регулярного дообучения, потому что лексика пользователей постоянно менялась. Стоимость проекта превысила $80,000, не считая зарплат инженеров поддержки инфраструктуры. Точность классификации замерла на отметке 84%.
Сегодня я решаю ту же задачу за два часа. Я пишу системный промпт на 15 строк, описываю JSON-схему ожидаемого ответа и отправляю HTTP-запрос к LLM. Точность — 96%. Стоимость обработки одного тикета — доли цента.
Конец эпохи эвристик и регулярных выражений
Мы стали свидетелями фундаментального сдвига в инженерии: когнитивные функции превратились в утилиту. Раньше бизнес-логика, требующая понимания контекста, строилась на хрупких деревьях эвристик и бесконечных регулярных выражениях. Если пользователь писал «хочу вернуть деньги, но карта заблокирована», наш код ломался, потому что ключевые слова «вернуть» и «заблокирована» триггерили конфликтующие ветки логики.
Разработчики тратили недели на покрытие пограничных случаев (edge cases). Код обрастал костылями. Поддержка таких систем превращалась в кошмар: добавление нового правила в спагетти из if/else ломало три старых. Классический код отлично справляется с детерминированными задачами (перевести деньги со счета А на счет Б), но катастрофически пасует перед энтропией человеческой речи.
Теперь мы делегируем нечеткую логику языковым моделям. Бизнес-правила интегрируются прямо в промпты. Вместо жесткого кодирования алгоритма принятия решений, мы описываем контекст, ограничения и формат вывода. LLM выступает в роли универсального парсера реальности, который переводит человеческий хаос в структурированные данные, понятные классическому коду.
От CapEx к OpEx в машинном обучении
Этот переход изменил саму структуру затрат на разработку. Классическое машинное обучение требовало огромных капитальных затрат (CapEx). Вы инвестируете месяцы работы дата-саентистов, покупаете дорогие GPU-инстансы для тренировки, оплачиваете разметку данных — и все это до того, как модель принесет первый доллар прибыли.
Интеллект как API переводит эти затраты в операционные (OpEx). Вы платите только за потребленные токены. Порог входа снизился до стоимости одного HTTP-запроса. Это позволяет проверять продуктовые гипотезы за дни, а не кварталы. Если фича не взлетела, вы просто удаляете вызов API. Никаких простаивающих кластеров и устаревших датасетов.
Однако эта легкость таит в себе новую инженерную проблему. Когда стоимость бизнес-логики привязана к объему текста и количеству вызовов, юнит-экономика приложения становится динамической. Неконтролируемые ретраи, слишком объемный контекст или выбор избыточно мощной модели могут сжечь бюджет проекта за выходные. Вызов функции processTicket больше не стоит ноль рублей. Он стоит конкретное количество центов.
Юнит-экономика «мысли» и RouterAPI
Именно здесь на первый план выходит инфраструктура маршрутизации и контроля затрат. В нашей практике мы используем RouterAPI — слой абстракции над зоопарком языковых моделей. Когда интеллект становится API, вы не можете полагаться на одного провайдера. OpenAI может упасть, Anthropic может изменить лимиты, а для простых задач вроде извлечения дат из текста использовать тяжеловесную модель — это стрельба из пушки по воробьям.
RouterAPI решает задачу прозрачной юнит-экономики и отказоустойчивости. Вместо жесткой привязки к конкретному эндпоинту, наш шлюз динамически маршрутизирует запросы на основе маршрутизацию. Если основной провайдер (например, резервный провайдер) отвечает 403 или таймаутом, система автоматически переключается на резервного (резервный канал RouterAPI или локальную модель). Мы настроили автоматический мониторинг моделей для регулярной проверки доступности апстримов, чтобы исключить деградацию сервиса.
Но главное — это нормализация стоимости. Провайдеры тарифицируют токены по-разному. В RouterAPI мы используем система тарификации RouterAPI, который приводит все к единому знаменателю. Мы учитываем внутреннюю маржинальность, конвертацию валют (расчеты в рублях с учетом комиссии эквайринга Т-Банка) и глобальную наценку. Клиентская цена за миллион токенов жестко контролируется: если базовая стоимость плюс маржа падает ниже 10 рублей, система автоматически применяет минимальный порог.
Для административного контроля мы агрегируем данные через аналитику RouterAPI. Первичными KPI выступают не абстрактные метрики трафика, а реальный денежный поток: депозиты клиентов, затраты на апстримы (COGS), комиссии эквайера и чистая прибыль системы. Мы точно знаем, сколько стоит каждый вызов бизнес-логики, и можем отключать убыточные маршруты в реальном времени.
Архитектура детерминированности поверх хаоса
Интеграция LLM в бизнес-процессы требует нового архитектурного подхода. Модели по своей природе недетерминированы. Задача инженера — построить надежную систему поверх этого вероятностного фундамента.
Мы достигаем этого через жесткое ограничение форматов (Structured Outputs) и строгую типизацию на уровне PHP. Бизнес-логика в промпте завершается требованием вернуть строгий JSON. На стороне приложения этот JSON валидируется через DTO (Data Transfer Objects). Если модель галлюцинирует и возвращает невалидную структуру, система инициирует автоматический ретрай с указанием ошибки в контексте, но количество таких ретраев строго лимитировано паттерном Circuit Breaker.
Мы больше не оставляем небуферизованные стримы открытыми. В высоконагруженных админ-панелях, работающих с MySQL, использование cursor приводило к утечкам памяти и ошибкам SQLSTATE[HY000]: 2014. Теперь мы применяем агрегацию на уровне SQL и пакетную обработку, чтобы быстро освобождать соединения и отдавать данные для аналитики токенов.
Новая роль инженера
Роль Staff Engineer изменилась. Мы больше не пишем алгоритмы парсинга текста с нуля и не ждем месяцами результатов от дата-саентистов. Мы проектируем отказоустойчивые пайплайны, управляем стоимостью токенов и строим системы, где интеллект — это просто еще один микросервис.
Бизнес-логика стала дешевой в реализации, но требует ювелирной работы с экономикой API. Написать промпт может каждый. А вот построить систему, которая маршрутизирует миллионы запросов, бесшовно переключается между провайдерами при падениях, гарантирует валидность ответов и сохраняет положительную юнит-экономику — это настоящий инженерный вызов. Выигрывает тот, кто умеет эффективно оркестрировать этот хаос, превращая вероятностные ответы LLM в предсказуемую и масштабируемую прибыль.