LLM — это инструмент, а не функция. «Прикрутить AI» — не цель; цель — снять у пользователя конкретную боль. Если боли нет, ассистент станет красивой кнопкой, которую никто не нажимает.
Где LLM хорош
Там, где пользователь не знает точную формулировку: поиск по смыслу, подбор, черновики, суммаризация, превращение «человеческого» запроса в структурированный. В кейсе PAINKILLER это AI-примерка и подбор размера по параметрам — пользователь не формулирует SQL, он просто хочет «что-то базовое, размер M».
Где LLM плох
Там, где нужна детерминированность: расчёты, права доступа, списания, критичные действия. Здесь модель в лучшем случае подсказывает, а решает — код. Никаких «примерно посчитал».
Модель выбирает действие. Выполняет его — проверенный код, с валидацией и лимитами.
Хороший паттерн — агент с инструментами: LLM выбирает, какой инструмент вызвать, но сам вызов делает обычный код с валидацией, идемпотентностью и лимитами. Так вы получаете гибкость языка и надёжность системы.
И всегда оставляйте человеку контроль на необратимых шагах. Это безопаснее, честнее по отношению к пользователю и сильно упрощает аудит того, что «нагенерила» модель.