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

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

Введение


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

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

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

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

Промпт:

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

circle-info

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

Примеры


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

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

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

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

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

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

Промпт:

circle-info

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

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

Промпт:

circle-info

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

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

Промпт:

circle-info

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

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

Промпт:

circle-info

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

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

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

circle-info

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

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


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

Промпт:

circle-info

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

circle-info

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