Основы промптинга применимы к любой модели. Это руководство описывает то, что специфично для моделей OpenAI — в приложении ChatGPT и через API, — и где их поведение должно менять то, как вы пишете.
Названия и ограничения моделей часто меняются, поэтому здесь описано поведение, остававшееся стабильным на протяжении поколений. Актуальный список моделей смотрите в документации OpenAI.
Два семейства, которым нужны разные промпты
OpenAI выпускает универсальные чат-модели и модели с рассуждением. Это различие важнее названия модели.
| Универсальные чат-модели | Модели с рассуждением | |
|---|---|---|
| Как работают | Отвечают сразу | Думают внутри перед ответом |
| Лучший стиль промпта | Явные пошаговые инструкции | Цель, ограничения и критерии успеха |
| «Думай шаг за шагом» | Может помочь | Не нужно; может навредить |
| Примеры | Часто полезны | Сначала попробуйте без них |
| Стоимость и задержка | Ниже | Выше, настраивается усилием рассуждения |
Полезно думать так: инструктируйте чат-модель как способного новичка, которому нужна процедура, а модель с рассуждением — как опытного коллегу, которому нужна цель.
Роли сообщений
API принимает сообщения с ролями. Инструкции автора приложения идут в системное сообщение, которое новые API OpenAI называют сообщением developer. Ввод пользователя идёт в сообщения пользователя. Модель отдаёт приоритет инструкциям developer.
Помещайте постоянные правила, роль и формат вывода в сообщение developer. Задачу и её данные — в сообщение пользователя. См. системные промпты и ролевой промптинг.
В приложении ChatGPT роль системного сообщения играют пользовательские инструкции и инструкции проекта.
Будьте буквальны и явны
Новые модели OpenAI следуют инструкциям внимательно и буквально. Два следствия:
- Они делают то, что вы сказали, а не то, что вы имели в виду. Если вам нужны предложения в дополнение к запрошенному исправлению, попросите и то и другое.
- Одно ясное предложение обычно исправляет поведение. Заглавные буквы и повторы не нужны. Сильный нажим может привести к чрезмерному применению правила.
Структурируйте с помощью Markdown и разделителей
Модели OpenAI хорошо справляются с заголовками и списками Markdown для организации инструкций и с XML-подобными тегами для обрамления документов и вводов.
## Task
Summarize the incident report for the on-call team.
## Requirements
- 5 bullet points.
- Include root cause, customer impact, and fix.
## Output format
A markdown list. No introduction.
<report>
{{report}}
</report>
Длинный контекст
Если промпт содержит большой документ, помещайте инструкции и в начало, и в конец. Если можно разместить их только один раз, поставьте их над документом. Это следует собственным рекомендациям OpenAI для промптов с длинным контекстом.
Structured Outputs
Для всего, что разбирает ваш код, используйте функцию Structured Outputs в API со схемой JSON Schema в строгом режиме. Тогда ответ ограничен схемой, что устраняет целый класс сбоев разбора.
- Хорошо называйте и описывайте поля: модель читает схему.
- Используйте перечисления для фиксированных наборов значений.
- Поставьте поле рассуждения перед полем результата, если хотите объяснение.
- Всё равно проверяйте: ответ может оборваться на лимите вывода или быть отклонён.
Подробнее — в разделе о промптах для структурированного вывода.
Вызов функций
Инструменты определяются именем, описанием и схемой параметров. Описание — это промпт, по которому модель решает, когда вызывать инструмент, поэтому укажите, что он делает, когда его использовать и что возвращает. Строгий режим ограничивает аргументы схемой. См. промпты для ИИ-агентов.
Усилие рассуждения
У моделей с рассуждением есть настройка, сколько усилий тратить на размышление. Используйте низкое усилие для простого извлечения и классификации и более высокое для многошагового анализа и сложного кода. Изменение этой настройки эффективнее, чем добавление в промпт инструкций о рассуждении.
Подсчёт токенов точен
OpenAI публикует свои токенизаторы, поэтому вы можете посчитать токены промпта офлайн и узнать стоимость ввода до отправки. PromptFlowEngine использует эти токенизаторы для моделей OpenAI и помечает результат как точный. Проверьте промпт в рабочем пространстве или см. оптимизацию токенов.
Кеширование промптов применяется автоматически к повторяющимся префиксам выше минимальной длины, поэтому ставьте стабильное содержимое первым, а переменное — последним.
Промптинг в приложении ChatGPT
- Задайте контекст один раз. Используйте пользовательские инструкции или проект для постоянных предпочтений вместо повторного ввода.
- Начинайте новый чат при смене темы. Старые инструкции задерживаются в длинном разговоре.
- Прикрепляйте материал. Загрузите файл вместо описания.
- Просите формат. Таблицу, чек-лист или лимит слов.
- Проверяйте память. Если сохранённые воспоминания направляют ответы нежелательным образом, просмотрите или отключите их.
- Не вставляйте секреты. Ключи и данные клиентов в чате вышли из-под вашего контроля.
Расширение PromptFlowEngine для Chrome работает внутри ChatGPT: оно анализирует черновик в поле промпта, реструктурирует черновую просьбу и предупреждает, когда черновик содержит учётные данные.
Типичные ошибки с моделями OpenAI
| Ошибка | Что происходит | Исправление |
|---|---|---|
| Пошаговые инструкции для модели с рассуждением | Медленнее, но не лучше | Укажите цель и ограничения |
| Просьба о JSON только прозой | Периодически невалидный вывод | Используйте Structured Outputs |
| Инструкции затеряны под длинным документом | Инструкциям придаётся меньший вес | Повторите их после документа |
| Нажим на каждом правиле | Правила применяются чрезмерно | Простые утверждения; объясните причину |
| Оценка токенов по символам | Промахи в бюджете | Считайте токенизатором |
Оптимизация промпта для ChatGPT
- Сформулируйте задачу в первой строке.
- Добавьте аудиторию, ограничения и формат вывода.
- Оберните вставленный материал в теги.
- Уберите лишние слова и повторы.
- Проверьте на реальных данных и сравните версии.
Оптимизатор промптов PromptFlowEngine выполняет шаги 3 и 4 и проверяет, что ни одно требование не потеряно.
Сравните с руководством по промптингу для Claude и руководством по промптингу для Gemini.