載入中

提示快取的規則

第 47 課10 分鐘

Claude 中的提示快取運作方式是儲存對訊息所做的計算工作,以便在後續請求中重複使用。這使得後續請求既更便宜又更快執行,但僅限於您重複發送相同內容的情況。

此流程遵循兩階段模式:初始請求寫入快取,而後續請求可以從中讀取。快取僅存活 5 分鐘,因此此功能在您於短時間內重複發送相同內容時最為有用。

快取點

提示快取並非自動啟用——您需要手動新增快取點訊息部分來控制要快取的內容。快取點會告訴 Claude 快取該點之前訊息中所有內容所做的工作。

以下是如何在使用者訊息中新增快取點:

python
user_message = {
  "role": "user",
  "content": [
    {"text": ""},
    {"cachePoint": {"type": "default"}}
  ]
}

關鍵規則是:快取點之前所有內容所做的工作將被快取,但快取點之後的任何內容都不會儲存在快取中。

快取點的運作方式

當您使用快取點發出初始請求時,Claude 會處理所有內容並儲存到該快取點為止所做的工作。在後續請求中,如果快取點之前的內容完全相同,Claude 會從快取中讀取先前處理過的工作,而不是重新處理它。

只有當快取點之前的內容完全相同時,才會使用快取。即使是像在提示開頭加上「請」這樣的小改動,也會阻止快取的使用,迫使 Claude 從頭處理所有內容。

跨訊息快取

快取點可以跨越多個訊息,甚至包括助手訊息。這意味著您可以快取到某個特定點為止的整個對話歷史。

例如,您可能有一個包含使用者訊息、助手回應,以及另一個使用者訊息的對話,並在結尾處設有快取點。整個對話串的所有處理工作都會被快取,並可以重複使用。

最小內容長度

內容必須至少有 1024 個 token 長才能被快取。這是您嘗試在快取點之前快取的所有訊息和部分的總和。

一個簡單的「Hi there!」訊息不會達到 1024 個 token 的最小值,因此不會有任何內容被快取。但如果您將「Hi there!」重複 500 次,那將超過 1024 個 token 並符合快取資格。

快取點位置

快取點不限於使用者訊息。您可以將它們新增到系統提示和工具定義中,這實際上是最常見的快取機會。

對於工具定義:

python
tools = [
  {"toolSpec": add_duration_to_datetime_schema},
  {"toolSpec": get_current_datetime_schema},
  {"cachePoint": {"type": "default"}}
]

對於系統提示:

python
system = [
  {"text": "You are a senior software..."},
  {"cachePoint": {"type": "default"}}
]

這些是最有價值的快取機會,因為系統提示和工具清單在請求之間很少改變,使它們成為快取的完美候選對象。