Перейти к основному содержимому

Custom Prompts полное руководство ZimmWriter

Руководство описывает интеграцию ваших собственных промптов (Custom Prompts) в рабочие процессы ZimmWriter без конфликтов с внутренними системными инструкциями генератора.

Ссылка на оригинал

Custom Prompts в ZimmWriter

Уже довольно давно пользователи просили добавить возможность использовать собственные персонализированные промпты в ZimmWriter. Но здесь есть один нюанс. Качество вывода может снизиться при использовании кастомных промптов. И дело вовсе не в том, что ваши промпты плохие, нет. Просто они могут конфликтовать с системными промптами ZimmWriter. Между моими промптами и вашими может возникнуть небольшое противоречие.

Но я нашел решение. Позвольте мне начать с объяснения того, как генерируется контент внутри ZimmWriter.

ZimmWriter строит ваши статьи раздел за разделом. Введение — это раздел, заключение — это раздел, группа абзацев для заголовка H2 — это раздел и так далее.

Для большинства этих разделов внутренняя логика работы выглядит следующим образом:

  1. ZimmWriter сначала отправляет запрос в OpenAI для написания раздела (например, раздела для одного H2 в статье с множеством H2).
  2. Затем ZimmWriter отправляет запрос в OpenAI для применения функции коротких абзацев (Skinny Paragraphs), если она выбрана.
  3. Наконец, ZimmWriter отправляет запрос в OpenAI для перевода раздела на нужный вам язык, если выбран перевод.

Если добавить ваш кастомный промпт прямо на шаге 1, это нарушит качество генерации. Поэтому решение состоит в том, чтобы добавить новый шаг между шагами 1 и 2. Новый рабочий процесс при вызове кастомных промптов выглядит так:

  1. ZimmWriter сначала обращается к OpenAI для написания раздела (например, раздела для одного H2 в статье с множеством H2).
  2. Затем ZimmWriter отправляет запрос в OpenAI для применения вашего кастомного промпта (если он выбран).
  3. После этого ZimmWriter обращается к OpenAI для применения Skinny Paragraphs (если выбрано).
  4. Наконец, ZimmWriter отправляет запрос в OpenAI для перевода раздела на нужный язык (если выбрано).

Теперь нужно учесть несколько важных моментов...


Basics on Custom Prompting

Основы кастомных промптов (Custom Prompting)

Вы можете выбрать отдельный (или один и тот же) кастомный промпт для применения к введению, заключению, подзаголовкам, переходам подзаголовков, шаблонам продуктов (product layouts), ключевым выводам (key takeaways) и FAQ.

ZimmWriter берет на себя всю фоновую работу, отправляя в OpenAI заголовок статьи или подзаголовка, текущее содержимое раздела (сгенерированное на шаге 1), сам подзаголовок, если он необходим (например, для раздела H2), и ваш кастомный промпт. Кастомный промпт не отправляет в OpenAI ваш глобальный фон или фон подзаголовка, так как предполагается, что ИИ уже знает контекст из текста раздела, сгенерированного на шаге 1.

Я полагаю, что использование кастомных промптов потребует от вас некоторых экспериментов. Я бы рекомендовал начать с малого — с простых, понятных промптов, и посмотреть, как это работает. Я ожидаю, что многие люди будут пытаться повторно использовать свои промпты из ChatGPT внутри раздела кастомных промптов и получать ужасный результат. Это кривая обучения для пользователей.

Кроме того, хотя большинство мест применения кастомных промптов интуитивно понятны (введение, заключение и т.д.), у вас может возникнуть путаница относительно разницы между «Use on Normal Subheadings» (Использовать на обычных подзаголовках) и «Use on Transition Subheadings» (Использовать на переходных подзаголовках). Все подзаголовки — это H2, H3, H4. Но переходный подзаголовок — это тот, после которого следующий подзаголовок находится на более глубоком уровне H. Вот пример:

  • H2 (обычный)
  • H2 (переходный)
    • H3 (обычный)
    • H3 (обычный)
    • H3 (переходный)
      • H4 (обычный)
      • H4 (обычный)
    • H3 (обычный)
  • H2 (обычный)

