⚠️Функции в промпте

Функции в промпте представляют собой инструкции или команды, которые определяют, как модель должна обрабатывать входные данные или генерировать ответы.

Введение


При проведении аналогии между диалоговым интерфейсом GPT и средой программирования можно рассматривать инкапсулированный промпт как функцию. Эта функция обладает уникальным именем, и при вызове этого имени с текстом ввода она генерирует результаты согласно заранее установленным внутренним правилам. В сущности, мы создаем переиспользуемый промпт с определенным именем, что облегчает взаимодействие с GPT. Это аналогично наличию удобного инструмента, позволяющего GPT выполнять определенные задачи за нас - нам лишь требуется предоставить входные данные, и мы получаем желаемый результат.

Проще говоря, допустим, что GPT - это как собеседник. Давай сравним это с языком программирования. У GPT есть такие "команды", их называем промптами. Каждый промпт - это что-то вроде функции с уникальным именем. Мы даем этой функции текст, и она отвечает нам в соответствии с внутренними правилами. Это подобно тому, как мы создаем своего рода "шаблон", который GPT может понимать. В итоге это как волшебный инструмент: мы передаем ему данные, и он выдает нам результат, который нам нужен.

Путем помещения промптов в функции вы можете создавать ряд функций для управления рабочим процессом. Каждая функция представляет собой определенный шаг или задачу, и когда они объединяются в определенном порядке, они могут автоматизировать сложные процессы или эффективно решать задачи. Этот метод позволяет более структурированно и эффективно взаимодействовать с GPT, что в конечном итоге расширяет его способности и делает его мощным инструментом для решения разнообразных задач.

Поэтому, прежде чем использовать функцию, мы должны позволить GPT о ней узнать. Вот промпт, которая определяет функцию.

Промпт:

Давайте назовем этот промпт мета-промптом. Этот промпт была протестирована на GPT3.5 и работает еще лучше на GPT4.

Приветствую, ChatGPT! Надеюсь, у вас всё в порядке. Обращаюсь к вам с просьбой о помощи в определенной задаче. Я понимаю, что вы способны обрабатывать информацию и выполнять разнообразные задачи на основе предоставленных инструкций. Чтобы облегчить ваше понимание моей просьбы, я буду использовать шаблон для описания задачи, вводных данных и инструкций по обработке. Вот подробности: название_функции: [Название функции] ввод: [Ввод] инструкции: [Инструкции по обработке ввода] Прошу вас предоставить результат выполнения этой функции на основе предоставленных мной данных. Ваша помощь очень ценится. Спасибо! Я заменю текст внутри скобок на соответствующую информацию для задачи, которую я хочу, чтобы вы выполнили. Это детальное введение должно помочь вам лучше понять мою просьбу и предоставить нужный результат. Формат: название_функции(ввод)

Примеры


Ассистент для изучения английского языка

Допустим, у нас есть задача использовать GPT для помощи в изучении английского языка. Для упрощения этого процесса мы можем разработать набор функций.

Этот пример был протестирован на GPT3.5 и работает еще лучше на GPT4.

Описание функции

Мы должны вставить мета-промпт, которая была определена выше раздела, в GPT

Затем мы создадим функцию trans_word. Эта функция подсказывает GPT перевести китайский текст на английский.

Промпт:

Имя функции: [перевести_слово] ввод: ["текст"] правило: [Я хочу, чтобы вы выступали как английский переводчик, исправитель орфографии и улучшатель текста. Я предоставлю вам формы ввода с использованием "текста" на любом языке, и вы определите язык, переведете его и ответите с исправленным текстом, на английском.]

Напишите функцию, которая расширяет текст.

Промпт:

Имя функции: [расширить_слово] ввод: ["текст"] правило: [Пожалуйста, действуйте как болтливый собеседник, исправитель ошибок и улучшитель языка. Я предоставлю вам формы ввода с использованием "текста" на любом языке, и вы выводите оригинальный язык. Я хочу, чтобы вы сохраняли смысл, но делали текст более литературным.]

Напишите функцию, которая исправляет текст.

Промпт:

Имя функции: [исправить_английский] ввод: ["текст"] правило: [Пожалуйста, действуйте как мастер английского языка, исправитель орфографии и улучшитель языка. Я предоставлю вам формы ввода с использованием "текста", и я хочу, чтобы вы улучшили словарь и предложения текста, сделав их более естественными и изысканными. Сохраните тот же смысл.]

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

Промпт:

trans_word('婆罗摩火山处于享有“千岛之国”美称的印度尼西亚. 多岛之国印尼有4500座之多的火山, 世界著名的十大活火山有三座在这里.') fix_english('Finally, you can run the function independently or chain them together.') fix_english(expand_word(trans_word('婆罗摩火山处于享有“千岛之国”美称的印度尼西亚. 多岛之国印尼有4500座之多的火山, 世界著名的十大活火山有三座在这里.')))

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

Совет: Если вы не хотите, чтобы ChatGPT выдавал лишнюю информацию, вы можете просто добавить предложение после определения правил функции.

DO NOT SAY THINGS ELSE OK, UNLESS YOU DONT UNDERSTAND THE FUNCTION

Функция с несколькими параметрами


Давайте создадим функцию, которая генерирует пароль, используя пять входных параметров, и выводит сгенерированный пароль.

Промпт:

Имя функции: [pg] Входные данные: ["длина", "заглавные", "строчные", "цифры", "специальные"] Правило: [Я хочу, чтобы вы выступили в роли генератора паролей для людей, которым нужен надежный пароль. Я предоставлю вам входные формы, включая "длину", "заглавные", "строчные", "цифры" и "специальные" символы. Ваша задача - сгенерировать сложный пароль, используя эти входные данные, и предоставить его мне. Не включайте в свой ответ никаких объяснений или дополнительной информации, просто предоставьте сгенерированный пароль. Например, если входные данные: длина = 8, заглавные = 1, строчные = 5, цифры = 2, специальные = 1, ваш ответ может быть паролем, наподобие "D5%t9Bgf".]

pg(длина = 10, заглавные = 1, строчные = 5, цифры = 2, специальные = 1) pg(10, 1, 5, 2, 1)

Мысли


На данный момент уже существует множество проектов, работающих над программированием GPT, таких как:

Но эти проекты разрабатываются либо для клиентов продукта, либо для пользователей, способных программировать на Python или других языках программирования. Для обычного пользователя используйте этот простой шаблон для повседневной работы и несколько раз повторите итерацию. Используйте приложение для заметок для документирования функции, и оно даже может быть обновлено до библиотеки.

В качестве альтернативы, можно использовать некоторые инструменты с открытым исходным кодом для ChatGPT, такие как ChatGPT-Next-Web, chatbox и ChatGPT-Desktop. В настоящее время ChatGPT-Next-Web позволяет добавлять несколько подсказок перед инициализацией нового чата.

Мы можем использовать эту функцию, чтобы добавить нашу функцию, которую можно будет использовать.

Last updated