3.Prompt engineering

保持清晰、直接和详细

Pasted image 20241129150048.png

Pasted image 20241129150120.png

使用示例(多示例提示)来引导Claude的行为

Pasted image 20241129150309.png

思维链

好的结构化提示技术
Pasted image 20241129151349.png

Pasted image 20241129151341.png

XML结构化提示词

XML提示: 使用像<instructions><example><formatting>这样的标签来清晰地分隔提示的不同部分。这可以防止Claude混淆指令与示例或上下文。

标签使用最佳实践

  1. 保持一致性:在整个提示中使用相同的标签名称,并在谈论内容时引用这些标签名称(例如,使用<contract>标签中的合同...)。
  2. 嵌套标签:对于层级内容,你应该嵌套标签<outer><inner></inner></outer>
    Pasted image 20241129153045.png

通过系统提示给Claude分配角色

Pasted image 20241129153557.png
就是设置系统提示词罢了。

预填充Claude的回复以获得更好的输出控制

import anthropic client = anthropic.Anthropic() response = client.messages.create( model="claude-3-5-sonnet-20241022", max_tokens=1024, messages=[ {"role": "user", "content": "你最喜欢的颜色是什么?"}, {"role": "assistant", "content": "作为一个AI助手,我没有最喜欢的颜色,但如果非要选择的话,我会选择绿色,因为"} # 在此处预填充 ] )

预填充就是

Note

要进行预填充,请在Assistant消息中包含所需的初始文本(Claude的回复将从Assistant消息结束的地方继续):

链式复杂提示以获得更强的性能

就是大任务划分为小任务,然后使用multiagent(prompt)来解决问题!

在处理复杂任务时,如果你试图在单个提示中处理所有内容,Claude有时可能会出现失误。思维链(CoT)提示很好,但如果你的任务有多个需要深入思考的不同步骤怎么办?

如何链接提示

  1. 识别子任务:将任务分解为不同的、连续的步骤。
  2. 使用XML构建清晰的交接:使用XML标签在提示之间传递输出。
  3. 设定单一任务目标:每个子任务应该有一个明确的单一目标。
  4. 迭代:根据Claude的表现改进子任务。

链式工作流程示例:

Note

优化提示:对于具有独立子任务的任务(如分析多个文档),创建单独的提示并并行运行以提高速度。

长文本提示技巧

https://docs.anthropic.com/zh-CN/docs/build-with-claude/prompt-engineering/long-context-tips
Pasted image 20241129155724.png