В современном мире искусственный интеллект все глубже проникает в нашу повседневную работу и профессиональные задачи, кардинально меняя подходы к программированию и разработке софта. Многие разработчики верят, что благодаря ИИ можно просто поручить ему задачу и получить идеальный результат, но реальность оказывается гораздо сложнее. Возникает новая проблема — плохое формулирование запросов, или, как еще говорят, «плохой prompting», которое становится аналогом старых ошибок в программировании, только теперь стоимость таких ошибок сильно возросла. \n\nИзвестный разработчик Райан Перри поделился своим опытом создания приложения-кроссворда с помощью ИИ. Первую попытку он начал без четкого плана, сразу переходя к генерации кода, что вылилось в затянувшуюся работу почти на шесть с половиной часов и расходы около 28 долларов.
Позже он изменил стратегию, уделив время тщательному проектированию запросов к модели, и смог выполнить ту же задачу за 40 минут и потратить всего около 5 долларов. Урок был ясен: одна и та же работа, однако разница в эффективности и стоимости достигла астрономических значений. \n\nПодобный кейс хорошо иллюстрирует фундаментальную тенденцию: навыки традиционного инженерного мышления и проектирования архитектуры программного обеспечения не только не теряют своей актуальности, но и становятся еще более важными. Искусственный интеллект не устраняет необходимость в планировании и продуманном подходе — напротив, он обнажает слабые места тех, кто пытается обойти эти этапы. Без понимания требований, архитектурных ограничений и четких критериев качества даже самый мощный ИИ будет генерировать результат низкого качества, вынуждая разработчика тратить гораздо больше ресурсов на исправление и доработки.
\n\nВ основе проблемы плохого prompting лежит подход, при котором разработчики пытаются сэкономить время, сразу задавая ИИ неконкретные или неполные инструкции, плавно переходя к генерации кода. В реальности же такой метод приводит к множеству итераций и долгому циклу проб и ошибок. Как в классической инженерии, когда без четкого технического задания разработка превращается в постоянный багфикс, так и в работе с ИИ отсутствие четкой постановки задачи и критериев зрелости продукта ведет к возрастанию стоимости проекта. \n\nЛучший способ работать с ИИ — это тщательно продумать запросы. Следует ясно обозначить, какая функциональность ожидается, каким стандартам качества должен соответствовать продукт, какой архитектуре и логике должен следовать код.
Важно дать примеры того, что является приемлемым, а что — категорически нет. Например, в случае с генерацией кроссворда Райану помогло предоставление искаженных примеров, где демонстрировались типичные ошибки, и противопоставление им корректных образцов конечного результата. Такой метод позволяет не только сэкономить время, но и повысить качество генерации ИИ. \n\nТакже критично значение архитектурного мышления при работе с несколькими компонентами системы и их интеграцией. Указание лишь используемых технологий без согласованного плана взаимодействия компонентов ведет к проблемам на этапе деплоя, например, к ошибкам CORS во фронтенде, что в классическом программировании эквивалентно отсутствию продуманного интерфейса между модулями.
\n\nЕще одним важным аспектом является ясное определение требований к пользовательскому интерфейсу. Если формулировать задачу слишком абстрактно или поверхностно, ИИ может генерировать множество несовершенных интерфейсных решений, что приведет к циклам исправления и доработок. Наличие четких требований, например, размера ячеек, цветовой схемы, реакций на действия пользователя и критериев визуальной оценки заметно повышает эффективность работы. \n\nВ заключение стоит отметить, что искусственный интеллект выступает скорее усилителем инженерного подхода, чем его заменой. Он делает видимой и дорогостоящей каждую слабость в проектировании и формулировках.