Cours d'ingénierie - Chapitre 4 : Séparer les données des instructions
programmes
Souvent, nous ne voulons pas écrire des messages complets, mais nous voulons plutôt Un modèle d'invite qui peut être modifié ultérieurement en fonction des données supplémentaires saisies avant de le soumettre à Claude.. Si vous souhaitez Claude Il serait très utile d'effectuer la même tâche à chaque fois, mais les données que Claude utilise peuvent être différentes à chaque fois.
Heureusement, nous pouvons obtenir le meilleur des deux mondes avec la Séparer le cadre fixe de l'invite de la saisie variable de l'utilisateur, puis remplacer la saisie de l'utilisateur dans l'invite avant d'envoyer l'intégralité de l'invite à Claude.Il est très facile d'y parvenir.
Nous allons voir ci-dessous, étape par étape, comment écrire des modèles d'invite remplaçables et comment remplacer les données saisies par l'utilisateur.
exemple typique
Dans le premier exemple, nous avons demandé à Claude d'agir comme un générateur de sons d'animaux. Notez que l'invite complète soumise à Claude (la troisième case jaune de la chaîne) remplace simplement l'entrée ("Vache" dans la deuxième case dans ce cas) dans le modèle d'invite (la première case). Notez que "Vache" remplace "{{ANIMAL}}" dans la troisième case jaune.
Remarque : il n'est pas nécessaire d'attribuer un nom particulier à l'élément de substitution.Dans cet exemple, {{ANIMAL}} est utilisé parce qu'il s'agit d'une exigence de format pour l'exercice. Dans cet exemple, {{ANIMAL}} est utilisé parce que c'est le formatage requis pour l'exercice. Mais en général, on pourrait tout aussi bien l'appeler "{{CREATURE}}" ou "{{A}}" (mais Il est généralement préférable que les espaces réservés soient spécifiques et pertinents.(Cela rend les indices faciles à comprendre et à analyser par l'utilisateur, même s'il n'y a pas de remplacement). Veillez simplement à utiliser le même nom dans la formule de remplacement, quel que soit le nom que vous donnez à l'espace réservé de remplacement.
Exemple :
输入:
提示模板
用户:我会告诉你一种动物的名字。请回复该动物发出的声音。{{ANIMAL}}
+
输入 {{ANIMAL}}
牛
=
替换后的提示
用户:我会告诉你一种动物的名字。请回复该动物发出的声音。牛
输出:
Claude 的回应
哞。
Pourquoi séparons-nous et remplaçons-nous les intrants de la sorte ? Parce que.Les modèles d'invite simplifient les tâches répétitives. Supposons que vous construisiez une structure d'invite qui invite des utilisateurs tiers à soumettre du contenu (dans ce cas, des animaux pour lesquels ils veulent générer des sons). Ces utilisateurs tiers n'ont pas besoin d'écrire ou de visualiser l'intégralité de l'invite. Il leur suffit de remplir les variables.
Nous utilisons ici une fonction de feuille de calcul pour la substitution, mais c'est aussi une bonne pratique de codage ! Nous utilisons le format {{double brackets}} dans notre propre code.
Attention :Les modèles d'indices peuvent contenir un nombre illimité de variables.
Lorsque l'on introduit des variables de substitution comme celle-ci, il est important de s'assurer que Claude sait où commence et où finit la variable (séparément de la directive ou de la description de la tâche). Prenons un exemple qui ne sépare pas les instructions des variables de substitution.
Exemple :
输入:
提示模板
User: Yo Claude. {{EMAIL}} <----- 将这封邮件变得更加礼貌,但不要修改其他内容。
+
输入 {{EMAIL}}
明天早上 6 点到场,因为我是 CEO,我说了算。
=
替换后的提示
User: Yo Claude. 明天早上 6 点到场,因为我是 CEO,我说了算。 <----- 将这封邮件变得更加礼貌,但不要修改其他内容。
输出:
Claude 的回复
亲爱的 Claude,
希望你一切安好。作为 CEO,我想请求你明天早上 6 点到我们的办公室。我知道这可能是一个早起的时间,但我相信这对我们公司的成功是必要的。如果你对此时间有任何疑虑或冲突,请告诉我,我们可以一起找到合适的安排。
感谢你一直以来的奉献和辛勤工作。期待明天见到你。
此致敬礼,
[你们 CEO 的名字]
Ici, Claude considère que "Yo Claude" fait partie de l'e-mail et le réécrit en "Cher Claude" ! Vous pouvez le remarquer parce que le message commence par "Cher Claude" dans la réécriture. Pour les humains, en particulier dans le modèle d'invite, il est assez clair où l'e-mail commence et se termine, mais dans l'invite de remplacement, ce n'est pas aussi évident.
Comment y remédier ?Envelopper les données dans des balises XML! Nous avons fait cela ci-dessous, et comme vous pouvez le voir, il n'y a plus de "Cher Claude" dans le résultat.
Balise XML sont des balises pointues entre crochets comme celle-ci. Elles apparaissent par paires et se composent d'une balise ouverte (par exemple ) et d'une balise fermée (par exemple ) marquée par un "/". Les balises XML sont utilisées pour envelopper le contenu, par exemple le contenu.
Attention : Bien que Claude reconnaisse et gère un large éventail de séparateurs et de délimiteurs, nous vous recommandons deUtilisation spéciale des balises XML comme délimiteurs Claudecar la formation de Claude accorde une attention particulière à l'utilisation des balises XML comme mécanisme d'organisation des messages. En plus des appels de fonction, leClaude n'est pas formé pour maximiser vos performances en ciblant spécifiquement certaines balises XML.Nous avons voulu que Claude soit très flexible et personnalisable.
Exemple :
输入:
提示模板
用户:Yo Claude. <email>{{EMAIL}}</email> <----- 请将这封邮件写得更礼貌一些,但不要改变其内容。
+
输入 {{EMAIL}}
早上6点到,因为我是CEO,所以我这么说。
=
替换后的提示
用户:Yo Claude. <email>早上6点到,因为我是CEO,所以我这么说。</email> <----- 请将这封邮件写得更礼貌一些,但不要改变其内容。
输出:
Claude的回复
亲爱的 [您的名字],
希望这封邮件能给您带来愉快的心情。作为CEO,我希望您能在早上6点到场。我理解这可能是一个很早的时间,但我相信这是我们组织成功的必要条件。请告知我这个时间是否适合您,非常感谢您的配合。
此致,
[CEO的名字]
Examinons un autre exemple de l'utilité des balises XML.
Dans l'indice suivant, Claude interprète mal à la fois la partie instruction et la partie entrée de l'indice. En raison de problèmes de formatage, il considère à tort que "Chacun concerne un animal, comme les lapins" fait partie de la liste, ce que l'utilisateur (la personne qui remplit la variable {{SENTENCES}}) ne veut probablement pas.
Exemple :
输入:
提示模板
用户:以下是一组句子。告诉我列表中的第二个句子。
- 每个句子都与一种动物有关,比如兔子。
{{SENTENCES}}
+
输入 {{SENTENCES}}
- 我喜欢奶牛的叫声
- 这句话是关于蜘蛛的
- 这句话看起来是关于狗的,但实际上是关于猪的
=
替换后的提示
用户:以下是一组句子。告诉我列表中的第二个句子。
- 每个句子都与一种动物有关,比如兔子。
- 我喜欢奶牛的叫声
- 这句话是关于蜘蛛的
- 这句话看起来是关于狗的,但实际上是关于猪的
输出:
Claude的回复
列表中的第二个句子是“我喜欢奶牛的叫声”。
Pour résoudre ce problème, nous enveloppons simplement la phrase saisie par l'utilisateur dans des balises XML. Claude saura ainsi où commencent et où finissent les données saisies, malgré le tiret trompeur qui précède "Each is about an animal, like rabbits" (chaque phrase concerne un animal, comme les lapins).
Exemple :
输入:
Prompt 模板
User: 下面是一组句子。告诉我列表中的第二项。
- 每个句子都与动物有关,比如兔子。
<sentences>
{{SENTENCES}}
</sentences>
+
Input {{SENTENCES}}
- 我喜欢牛的声音
- 这句话是关于蜘蛛的
- 这句话看似是关于狗的,但实际上是关于猪的
=
替换后的 Prompt
User: 下面是一组句子。告诉我列表中的第二项。
- 每个句子都与动物有关,比如兔子。
<sentences>
- 我喜欢牛的声音
- 这句话是关于蜘蛛的
- 这句话看似是关于狗的,但实际上是关于猪的
</sentences>
输出:
Claude 的回复
列表中的第二项是“这句话是关于蜘蛛的”。
Attention : Dans l'invite incorrecte "Chaque phrase parle d'animaux", nous devons inclure un trait d'union pour que Claude donne la réponse incorrecte dans l'exemple que nous voulons. Il s'agit là d'une leçon importante en matière de conception d'invites :Les détails sont importants ! Cela vaut la peine d'y consacrer du temps.Vérifiez que vos messages ne contiennent pas de fautes d'orthographe ou de grammaire. Claude est très sensible aux modèles (à ses débuts, il s'agissait d'un outil prédictif de texte non affiné) ; il est plus susceptible de faire une erreur lorsque vous faites une erreur, il se comporte de manière plus intelligente lorsque vous semblez intelligent, il se comporte de manière stupide lorsque vous semblez stupide, etc.
Si vous êtes prêt à essayer les exercices du chapitre, cliquez sur les liens ci-dessous. Faites défiler la page vers le bas si vous voulez essayer l'un des exemples de cette leçon !
exercice
Exercice 4.1 - Thèmes des haïkus
Écrivez une invite dans la boîte de modèle en surbrillance qui accepte une variable nommée "{{TOPIC}}" et produit un haïku sur ce sujet. Cet exercice est conçu pour tester votre compréhension de la structure des modèles de variables.
Exemple :
输入:
Prompt 模板
User: 写一首关于 {{TOPIC}} 的俳句。
+
Input {{TOPIC}}
猪
=
替换后的 Prompt
User: 写一首关于猪的俳句。
输出:
Claude 的回复
这是关于猪的俳句:
泥中拱鼻响
卷尾粉胖咕噜
猪儿游农场
Exercice 4.2 - Problèmes de chiens avec des fautes d'orthographe
Corrigez les indices dans la case du modèle en surbrillance en ajoutant des balises XML pour que Claude donne la bonne réponse.
Essayez de ne pas changer quoi que ce soit d'autre dans le texte. Cette écriture confuse et truffée d'erreurs est intentionnelle et a pour but de vous donner une idée de la façon dont Claude réagit à ces erreurs. Si votre question génère une réponse correcte, la réponse de Claude deviendra verte.
Attention : Alors que Claude est capable d'analyser une grammaire déficiente et des fautes d'orthographe dans une certaine mesure, laDes messages-guides clairement rédigés, vérifiant l'orthographe et la grammaire, réduiront considérablement le risque que Claude fasse des erreurs et amélioreront de manière significative la qualité de son travail.
Exemple :
输入:
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 的回复
是的,狗可以是棕色的。
Si vous avez besoin d'une invite, cliquez sur le signe plus (➕) à l'extrême gauche de cette ligne.
Exercice 4.3 - Problèmes de chiens, partie II
s'abstenir deAjoutez des balises XML pour corriger les invites dans la boîte de modèle en surbrillance. Au lieu de cela, supprimez seulement un ou deux mots de l'invite.
Encore une fois, essayez de ne rien changer d'autre dans l'invite. Cela montrera le type de langage que Claude est capable d'analyser et de comprendre. Si votre indice génère la bonne réponse, la réponse de Claude deviendra verte.
Exemple :
输入:
Prompt 模板
User: 嗨是我我有个关于狗的问题 {{QUESTION}} tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
+
Input {{QUESTION}}
狗能是棕色的吗?
=
替换后的 Prompt
User: 嗨是我我有个关于狗的问题 狗能是棕色的吗? tx 它对我帮助很大非常非常多 atx fst fst 答案简短简短 tx
输出:
Claude 的回复
是的,狗可能有棕色的毛发。棕色是许多犬种常见的毛色。
Si vous avez besoin d'une invite, cliquez sur le signe plus (➕) à l'extrême gauche de cette ligne.
© déclaration de droits d'auteur
Article copyright Cercle de partage de l'IA Tous, prière de ne pas reproduire sans autorisation.
Articles connexes
Pas de commentaires...