提示快取
提示快取可讓您減少在提示開始時具有相同內容的較長提示的整體要求延遲和成本。 在此內容中,「提示」 是指您在聊天完成要求中傳送至模型的輸入。 模型無法一次又一次地重新處理相同的輸入令牌,而是能夠保留已處理輸入數據的暫存快取,以改善整體效能。 提示快取不會影響模型響應中傳回的輸出內容,而無法降低延遲和成本。 針對支援的模型,快取的令牌會以 輸入令牌定價的 50% 折扣計費。
支援的模型
目前只有下列模型支援使用 Azure OpenAI 進行提示快取:
o1-preview-2024-09-12
o1-mini-2024-09-12
gpt-4o-2024-05-13
gpt-4o-2024-08-06
gpt-4o-mini-2024-07-18
API 支援
API 版本中 2024-10-01-preview
首次新增了提示快取的官方支援。 目前,只有 o1-preview-2024-09-12
和 o1-mini-2024-09-12
模型支援 cached_tokens
API 回應參數。
開始使用
若要讓要求利用提示快取,要求必須是兩者:
- 長度至少為1,024個令牌。
- 提示中的前 1,024 個令牌必須相同。
當在提示與提示快取的目前內容之間找到相符專案時,即稱為快取叫用。 快取點擊會在聊天完成響應中顯示為 cached_tokens
下方 prompt_token_details
。
{
"created": 1729227448,
"model": "o1-preview-2024-09-12",
"object": "chat.completion",
"service_tier": null,
"system_fingerprint": "fp_50cdd5dc04",
"usage": {
"completion_tokens": 1518,
"prompt_tokens": 1566,
"total_tokens": 3084,
"completion_tokens_details": {
"audio_tokens": null,
"reasoning_tokens": 576
},
"prompt_tokens_details": {
"audio_tokens": null,
"cached_tokens": 1408
}
}
}
在前 1,024 個令牌快取叫用之後,每 128 個額外的相同令牌就會發生一次。
前 1,024 個令牌中的單一字元差異會導致快取遺漏,其特性 cached_tokens
為 0。 默認會啟用提示快取,而不支援的模型不需要額外的設定。
什麼是快取?
o1 系列模型只是文字,且不支援系統訊息、影像、工具使用/函式呼叫或結構化輸出。 這會將這些模型的提示快取效力限制為訊息陣列的使用者/助理部分,這些陣列不太可能具有相同的1024令牌前置詞。
針對 gpt-4o
和 gpt-4o-mini
模型,支援提示快取:
支援快取 | 說明 |
---|---|
訊息 | 完整的訊息陣列:系統、使用者和助理內容 |
影像 | 使用者訊息中包含的影像,無論是連結或base64編碼的數據。 詳細數據參數必須在要求之間設定相同。 |
工具使用 | 訊息陣列和工具定義 |
結構化輸出 | 結構化輸出架構會附加為系統訊息的前置詞 |
若要改善發生快取叫用的可能性,您應該建構要求,讓重複的內容發生在訊息陣列的開頭。
我可以停用提示快取嗎?
默認會啟用提示快取。 沒有選擇退出選項。
提示快取如何針對已布建的部署運作?
針對已布建部署上支援的模型,我們最多可折扣 100% 的快取輸入令牌。 如需詳細資訊,請參閱我們的 布建輸送量檔。