预填充 Claude 的回复
在使用 Claude 时,您可以通过预填充 Assistant
消息来引导其回复,这是一项独特的能力。这个强大的技术可以让您指导 Claude 的行为,控制输出格式,甚至可以在角色扮演场景中帮助 Claude 保持角色。在某些情况下,如果 Claude 的表现不如预期,几句预填充的句子就可以大大提高 Claude 的表现。
查看我们的博客文章 Claude 2.1 的长上下文提示,了解高效预填充的示例。
为什么要预填充 Claude 的回复?
预填充 Claude 的回复有以下几个主要好处:
- 增强可控性:通过提供一些初始文本供 Claude 继续,您可以将 Claude 的回复引导到所需的方向。当您希望 Claude 专注于特定主题、生成特定类型的内容或以特定方式行事时,这一点尤其有用。
- 控制输出格式:预填充允许您指定希望 Claude 使用的确切输出格式。在处理 JSON 或 XML 等结构化数据格式时,这一点尤其方便。有关更多详细信息,请参阅我们的控制输出格式指南。
- 保持角色一致性:在角色扮演场景中,预填充 Claude 的回复可以帮助 Claude 在整个长对话中保持角色。通过在
Assistant
消息中持续提醒 Claude 其角色,您可以更好地确保 Claude 保持所需的角色。查看保持 Claude 的角色了解更多详情。
如何预填充 Claude 的回复
要预填充 Claude 的回复,只需在发出 API 请求时在 Assistant
消息中包含所需的初始文本即可。下面是一个示例提示:
角色 | 好的提示 |
---|---|
User | 请从此产品描述中提取名称、尺寸、价格和颜色,并将其输出到 JSON 对象中。 <description>SmartHome Mini 是一款紧凑型智能家居助手,有黑色和白色可选,售价仅为 $49.99。它宽度只有 5 英寸,可让您通过语音或应用程序控制灯光、恒温器和其他连接设备,无论您将它放在家中何处。这个价格实惠的小型集线器为您的智能设备带来方便的免提控制。</description> |
Assistant (预填充) | { |
在此示例中,通过以 {
开始 Assistant
消息,我们将 Claude 的输出限制为请求的 JSON 模式的其余部分。
角色 | 回复 |
---|---|
Assistant (Claude 的回复) | “name”: “SmartHome Mini”, “size”: “宽 5 英寸”, “price”: “$49.99”, “colors”: [ “black”, “white” ] } |
以下是如何在 Messages API 格式的代码中编写上述提示:
Python
import anthropic
client = anthropic.Anthropic(
# 默认为 os.environ.get("ANTHROPIC_API_KEY")
api_key="my_api_key",
)
message = client.messages.create(
model="claude-2.1",
max_tokens=1000,
temperature=0,
messages=[
{
"role": "user",
"content": "请从此产品描述中提取名称、尺寸、价格和颜色,并将其输出到 JSON 对象中。\n\n<description>SmartHome Mini 是一款紧凑型智能家居助手,有黑色和白色可选,售价仅为 $49.99。它宽度只有 5 英寸,可让您通过语音或应用程序控制灯光、恒温器和其他连接设备,无论您将它放在家中何处。这个价格实惠的小型集线器为您的智能设备带来方便的免提控制。\n</description>"
}
{
"role": "assistant",
"content": "{"
}
]
)
print(message.content)
其他资源
- 提示工程技术:探索其他优化提示和增强 Claude 性能的策略。
- Anthropic Cookbook:浏览一系列 Jupyter notebook,其中包含可复制的代码片段,展示了使用 Claude 的高效和高级技术、集成和实现。
- 提示库:从精选的各种任务和用例提示中获得灵感。