Prefill Claude's response
在使用 Claude 時,您有獨特的能力可以通過預填 Assistant
消息來引導其回應。這個強大的技術允許您指導 Claude 的行動,控制輸出格式,甚至可以幫助 Claude 在角色扮演場景中保持角色。在某些情況下,如果 Claude 的表現不如預期,幾句預填的句子就可以大大提高 Claude 的表現。
查看我們的部落格文章 Long context prompting for 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 inches wide”, “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 的高效和高級技術、集成和實現。
- 提示庫:從精選的各種任務和用例提示中獲得靈感。