Настройте промпт для проверки кода так, чтобы нейросеть получила контекст, критерии оценки и формат ответа
Для качественной проверки кода промпт должен описывать задачу, технологический контекст, ожидаемый результат и правила анализа. Универсальный запрос без деталей часто приводит к поверхностным замечаниям: нейросеть указывает на стиль, но пропускает ошибки логики, безопасности или производительности.
Рабочий подход состоит из пяти шагов: собрать контекст проекта, задать роль проверяющего, перечислить критерии проверки, определить формат ответа и добавить ограничения. После этого один и тот же шаблон можно адаптировать под разные языки программирования и задачи.
1. Подготовьте данные для проверки
Перед отправкой кода в нейросеть определите, что именно нужно проверить. Один и тот же фрагмент может требовать разного анализа в зависимости от назначения.
- язык программирования и используемый стек;
- назначение функции или модуля;
- ограничения по производительности;
- требования безопасности;
- ожидаемое поведение программы;
- известные проблемы или участки, вызывающие сомнения.
Например, проверка обработчика HTTP-запроса должна учитывать валидацию входных данных, обработку ошибок и работу с внешними сервисами. Проверка алгоритма сортировки потребует анализа сложности и корректности результата.
Не передавайте в публичные ИИ-сервисы секреты, ключи доступа, пароли, персональные данные и закрытые фрагменты кода без проверки правил использования выбранного инструмента.
2. Используйте структуру промпта для code review
Хороший промпт для анализа кода можно разделить на несколько блоков:
- Роль: кто выполняет проверку.
- Контекст: что делает код и где он используется.
- Задача: какие проблемы нужно найти.
- Критерии: по каким правилам оценивать решение.
- Формат: как представить результат.
Пример базового шаблона:
Проведи техническое ревью следующего кода.
Контекст:
- язык и версия:
- назначение компонента:
- ограничения:
- ожидаемое поведение:
Проверь:
1. ошибки логики;
2. потенциальные проблемы безопасности;
3. производительность;
4. читаемость и поддержку;
5. обработку исключительных ситуаций.
Для каждого найденного недостатка укажи:
- место в коде;
- описание проблемы;
- возможные последствия;
- вариант исправления.
Если проблем не найдено, укажи, какие области были проверены.
Такой формат заставляет модель не просто переписывать код, а проводить структурированный анализ.
3. Добавьте критерии проверки под конкретную задачу
Общий список проверок подходит не всегда. Чем точнее критерии, тем полезнее результат.
Проверка безопасности
Для кода, который работает с пользователями, сетью или базами данных, добавьте отдельные требования:
Особое внимание удели:
- проверке входных данных;
- работе с пользовательским вводом;
- утечкам конфиденциальной информации;
- неправильному управлению правами доступа;
- небезопасным настройкам.
Проверка производительности
Для ресурсоёмких участков полезно попросить оценить алгоритмы и операции с данными:
Проверь:
- возможные лишние вычисления;
- повторные обращения к ресурсам;
- использование памяти;
- масштабирование при увеличении объёма данных.
Проверка архитектуры
Если нужно оценить не отдельную функцию, а компонент приложения, укажите архитектурный уровень анализа:
Оцени структуру решения:
- разделение ответственности;
- зависимость компонентов;
- возможность расширения;
- сложность сопровождения.
4. Задайте формат ответа нейросети
Без указания формата ответ может быть неудобным для использования. Например, вместо длинного описания можно попросить таблицу или список исправлений.
Практичный вариант для ревью:
Формат ответа:
1. Краткое резюме состояния кода.
2. Список проблем с приоритетом:
- критично;
- важно;
- желательно улучшить.
3. Исправленный пример только для проблемных мест.
4. Итоговый список действий перед отправкой кода в production.
При проверке больших файлов лучше разделять анализ на несколько запросов: сначала архитектура, затем безопасность, затем отдельные функции. Это снижает риск пропуска важных деталей из-за объёма входных данных.
5. Добавьте режим уточняющих вопросов
Если контекста недостаточно, полезно запретить нейросети делать предположения. Это особенно важно при работе с незнакомым проектом.
Перед анализом задай уточняющие вопросы, если:
- не хватает информации о назначении кода;
- неизвестны требования к производительности;
- отсутствует описание входных и выходных данных;
- невозможно определить ожидаемое поведение.
Такой подход уменьшает количество рекомендаций, основанных на неверных предположениях.
Пример полного промпта для проверки кода
Готовый вариант можно адаптировать под большинство задач:
Ты выполняешь роль опытного разработчика, проводящего code review.
Задача:
Проверь предоставленный код и найди ошибки, потенциальные риски и места для улучшения.
Контекст проекта:
Язык:
Версия:
Назначение кода:
Ограничения:
Проверь:
- корректность логики;
- обработку ошибок;
- безопасность;
- производительность;
- читаемость;
- соответствие хорошим практикам языка.
Правила:
- не предлагай изменения без объяснения причины;
- не переписывай весь код без необходимости;
- отделяй обязательные исправления от рекомендаций;
- указывай уровень важности каждого замечания.
Ответ представь в формате:
1. Найденная проблема.
2. Почему это проблема.
3. Где она находится.
4. Как исправить.
5. Пример исправленного фрагмента.
Как проверить качество полученного ревью
Результат анализа стоит оценивать не по количеству замечаний, а по их практической ценности. Проверьте, что рекомендации:
- ссылаются на конкретные места в коде;
- объясняют причину проблемы;
- учитывают назначение программы;
- не требуют необоснованной полной переработки;
- могут быть проверены разработчиком.
Если нейросеть предлагает заменить большую часть решения, попросите её сначала выделить минимальный набор исправлений и объяснить риски текущего варианта.
Распространённые ошибки при создании промптов
- Слишком общий запрос. Фраза «проверь мой код» не задаёт критерии анализа.
- Отсутствие контекста. Невозможно оценить правильность решения без понимания задачи.
- Запрос только на исправление. Автоматическая генерация нового кода может скрыть исходную проблему.
- Проверка больших объёмов без разделения. В длинном файле важные детали могут получить меньше внимания.
- Отсутствие требований к формату. Ответ становится сложнее использовать в работе.
Итоговый чек-лист настройки промпта
- Опишите назначение проверяемого кода.
- Укажите язык, версию и используемые технологии.
- Перечислите нужные направления анализа.
- Попросите указывать причины и последствия проблем.
- Задайте удобный формат результата.
- Запретите необоснованные предположения при нехватке данных.
- Проверяйте рекомендации перед внесением изменений в проект.