示例是增强 Claude 性能和引导其生成所需输出的最强大工具之一。通过在提示中提供一些精心设计的示例,您可以显著提高 Claude 响应的准确性、一致性和质量。这种技术对于高度详细或需要结构化输出或遵循特定格式的任务特别有效。

这种技术也被称为 few-shot prompting(如果只提供一个示例,则称为 one-shot prompting)。


为什么要使用示例?

示例可作为 Claude 的学习工具,准确演示您期望的输出类型。它们通常比简单地描述或提供说明更有效,因为它们允许 Claude 概括模式并将其应用于新的输入。就像人类通常通过观察和模仿来学习一样,Claude 可以通过研究相关示例快速掌握所需的行为。

以下是在提示中使用示例的一些主要好处:

  • 提高准确性: 示例可帮助 Claude 准确理解您的需求,减少误解或不相关响应的可能性。
  • 增加一致性: 通过为 Claude 提供要遵循的模板,示例可确保响应在不同输入中保持一致的结构和风格。
  • 提高性能: 精心选择的示例可以显著提高 Claude 处理复杂或细微差别任务的能力,因为它可以从示例中演示的模式和逻辑中学习。

创建有效的示例

为了充分利用提示中的示例,请考虑以下关于如何提供最有效示例的指南:

  • 相关性: 确保您的示例与您期望 Claude 处理的输入和输出类型密切相关。示例与实际用例越相似,Claude 的表现就越好。
  • 多样性: 包括涵盖不同场景、边缘情况和潜在挑战的各种示例。这有助于 Claude 更好地概括并处理更广泛的输入。
  • 清晰性: 使您的示例清晰、简洁且易于理解。使用格式标签(如 <example>)来构建示例并将其与提示的其余部分区分开来。在可能的情况下,给 Claude 提供关于它将遇到的示例类型的上下文(例如,“以下是正确的 APA 引文示例”或”以下是我写过的一些电子邮件示例”)。
  • 数量: 虽然没有最佳示例数量的硬性规定,但建议至少提供 3-5 个示例作为起点,为 Claude 提供坚实的基础。如果 Claude 的性能不符合您的期望,您可以随时添加更多有针对性的示例。

要提供示例,只需将它们包含在提示中,并将它们与实际任务明确区分开来。我们建议使用 <example></example> 标签来包装示例,使 Claude 可以轻松区分示例和提示的其余部分。

以下是一个演示如何使用示例来引导 Claude 响应的提示:

角色内容
用户我将给你一些引用。请从引用块中提取作者。

这里有一个例子:
<example>
引用:
“当推理思维一次又一次地被迫面对不可能时,它别无选择,只能适应。”
― N.K. Jemisin,《第五季》
作者:N.K. Jemisin
</example>

引用:
“一些人类理论认为,智慧物种在扩展到外太空之前就会灭绝。如果他们是正确的,那么夜空的寂静就是坟墓的沉默。”― Ted Chiang,《呼吸》
作者:
Assistant(Claude 的响应)Ted Chiang

在此提示中,示例为 Claude 提供了如何从给定引用中提取作者姓名的指导,使 Claude 可以轻松地在新输入上复制该过程。


格式化输出

示例对于需要结构化或格式化输出的任务特别有效。有时,您可以简单地包含所需输出格式的几个示例,而不是提供分步格式说明(尽管我们建议将说明和示例一起使用,因为这可能比没有说明的示例更有效)。

假设您希望 Claude 从给定文本中提取姓名和职业,并将它们格式化为列表。以下是您如何使用示例提示 Claude:

角色内容
用户<example>
文本:Sarah Martinez 是一位敬业的护士,以其在当地医院的悲悯关怀而闻名。David Thompson 是一位创新的软件工程师,孜孜不倦地从事开创性的项目。
输出:
1. Sarah Martinez [护士]
2. David Thompson [软件工程师]
</example>

<example>
文本:厨师 Oliver Hamilton 以其农场到餐桌的餐厅改变了烹饪界。就在街道的尽头,您会发现图书馆,馆长 Elizabeth Chen 一直在努力创造一个欢迎所有人的空间。
输出:
1. Oliver Hamilton [厨师]
2. Elizabeth Chen [图书馆员]
</example>

文本:在镇上熙熙攘攘的农贸市场,您会找到 Laura Simmons,一位以美味农产品而闻名的热情有机农民。在社区中心,Kevin Alvarez 是一位熟练的舞蹈教师,为各个年龄段的人们带来了运动的乐趣。
输出:
Assistant(Claude 的响应)1. Laura Simmons [有机农民]
2. Kevin Alvarez [舞蹈教师]

通过观察这些示例,Claude 学会了以所需的样式提取相关信息并将其格式化为带有姓名和职业的编号列表。


注意事项

虽然示例非常强大,但重要的是要注意潜在的陷阱。Claude 有时可能会从您的示例中提取意外的模式,导致过度拟合或意外行为。

例如,如果您所有的示例电子邮件都以”Sincerely”结尾,Claude 可能会学会始终以这种方式签署它生成的电子邮件,即使它并不适用于每种情况。为了缓解这种情况,请确保您的示例多样化并能代表所需输出的全部范围。


迭代和改进

创建完美的示例集通常涉及迭代和改进。如果 Claude 的性能不完全符合您的期望,请考虑以下几点:

  • 分析输出: 寻找 Claude 响应中偏离您期望的模式。这可以帮助您确定示例可能不清楚或误导的地方,或者更多示例可能有帮助的地方。
  • 添加更多示例: 如果 Claude 在某些类型的输入上存在困难,请提供专门解决这些场景的其他示例。
  • 修改现有示例: 有时,即使对示例进行小的调整也可以产生很大的影响。尝试不同的措辞、格式或结构,看看什么最有效。
  • 获得 Claude 的帮助: 编写好的示例很难!您可以要求 Claude 评估您的示例对于给定任务的多样性或相关性,或者在给定一组现有示例的情况下生成新的示例以供参考。

请记住,提示工程是一个迭代过程。如果您最初的示例没有产生完美的结果,请不要气馁——通过一些调整和实验,您将能够释放 Claude 的全部潜力,并为您的应用程序实现卓越的结果。


其他资源

  • 提示工程技术:探索优化提示和增强 Claude 性能的其他策略。
  • Anthropic Cookbook:浏览一系列 Jupyter 笔记本,其中包含可复制的代码片段,展示使用 Claude 的高效和高级技术、集成和实现。
  • 提示库:从精选的各种任务和用例提示中获得灵感。