Надеюсь, этот пример наглядно показывает, что подзаголовок классифицируется как «переходный» (transition), если следующий за ним подзаголовок H находится на уровень глубже.


Custom Prompt Design

Проектирование кастомного промпта

Самое важное, что нужно понять при создании кастомного промпта, — это то, как именно ZimmWriter передает данные в OpenAI. Ниже приведен шаблон промпта, который ZimmWriter отправляет в OpenAI. Это НЕ ваш кастомный промпт. Ваш кастомный промпт подставляется на место текста "ваш кастомный промпт" ниже:

[CONTEXT]:

заголовок статьи или заголовок подраздела

[TEXT TO MODIFY]:

текст из соответствующего раздела, например, введение, заключение, ключевые выводы, содержимое подзаголовка и т. д.

[MODIFY THE TEXT ACCORDING TO THESE RULES]:

ваш кастомный промпт

[MODIFIED TEXT]:

Именно этот шаблон запроса отправляется в OpenAI, поэтому помните о нем при составлении своего промпта.

Текст «ваш кастомный промпт» выше — это то, что вы вводите в поле ввода в разделе кастомных промптов внутри ZimmWriter.

Поэтому при написании кастомного промпта вы можете ссылаться на исходный текст, используя слово TEXT заглавными буквами. Вот пример кастомного промпта: «Rewrite the TEXT in the style of Dr. Seuss. Also include a markdown format bullet list» (Перепиши TEXT в стиле Доктора Сьюза. Также включи маркированный список в формате markdown).

Когда ZimmWriter объединит ваш кастомный промпт со всем остальным, конечный результат, отправляемый в OpenAI, может выглядеть так:

[CONTEXT]:

Milwaukee 2366-20 M18 Rover Flood Light Review

[TEXT TO MODIFY]:

Looking for a powerful and versatile lighting solution? Need optimal visibility for your job site or outdoor activities? Look no further than the Milwaukee 2366-20 M18 Rover Flood Light.

With 4,000 lumens of brightness and three lighting modes, you can easily adjust to meet your specific needs. The M18 5.0 Battery Pack provides up to 12 hours of continuous runtime.

Its compact size, integrated handle, and IP54 rating make it perfect for any tough job.

Don't settle for subpar lighting, so choose the Milwaukee 2366-20 M18 Rover Flood Light for unmatched performance and durability.

[MODIFY THE TEXT ACCORDING TO THESE RULES]:

Rewrite the TEXT in the style of Dr. Seuss. Also include a markdown format bullet list.

[MODIFIED TEXT]:

Custom Prompt Naming & Variables

Именование кастомных промптов и переменные

Как вы заметите, все имена кастомных промптов должны быть заключены в фигурные скобки, начинаться с cp_ и содержать только латинские буквы, цифры и символы подчеркивания.

Вот несколько примеров:

  • {cp_your_prompt1}
  • {cp_amazon}
  • {cp_fix_spelling}
  • {cp_aida_intro_1}

Вы можете спросить... зачем? Такая схема именования кажется странной и неудобной.

Но причина в том, что вы можете использовать свои кастомные промпты в ваших кастомных структурах (Custom Outlines)!

Все, что вам нужно сделать, это добавить имя кастомного промпта (например, {cp_your_prompt_name}) в конец подзаголовка структуры (точно так же, как вы добавляете {list}, {table} и т. д.), и ZimmWriter позаботится обо всем остальном! Обратите внимание, что ZimmWriter принимает только один кастомный промпт на один подзаголовок.

Кроме того, вы можете применять свои кастомные промпты по их имени в качестве переменной и в SEO Writer, если вам это необходимо.


Custom Prompt Cost, Time, and OpenAI Model

Стоимость, время генерации и модель OpenAI

Имейте в виду, что использование кастомного промпта требует дополнительного шага. ZimmWriter должен отправить дополнительный запрос в OpenAI с исходным текстом и вашим промптом. Это немного увеличивает время генерации и общую стоимость статьи. Обратите внимание, что у вас есть возможность выбрать для кастомного промпта другую модель OpenAI, отличную от той, которая используется для написания основной статьи.