Руководства по моделям

Промптинг для ChatGPT и OpenAI: практическое руководство

Как писать промпты для ChatGPT и моделей OpenAI. Роли сообщений, модели с рассуждением, структурированный вывод, длинный контекст, точный подсчёт токенов и типичные ошибки.

  • Автор: Vijayraj Palanisamy
  • Обновлено
  • 4 мин чтения

Перевод английского оригинала. Код, промпты и вывод моделей оставлены на английском.

Основы промптинга применимы к любой модели. Это руководство описывает то, что специфично для моделей 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

  1. Сформулируйте задачу в первой строке.
  2. Добавьте аудиторию, ограничения и формат вывода.
  3. Оберните вставленный материал в теги.
  4. Уберите лишние слова и повторы.
  5. Проверьте на реальных данных и сравните версии.

Оптимизатор промптов PromptFlowEngine выполняет шаги 3 и 4 и проверяет, что ни одно требование не потеряно.

Сравните с руководством по промптингу для Claude и руководством по промптингу для Gemini.

Применить на практике

Попробуйте: оптимизатор промптов

Меньше токенов и больше структуры — с доказательством, что все требования сохранились. Бесплатно, детерминированно и без аккаунта.

Связанные инструменты PromptFlowEngine