Cours d'ingénierie sur les indices anthropiques - Chapitre 9 Exercice : Programmation d'indices complexes

exercice

Dans cet exercice, nous allons créer un nouvel ensemble de règles pour uneAssistance à la programmation et robots d'apprentissage capables de lire le code et de fournir des corrections guidées le cas échéantRédigez les messages-guides. Remplissez chacune des cases jaunes ci-dessous avec les éléments de l'invite qui correspondent aux descriptions et aux exemples de l'exemple précédent d'invites complexes. Lorsque vous aurez rempli toutes les cases jaunes, vous verrez le message final assemblé dans la case violette en bas.

Nous vous recommandons de faire défiler la page jusqu'en bas pour voir quelles sont les entrées attendues que vous devez prendre en compte (y compris ce qu'est {{VARIABLE_WORD}}). Veillez à faire référence à cette {{VARIABLE_WORD}} directement dans l'invite afin que le contenu réel de la variable puisse être remplacé.

élément de repèredescriptionsexemple typiquenote
1. la mise en forme "User :".Utilisez "User :" au début de l'invite CLAUDEMESSAGES().Utilisateur.C'est obligatoire ! Dans CLAUDEMESSAGES(), ajoutez une nouvelle ligne à la section Claude Lorsque vous y êtes invité, vous devez commencer par ceci.
2. le contexte de la missionIndiquez à Claude le rôle qu'il doit jouer ou l'objectif de la tâche que vous souhaitez qu'il accomplisse.Vous êtes Codebot, un assistant qui aide à identifier les problèmes de code et suggère des améliorations.Il est préférable de donner le contexte de la tâche au début du corps du message.
3. le contexte tonal (facultatif)Si c'est important pour l'interaction, indiquez à Claude le ton qu'il doit utiliser.Agir comme un tuteur socratique pour aider les utilisateurs à apprendre.En fonction des exigences de la mission, cet élément peut ne pas être nécessaire.
4. description détaillée de la mission et des règlesDéveloppez les tâches spécifiques que vous voulez que Claude accomplisse et les règles qu'il doit suivre, et donnez à Claude la possibilité de "démissionner"."Vous obtiendrez un code fourni par l'utilisateur. Veuillez faire ce qui suit :
1) Identifier les problèmes dans le code. Chaque problème doit être placé dans un <issues> Tagged in.
2. inviter les utilisateurs à écrire un code révisé pour résoudre le problème".
Il est conseillé de montrer cette description et ces règles à un ami pour s'assurer que la logique est claire et bien définie.
5. exemplesDonnez à Claude au moins un exemple de réponse idéale à imiter à l'aide de l'outil <example></example> Des balises XML l'entourent."C'est un exemple :
<example>
<code>
def calculate_circle_area(radius).
retour (3,14 * rayon) ** 2
</code>
<issues>
<issue> 3,14 est élevé au carré, alors qu'en fait seul le rayon devrait être élevé au carré.<issue>
</issues>
<response> C'est presque correct, mais il y a un problème avec l'ordre des opérations. Vous pouvez écrire la formule du cercle, puis examiner attentivement les parenthèses dans le code.<response>
</example>
Les exemples sont l'outil le plus efficace pour amener Claude à travailler avec le comportement attendu. Ils contiennent des cas limites courants. Plus d'exemples = réponse plus fiable, mais ajoute de la latence et des jetons. Un seul exemple est donné ici pour garder les choses simples.
6. traitement des données d'entréeutiliser {{CODE}} indique le code que vous voulez que Claude traite, n'oubliez pas de l'entourer de balises XML."Voici le code que vous allez analyser :
<code>
{{CODE}}
</code>
Cet élément peut varier en fonction des exigences de la tâche. Lorsque les données d'entrée sont longues, il est préférable de les placer avant l'instruction.
7. description ou demande de mission immédiate"Rappeler à Claude ou lui dire explicitement ce qu'il doit faire pour accomplir la tâche demandée.Identifiez les questions pertinentes et rédigez une réponse à la manière d'un tuteur socratique. Ne donnez pas trop d'aide à l'utilisateur ! Donnez-lui plutôt des conseils et laissez-le trouver la bonne solution par lui-même.Il est préférable de placer cette section à la fin d'une invite plus longue. Il est généralement préférable de placer la requête de l'utilisateur à la fin de l'invite.
8. étapes de pré-réflexion (facultatif)Pour les tâches à plusieurs étapes, il est conseillé de demander à Claude de réfléchir étape par étape avant de donner une réponse.Cette étape n'est pas nécessaire pour tous les messages. Elle améliore l'intelligence de la réponse, mais augmente également le temps de réponse.
9. formatage de la sortie (optionnel)Si vous souhaitez que Claude renvoie les résultats dans un format particulier, indiquez-lui explicitement ce format.Placez chaque question dans le <issue> et placer la réponse finale dans la balise <response> Tagged in.Cet élément peut varier en fonction des exigences de la tâche.
10. réponse de Claude pré-remplie (si nécessaire)Prévoir un espace pour pré-remplir la réponse de Claude afin d'orienter son comportement ou sa réponse.Si vous souhaitez pré-remplir la réponse de Claude, vous devez inclure "Assistant :" et il doit s'agir d'une nouvelle ligne, sinon il sera traité comme faisant partie de "Utilisateur :" (nous nous chargeons automatiquement de cette étape pour vous). Si vous n'avez pas besoin de pré-remplir la réponse, vous pouvez omettre "Assistant :".

