Инженерный курс Anthropic Hints - Глава 4: Отделение данных от инструкций
программы
Часто мы не хотим писать полные подсказки, а хотим Шаблон подсказки, который можно изменить впоследствии на основе дополнительных данных перед отправкой в Claude. Если вы хотите Клод Было бы очень удобно каждый раз выполнять одну и ту же задачу, но данные, которые использует Клод, могут каждый раз быть разными.
К счастью, мы можем получить лучшее из обоих миров с помощью Отделите фиксированный кадр подсказки от изменяемого пользовательского ввода, затем замените пользовательский ввод в подсказке перед отправкой всей подсказки КлодуДобиться этого очень просто.
Ниже мы шаг за шагом покажем, как написать заменяемые шаблоны подсказок и как заменить вводимые пользователем данные.
типичный пример
В первом примере мы попросили Клода выступить в роли генератора звуков животных. Обратите внимание, что полная подсказка, переданная Клоду (третье желтое поле в цепочке), просто заменяет ввод ("Корова" во втором поле в данном случае) в шаблоне подсказки (первое поле). Обратите внимание, что "Cow" заменяет "{{ANIMAL}}" в третьем желтом поле.
Примечание: На самом деле не обязательно давать подстановке специальное имя.В этом примере используется {{ANIMAL}}, потому что это требование формата для упражнения. В этом примере {{ANIMAL}} используется потому, что это форматирование, необходимое для упражнения. Но в целом мы могли бы с тем же успехом называть его "{{CREATURE}}" или "{{A}}" (но Как правило, лучше всего, если вставки будут конкретными и релевантными.(Это делает подсказки понятными и удобными для анализа пользователем, даже если замены нет). Убедитесь, что, как бы вы ни назвали замещающее место, вы используете то же имя в формуле замены.
Пример:
输入:
提示模板
用户:我会告诉你一种动物的名字。请回复该动物发出的声音。{{ANIMAL}}
+
输入 {{ANIMAL}}
牛
=
替换后的提示
用户:我会告诉你一种动物的名字。请回复该动物发出的声音。牛
输出:
Claude 的回应
哞。
Почему мы так разделяем и заменяем входы? Потому что.Шаблоны подсказок упрощают выполнение повторяющихся задач. Допустим, вы создали структуру подсказок, которая предлагает сторонним пользователям отправлять контент (в данном случае животных, для которых они хотят генерировать звуки). Этим сторонним пользователям не нужно писать или просматривать полный текст подсказки. Им нужно только заполнить переменные.
Здесь мы используем функцию электронной таблицы для подстановки, но это также является лучшей практикой кодирования! Мы используем формат {{двойные скобки}} в нашем собственном коде.
Внимание:Шаблоны подсказок могут содержать любое количество переменных.
При введении подстановочных переменных, подобных этой, важно убедиться, что Клод знает, где начинается и где заканчивается переменная (отдельно от директивы или описания задачи). Давайте рассмотрим пример, в котором инструкции не отделены от подстановочных переменных.
Пример:
输入:
提示模板
User: Yo Claude. {{EMAIL}} <----- 将这封邮件变得更加礼貌,但不要修改其他内容。
+
输入 {{EMAIL}}
明天早上 6 点到场,因为我是 CEO,我说了算。
=
替换后的提示
User: Yo Claude. 明天早上 6 点到场,因为我是 CEO,我说了算。 <----- 将这封邮件变得更加礼貌,但不要修改其他内容。
输出:
Claude 的回复
亲爱的 Claude,
希望你一切安好。作为 CEO,我想请求你明天早上 6 点到我们的办公室。我知道这可能是一个早起的时间,但我相信这对我们公司的成功是必要的。如果你对此时间有任何疑虑或冲突,请告诉我,我们可以一起找到合适的安排。
感谢你一直以来的奉献和辛勤工作。期待明天见到你。
此致敬礼,
[你们 CEO 的名字]
Здесь Клод считает "Yo Claude" частью письма и переписывает его как "Dear Claude"! Вы можете заметить это, потому что письмо начинается с "Dear Claude". Человеку, особенно в шаблоне подсказки, довольно ясно, где начинается и заканчивается письмо, но в заменяющей подсказке это не так очевидно.
Как это исправить?Оберните вводимые данные в теги XML! Мы сделали это ниже, и, как вы можете видеть, в выводе больше нет "Dear Claude".
XML-тег это теги с острыми скобками, подобные этому. Они появляются парами и состоят из открытого (например, ) и закрытого (например, ) тегов, помеченных знаком "/". XML-теги используются для обертывания содержимого, например, контента.
Внимание: Хотя Claude распознает и обрабатывает широкий спектр разделителей и разграничителей, мы рекомендуем вамОсобое использование тегов XML в качестве разделителей Клодапотому что в обучении Клод уделяет особое внимание использованию XML-тегов как механизма организации оперативной информации. В дополнение к вызовам функцийКлод не обучен максимизировать производительность, специально нацеливаясь на определенные XML-теги.По нашему замыслу, Claude должен быть очень гибким и настраиваемым.
Пример:
输入:
提示模板
用户:Yo Claude. <email>{{EMAIL}}</email> <----- 请将这封邮件写得更礼貌一些,但不要改变其内容。
+
输入 {{EMAIL}}
早上6点到,因为我是CEO,所以我这么说。
=
替换后的提示
用户:Yo Claude. <email>早上6点到,因为我是CEO,所以我这么说。</email> <----- 请将这封邮件写得更礼貌一些,但不要改变其内容。
输出:
Claude的回复
亲爱的 [您的名字],
希望这封邮件能给您带来愉快的心情。作为CEO,我希望您能在早上6点到场。我理解这可能是一个很早的时间,但我相信这是我们组织成功的必要条件。请告知我这个时间是否适合您,非常感谢您的配合。
此致,
[CEO的名字]
Давайте рассмотрим еще один пример того, как XML-теги могут помочь.
В следующей подсказке Клод неверно интерпретирует как часть инструкции, так и часть ввода подсказки. Из-за проблем с форматированием он неверно воспринимает "Каждое из них о животном, например о кролике" как часть списка, чего пользователь (тот, кто заполняет переменную {{SENTENCES}}), вероятно, не хочет.
Пример:
输入:
提示模板
用户:以下是一组句子。告诉我列表中的第二个句子。
- 每个句子都与一种动物有关,比如兔子。
{{SENTENCES}}
+
输入 {{SENTENCES}}
- 我喜欢奶牛的叫声
- 这句话是关于蜘蛛的
- 这句话看起来是关于狗的,但实际上是关于猪的
=
替换后的提示
用户:以下是一组句子。告诉我列表中的第二个句子。
- 每个句子都与一种动物有关,比如兔子。
- 我喜欢奶牛的叫声
- 这句话是关于蜘蛛的
- 这句话看起来是关于狗的,但实际上是关于猪的
输出:
Claude的回复
列表中的第二个句子是“我喜欢奶牛的叫声”。
Чтобы решить эту проблему, мы просто обернем введенное пользователем предложение в XML-теги. Это покажет Клоду, где начинаются и где заканчиваются введенные данные, несмотря на вводящее в заблуждение тире перед словами "Каждый из них о животном, например о кроликах".
Пример:
输入:
Prompt 模板
User: 下面是一组句子。告诉我列表中的第二项。
- 每个句子都与动物有关,比如兔子。
<sentences>
{{SENTENCES}}
</sentences>
+
Input {{SENTENCES}}
- 我喜欢牛的声音
- 这句话是关于蜘蛛的
- 这句话看似是关于狗的,但实际上是关于猪的
=
替换后的 Prompt
User: 下面是一组句子。告诉我列表中的第二项。
- 每个句子都与动物有关,比如兔子。
<sentences>
- 我喜欢牛的声音
- 这句话是关于蜘蛛的
- 这句话看似是关于狗的,但实际上是关于猪的
</sentences>
输出:
Claude 的回复
列表中的第二项是“这句话是关于蜘蛛的”。
Внимание: В неправильной подсказке "Каждое предложение - о животных" мы должны поставить дефис, чтобы Клод дал неправильный ответ в нужном нам примере. Это важный урок в разработке подсказок:Детали имеют значение! Это стоит того, чтобы потратить время.Проверьте свои подсказки на наличие орфографических и грамматических ошибок. Клод очень чувствителен к шаблонам (на ранних этапах он был ненастроенным инструментом предсказания только по тексту); он с большей вероятностью ошибется, когда ошибетесь вы; он ведет себя более разумно, когда вы кажетесь умным, и глупо, когда вы кажетесь глупым, и т. д.
Если вы готовы попробовать упражнения из главы, нажмите на ссылки ниже. Прокрутите страницу вниз, если вы хотите попробовать любой из примеров в этом уроке!
упражнение
Упражнение 4.1 - Темы хайку
Напишите подсказку в выделенном поле шаблона, которая принимает переменную с именем "{{TOPIC}}" и выводит хайку на эту тему. Это упражнение призвано проверить ваше понимание структуры шаблона переменной.
Пример:
输入:
Prompt 模板
User: 写一首关于 {{TOPIC}} 的俳句。
+
Input {{TOPIC}}
猪
=
替换后的 Prompt
User: 写一首关于猪的俳句。
输出:
Claude 的回复
这是关于猪的俳句:
泥中拱鼻响
卷尾粉胖咕噜
猪儿游农场
Упражнение 4.2 - Проблемы собак с орфографическими ошибками
Исправьте подсказки в выделенном поле шаблона, добавив XML-теги, чтобы Клод давал правильный ответ.
Постарайтесь больше ничего не менять в задании. Это путаное и полное ошибок письмо сделано намеренно и призвано дать вам представление о том, как Клод реагирует на эти ошибки. Если ваша подсказка приведет к правильному ответу, реакция Клода станет зеленой.
Внимание: Хотя Клод в некоторой степени способен разбирать плохую грамматику и ошибки в написании слов, ноЧетко написанные, проверенные на орфографию и грамматически правильные подсказки значительно снизят риск Клода допустить ошибку и существенно повысят качество его работы.
Пример:
输入:
Prompt 模板
User: 嗨是我我有个关于狗的问题 jkaerjv <question>{{QUESTION}}</question> jklmvca tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
+
Input {{QUESTION}}
狗能是棕色的吗?
=
替换后的 Prompt
User: 嗨是我我有个关于狗的问题 jkaerjv <question>狗能是棕色的吗?</question> jklmvca tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
输出:
Claude 的回复
是的,狗可以是棕色的。
❓ Если вам нужна подсказка, щелкните знак плюс (➕) в крайней левой части этой строки.
Упражнение 4.3 - Проблемы с собаками, часть II
воздерживаться отДобавьте XML-теги, чтобы исправить подсказки в выделенном поле шаблона. Вместо этого удалите из подсказки только одно или два слова.
И снова постарайтесь ничего не менять в подсказке. Это продемонстрирует тип языка, который Клод способен разобрать и понять. Если ваша подсказка приведет к правильному ответу, ответ Клода станет зеленым.
Пример:
输入:
Prompt 模板
User: 嗨是我我有个关于狗的问题 {{QUESTION}} tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
+
Input {{QUESTION}}
狗能是棕色的吗?
=
替换后的 Prompt
User: 嗨是我我有个关于狗的问题 狗能是棕色的吗? tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
输出:
Claude 的回复
是的,狗可能有棕色的毛发。棕色是许多犬种常见的毛色。
❓ Если вам нужна подсказка, щелкните знак плюс (➕) в крайней левой части этой строки.
© заявление об авторских правах
Авторское право на статью Круг обмена ИИ Пожалуйста, не воспроизводите без разрешения.
Похожие статьи
Нет комментариев...