Разработка с AI

Prompt Engineering: Искусство правильных вопросов

Два программиста используют ChatGPT для одной задачи. Один получает идеальный код за 2 минуты. Другой - мусор после часа мучений. Разница? Не в AI, а в промптах. Prompt engineering - это skill, который определяет твою продуктивность с AI.

  • **'Напиши API'** vs **'Напиши REST API на FastAPI с JWT auth, rate limiting, OpenAPI docs'**
  • **'Сделай быстрее'** vs **'Текущая сложность O(n²). Оптимизируй до O(n log n) используя...'**
  • **Role matters:** 'Как security эксперт, найди уязвимости' даёт другой результат, чем просто 'проверь код'
  • **Итерации:** Первый ответ редко идеален. Уточняй, строй на контексте.

Предварительные знания

  • AI Interaction Paradigms: Intern, Colleague, or Expert?

GIGO: Качество входа = качество выхода

**Garbage In, Garbage Out (GIGO)** - фундаментальный принцип computing. Для AI он критичен: качество промпта определяет качество ответа.

**Формула хорошего промпта:** `Контекст + Задача + Constraints + Формат = Качественный ответ`

AI не читает мысли. Он работает с тем, что ты написал. Всё неявное - будет додумано случайным образом.

**Типичная ошибка:** Предполагать, что AI 'понимает' контекст. AI не знает твой проект, твои требования, твою инфраструктуру. Всё важное нужно сказать явно.

Промпт: 'Сделай авторизацию'. Что не так?

Контекст - это всё

**Контекст** - это информация о среде, в которой будет использоваться код. Чем точнее контекст, тем релевантнее ответ.

**Четыре слоя контекста:** 1. **Технический**: язык, фреймворк, версии, зависимости 2. **Архитектурный**: как код вписывается в систему 3. **Бизнес**: зачем это нужно, какую проблему решает 4. **Constraints**: производительность, безопасность, совместимость

Что указатьПримерПочему важно
Язык и версияPython 3.11Синтаксис разный
ФреймворкFastAPIРазные паттерны
ЗависимостиSQLAlchemy 2.0API меняется
Целевая средаAWS LambdaОграничения
Объём данных1M записейPerformance
Уровень securityPCI DSSТребования

Ты просишь AI написать API endpoint. Что из контекста КРИТИЧНО указать?

Структурированные промпты

Хаотичный промпт → хаотичный ответ. **Структурированный промпт** помогает и тебе организовать мысли, и AI понять задачу.

**Шаблон CRISP:** **C**ontext - Где это будет использоваться? **R**ole - Кем должен быть AI? **I**nstructions - Что конкретно сделать? **S**pecifications - Какие требования/ограничения? **P**refernces - Формат, стиль, примеры?

**Альтернативные шаблоны:**

  • **RACE**: Role, Action, Context, Expectations
  • **STAR**: Situation, Task, Action, Result
  • **Chain of Thought**: 'Думай пошагово, объясняя каждый шаг'

**Не переусердствуй:** Шаблоны помогают, но не делай промпт бюрократией. Для простых вопросов достаточно контекста и чёткой задачи.

Какой элемент CRISP чаще всего пропускают, хотя он критичен?

Итеративное уточнение

Редко первый промпт даёт идеальный результат. **Итеративное уточнение** - это нормальный процесс работы с AI.

**Стратегия уточнения:** 1. Начни с базового промпта 2. Оцени ответ: что хорошо, что нет? 3. Уточни конкретный аспект 4. Повтори пока не достигнешь цели

**Техники уточнения:**

  • **'Измени X на Y'** — точечная правка
  • **'Добавь обработку случая Z'** — расширение
  • **'Объясни почему ты выбрал A, а не B'** — понимание
  • **'Перепиши с учётом constraint C'** — рефакторинг
  • **'Что может пойти не так?'** — проверка edge cases

**Важно:** Не начинай заново при каждой проблеме. AI помнит контекст диалога. Строй на предыдущем, уточняй, корректируй.

Нужно написать идеальный промпт с первого раза

Хороший результат достигается через итерации

Даже эксперты редко получают идеал с первой попытки. Итеративный процесс - это норма. AI помнит контекст, используй это.

AI сгенерировал функцию, но она не обрабатывает null. Как лучше уточнить?

Ключевые идеи

  • **GIGO:** Качество промпта = качество ответа
  • **Контекст критичен:** Язык, фреймворк, constraints, бизнес-требования
  • **CRISP шаблон:** Context, Role, Instructions, Specifications, Preferences
  • **Итерации нормальны:** Строй на предыдущем, уточняй конкретные аспекты
  • **AI помнит контекст:** Используй это для эффективного уточнения

Куда дальше?

Промпты - это фундамент. Дальше - применение в конкретных сценариях:

  • Code Review с AI — Как формулировать промпты для ревью кода
  • AI для архитектуры — Промпты для обсуждения trade-offs
  • Debugging с AI — Как описывать баги для эффективной помощи

Вопросы для размышления

  • Вспомни последний неудачный промпт. Какого контекста не хватало?
  • Попробуй CRISP шаблон для своей текущей задачи. Что изменилось?
  • Как бы ты объяснил задачу новому коллеге? Это и есть хороший промпт.

Связанные уроки

  • ml-01-intro
Prompt Engineering: Искусство правильных вопросов

0

1

Войти