AI Personal Learning
und praktische Anleitung
讯飞绘镜

Anthropic Hints Engineering Course - Kapitel 9 Übung: Programmierung komplexer Hinweise

Übung

In dieser Übung werden wir einen neuen Satz von Regeln für eineProgrammierhilfe und Lernroboter, die in der Lage sind, den Code zu lesen und gegebenenfalls Korrekturen vorzunehmenSchreiben Sie die Prompts. Füllen Sie jedes der gelben Kästchen unten mit Aufforderungselementen aus, die den Beschreibungen und Beispielen im vorherigen Beispiel für komplexe Aufforderungen entsprechen. Wenn Sie alle gelben Kästchen ausgefüllt haben, sehen Sie das endgültige Prompt im lilafarbenen Kästchen am unteren Rand zusammengefügt.

Wir empfehlen Ihnen, ganz nach unten zu scrollen, um zu sehen, welche erwarteten Eingaben Sie berücksichtigen müssen (einschließlich der Angabe von {{VARIABLE_WORD}}). Achten Sie darauf, dieses {{VARIABLE_WORD}} direkt in der Eingabeaufforderung zu referenzieren, damit der tatsächliche Variableninhalt eingesetzt werden kann.


Queue-Element Beschreibungen typisches Beispiel Hinweis
1. die Formatierung "Benutzer:" Verwenden Sie "User:" am Anfang der CLAUDEMESSAGES()-Eingabeaufforderung. Benutzer. Dies ist obligatorisch! Fügen Sie in CLAUDEMESSAGES() eine neue Zeile in der Claude Wenn Sie dazu aufgefordert werden, müssen Sie mit diesem Satz beginnen.
2) Kontext der Mission Nennen Sie Claude die Rolle, die er spielen soll, oder das Ziel der Aufgabe, die er erfüllen soll. Sie sind Codebot, ein Assistent, der hilft, Codeprobleme zu erkennen und Verbesserungen vorzuschlagen. Es ist am besten, den Kontext der Aufgabe zu Beginn des Textes der Aufforderung anzugeben.
3. tonaler Kontext (fakultativ) Wenn es für die Interaktion wichtig ist, sagen Sie Claude, in welchem Ton er sprechen soll. Handeln Sie als sokratischer Tutor, um den Nutzern beim Lernen zu helfen. Je nach den Anforderungen des Einsatzes ist dieses Element möglicherweise nicht erforderlich.
4. ausführliche Missionsbeschreibung und Regeln Erläutern Sie die spezifischen Aufgaben, die Claude erfüllen soll, und die Regeln, die er befolgen muss, und geben Sie Claude auch die Möglichkeit, zu kündigen". "Sie erhalten einen vom Benutzer bereitgestellten Code. Bitte gehen Sie wie folgt vor:
1) Identifizieren Sie alle Probleme im Code. Jedes Problem sollte in einem separaten <issues> Tagged in.
2. die Benutzer auffordern, überarbeiteten Code zu schreiben, um das Problem zu beheben".
Es ist eine gute Idee, diese Beschreibung und die Regeln einem Freund zu zeigen, um sicherzustellen, dass die Logik klar und gut definiert ist.
5 Beispiele Geben Sie mindestens ein Beispiel für eine ideale Reaktion, die Claude mit Hilfe der <example></example> XML-Tags umgeben es. "Dies ist ein Beispiel:
<example>
<code>
def kreis_flaeche_berechnen(radius).
Rückgabe (3,14 * Radius) ** 2
</code>
<issues>
<issue> 3,14 ist quadriert, obwohl eigentlich nur der Radius quadriert werden sollte.<issue>
</issues>
<response> Das ist fast richtig, aber es gibt ein Problem mit der Reihenfolge der Operationen. Sie können die Kreisformel ausschreiben und sich dann die Klammern im Code genau ansehen.<response>
</example>
Beispiele sind das wirksamste Mittel, um Claude dazu zu bringen, mit dem erwarteten Verhalten zu arbeiten. Enthält häufige Grenzfälle. Mehr Beispiele = zuverlässigere Antwort, aber zusätzliche Latenzzeit und Token. der Einfachheit halber wird hier nur ein Beispiel gegeben.
6. die Verarbeitung der Eingangsdaten ausnutzen {{CODE}} gibt den Code an, den Claude verarbeiten soll. Denken Sie daran, ihn mit XML-Tags zu umgeben. "Hier ist der Code, den Sie analysieren werden:
<code>
{{CODE}}
</code>
Dieses Element kann je nach den Anforderungen der Aufgabe variieren. Wenn die Eingabedaten lang sind, ist es am besten, sie vor die Anweisung zu setzen.
7. unmittelbare Beschreibung des Auftrags oder des Ersuchens "Erinnern" Sie Claude oder sagen Sie Claude ausdrücklich, was er tun muss, um die aufgeforderte Aufgabe zu erledigen. Ermitteln Sie relevante Fragen und verfassen Sie eine Antwort im Stil eines sokratischen Tutors. Geben Sie dem Nutzer nicht zu viel Hilfe! Geben Sie ihnen stattdessen eine Anleitung und lassen Sie sie selbst die richtige Lösung finden. Es ist besser, diesen Abschnitt am Ende einer längeren Eingabeaufforderung zu platzieren. In der Regel ist es am besten, die Anfrage des Benutzers am Ende der Eingabeaufforderung zu platzieren.
8. vorbereitende Reflexionsschritte (optional) Bei mehrstufigen Aufgaben ist es eine gute Idee, Claude zu sagen, dass er Schritt für Schritt denken soll, bevor er eine Antwort gibt. Nicht alle Aufforderungen erfordern diesen Schritt. Er verbessert die Intelligenz der Antwort, aber er verlängert auch die Antwortzeit.
9. die Formatierung der Ausgabe (optional) Wenn Sie möchten, dass Claude die Ergebnisse in einem bestimmten Format zurückgibt, teilen Sie ihm dieses Format ausdrücklich mit. Stellen Sie jede Frage in der <issue> Tag und platzieren Sie die endgültige Antwort in der <response> Tagged in. Dieses Element kann je nach den Anforderungen der Mission variieren.
10. vorausgefüllte Antwort von Claude (falls erforderlich) Stellen Sie ein Feld zur Verfügung, in das Sie Claudes Antwort eintragen können, um sein Verhalten oder seine Reaktion zu steuern. Wenn Sie die Antwort von Claude vorausfüllen möchten, müssen Sie "Assistent:" einfügen, und es muss eine neue Zeile sein, da es sonst als Teil von "Benutzer:" behandelt wird (wir erledigen diesen Schritt automatisch für Sie). Wenn Sie das Ausfüllen nicht benötigen, können Sie "Assistent:" weglassen.

Nun wollen wir alles zusammenfügen, die Ersetzungen vornehmen und sehen, wie es tatsächlich aussieht!

Tipp: Wenn Sie den gesamten Tipp sehen möchten, können Sie die Option pornografische Kopieren Sie die ersetzte Cue-Box und fügen Sie sie in einen Texteditor ein.

Prompt-Vorlage (von oben zusammengefügt)

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

Eingabe {{CODE}}

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

Hinweise zum Spleißen und Ersetzen

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> 标签中。

Antwort von 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>
Darf nicht ohne Genehmigung vervielfältigt werden:Leiter des AI-Austauschkreises " Anthropic Hints Engineering Course - Kapitel 9 Übung: Programmierung komplexer Hinweise
de_DEDeutsch