查看我們的部落格文章 Long context prompting for Claude 2.1 以了解高效預填的示例。


為什麼要預填 Claude 的回應?

預填 Claude 的回應提供了幾個關鍵優勢:

  1. 增加可控性:通過提供一些初始文本讓 Claude 繼續,您可以將 Claude 的回應引導到所需的方向。當您希望 Claude 專注於特定主題、生成特定類型的內容或以特定方式行事時,這一點尤其有用。
  2. 控制輸出格式:預填允許您指定希望 Claude 用於輸出的確切格式。在處理結構化數據格式(如 JSON 或 XML)時,這一點特別方便。有關更多詳細信息,請參閱我們的 控制輸出格式 指南。
  3. 保持角色一致性:在角色扮演場景中,預填 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 的高效和高級技術、集成和實現。
  • 提示庫:從精選的各種任務和用例提示中獲得靈感。