构建提示 |专业的 AI 工程师教你写 Claude 的提示词(2)
✨ 介绍一些构建提示的有用方法。 
本文翻译、整理自 AI 工程师给出的在 Claude 写提示词的系统介绍文档。
 
———— 下为正文 ————
 
对于简单的任务,简单明了地写几句话通常就足以获得所需的响应。
但是,对于打算使用大量或多种不同输入运行的复杂任务或流程,您需要更仔细地考虑如何构建提示。这样做将大大增加 Claude 始终如一地按照您想要的方式执行这些任务的可能性。
 
在这篇文章中,我们将引导你逐步构建这些复杂的提示之一。虽然我们的示例是为了执行特定任务而编写的,但我们还旨在展示良好的提示技术,这将有助于跨用例。
 
1. 使用正确的格式
通过 API 提示 Claude 时,使用正确的 \n\nHuman: 和 \n\nAssistant: 格式非常重要。
Claude 被训练成一名对话代理,使用这些特殊的标记来标记谁在说话。 \n\nHuman: (你)提出问题或给出指示, \n\nAssistant: (Claude)做出回应。
因此,我们可以开始像这样编写提示:
我们将在这两个标记周围和之间填充实际的提示文本。
 
2.很好地描述任务
在描述任务时,最好为 Claude 提供尽可能多的背景和细节,以及正确完成任务的任何规则。
Claude 就像是第一天上班的实习生。克劳德和那个实习生一样,很想帮助你,但对你、你的组织或任务还不了解。如果您提供清晰、明确的说明以及所有必要的细节,那么它更有可能满足您的期望。
在我们的示例中,我们将要求 Claude 帮助我们从给定文本中删除任何个人身份信息。
我们可以尝试使用这个提示:
以下是一些响应示例:
如果我们只想以任何方式删除 PII(尽管它漏掉了一个名称),那么此提示就可以正常工作。对于少量文本来说可能已经足够了,可以在处理后手动检查以纠正错误。
但是,如果我们需要 Claude 以特定格式进行响应,并通过各种输入一遍又一遍地正确执行任务,那么我们应该在提示中添加更多详细信息:
在这个修订版的提示中,我们:
• 提供上下文(例如为什么我们希望完成任务)
• 定义术语(PII = 姓名、电话号码、地址)
• 给出有关 Claude 应如何完成任务的具体细节(将 PII 替换为 XXX) 一般来说,克劳德对您的请求了解的细节越多,就越能更好地预测正确的响应。
 
3. 标记提示的不同部分
像 <tag> 和 </tag> 这样的 XML 标记有助于划分提示的一些重要部分,例如规则、示例或要处理的输入文本。 Claude 经过微调,特别关注 XML 标签创建的结构。 在我们的示例中,我们可以使用 XML 标签来清楚地标记 Claude 需要去标识化的文本的开头和结尾。
💡 文本替换:通常,你的提示实际上是你想要反复使用的提示模板,其中说明保持不变,但你正在处理的文本随着时间的推移而变化。您可以将正在处理的变量文本的占位符(例如 {{TEXT}} )放入提示中,然后编写一些代码以将其替换为要在运行时处理的文本。
 
我们还可以要求 Claude 在其响应中使用 XML 标签。这样做可以轻松地在自动处理输出的设置中提取关键信息。 Claude 天生就很健谈,因此请求输出 XML 标记有助于将响应本身与 Claude 对响应的评论分开。
至此,该提示已经构建得相当好,并准备好使用各种输入进行测试。但是,如果 Claude 的某些测试失败,请考虑添加以下提示组件。
 
4. 示例(可选)
通过在提示中添加一些示例,你可以让 Claude 更好地了解如何正确执行任务。这并不总是需要的,但可以大大提高准确性和一致性。如果您确实添加了示例,最好使用 <example></example> 标签清楚地标记它们,以便将它们与您希望 Claude 处理的文本区分开来!
提供示例的一种方法是以先前对话的形式。给 Claude 时使用不同的对话分隔符,例如“ H: ”而不是“ Human: ”和“ A: ”而不是“ Assistant: ”使用此方法的示例。这有助于防止示例与对话中的其他回合混淆。
💡 为什么是H:和A:?
\n\nHuman: 和 \n\nAssistant: 是特殊标记,Claude 经过训练可以将其识别为谁在说话的指示符。当您不打算让克劳德“相信”实际发生的对话时使用这些标记可能会导致提示效果不佳。
 
另一种给出示例的方法是直接提供示例:
决定哪种方法更有效是很微妙的,并且可能取决于手头的具体任务。我们建议你针对你的用例尝试这两种方法,看看哪一种能产生更好的结果。
 
5. 疑难病例(可选)
如果您可以预见 Claude 在您的输入中可能遇到的困难或不寻常的情况,请在提示中描述它们,并告诉 Claude 遇到它们时该怎么做。
如果您在克劳德的回答中发现偶尔但持续的失败,则此信息可能有助于添加到您的提示中。例如:
对于要求 Claude 查找特定信息的任务,我们特别建议为其提供说明,告诉其如果没有任何内容与输入中的描述相匹配,该怎么做。这可以帮助防止克劳德产生幻觉,即编造一些事情以便能够给出回应。
 
6. 系统提示(可选)
API 允许在第一个 \n\nHuman: 之前包含文本;这有时称为“系统提示”。然而,Claude 2.1 之外的 Claude 模型目前不会像处理对话轮中的文本那样强烈或准确地处理该位置的信息。通常最好将所有关键信息和说明放在提示的后 \n\nHuman: 部分,特别是如果您不使用 Claude 2.1。
如果您使用的是 Claude 2.1,我们鼓励您进行试验,看看针对您的特定用例,使用或不使用系统提示时性能有何不同。有关如何使用 Claude 正确设置系统提示格式的更多信息,请参阅我们有关如何使用系统提示的指南。
 
上一篇: 提示设计
下一篇:优化你的提示
 
2023-12-15
浏览145
Prompt engineering
登录后评论
评论
分享