提示工程
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 的高效和高級技術、集成和實現。
- 提示庫:從精選的各種任務和用例提示中獲得靈感。