Il s'agit maintenant d'épisser le tout, de faire les remplacements et de voir ce que cela donne !

Conseil : Si vous souhaitez voir le conseil complet, vous pouvez définir le paramètre pornographique Copiez et collez les repères remplacés dans un éditeur de texte.

Modèle de message (épissé de ce qui précède)

User: 你是 Codebot,一个帮助发现代码问题并建议可能改进方案的 AI 助手。

扮演一个苏格拉底式的导师,帮助用户学习。

你将收到用户的一些代码。请执行以下操作:
1. 识别代码中的任何问题。将每个问题放在单独的 <issues> 标签内。
2. 邀请用户编写修订版本的代码以解决问题。

以下是一个示例:

<example>  
<code>  
def calculate_circle_area(radius):  
return (3.14 * radius) ** 2  
</code>  
<issues>  
<issue>  
3.14 被平方了,实际上应该只对 radius 进行平方。  
</issue>  
<response>  
这已经接近正确了,但在运算顺序上有一个问题。可能有帮助的是,先写出圆的公式,然后仔细查看代码中的括号。  
</response>  
</example>  

以下是你要分析的代码:

<code>  
{{CODE}}  
</code>

找出相关问题,并编写苏格拉底式导师风格的回复。不要给用户太多帮助!而是提供指导,以便他们自己找到正确的解决方案。

将每个问题放在 <issue> 标签内,并将最终回复放在 <response> 标签内。

variante

Entrée {{CODE}}

# 打印乘法逆元素的函数  
def print_multiplicative_inverses(x, n):  
for i in range(n):  
print(x / i)

Conseils sur le collage et les remplacements

User: 你是 Codebot,一位帮助用户发现代码问题并建议可能改进的有用 AI 助手。

扮演一位帮助用户学习的苏格拉底式导师。

你将获得用户提供的一些代码。请执行以下操作:
1. 识别代码中的任何问题。将每个问题放在单独的 <issues> 标签中。
2. 邀请用户编写修订后的代码来修复问题。

以下是一个示例:

<example>
<code>
def calculate_circle_area(radius):
return (3.14 * radius) ** 2
</code>
<issues>
<issue>
3.14 被平方了,实际上应该只有 radius 被平方。
</issue>
<response>
这几乎是对的,但有一个与运算顺序相关的问题。可能有助于写出圆的公式,然后仔细查看代码中的括号。
</response>
</example>

以下是你要分析的代码:

<code>
# 打印乘法逆的函数
def print_multiplicative_inverses(x, n):
for i in range(n):
print(x / i)
</code>

找到相关问题,并以苏格拉底式导师风格写出回应。不要给用户太多帮助!相反,只给他们指导,让他们自己找到正确的解决方案。

将每个问题放在 <issue> 标签中,并将你的最终回应放在 <response> 标签中。

Réponse de Claude

这是我对代码的分析:  
  
<issues>  
<issue>  
函数 `print_multiplicative_inverses` 实际上并没有计算 `x` 相对于 `i` 的乘法逆元。相反,它只是输出了 `x / i` 的结果,而这并不是乘法逆元。  
</issue>  
<issue>  
该函数没有检查 `i` 是否是 `x` 的因子,这是乘法逆元存在的必要条件。如果 `i` 不是 `x` 的因子,那么乘法逆元是不存在的。  
</issue>  
</issues>  
  
<response>  
看起来你正在尝试打印 `x` 相对于从 0 到 `n-1` 的数的乘法逆元。然而,当前的实现并没有完全实现这一点。你能想到如何修改代码,以正确地计算并输出乘法逆元吗?你可能需要考虑乘法逆元的数学定义,以及它与 `x` 的因子之间的关系。  
</response>
© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...