Prompt Caching 入門:同一份大文件問幾百條問題,點樣慳返 90% 費用

Prompt caching 係咩、邊啲 API 支援、點設計先 cache 得中——附 Python 實測對比

AI 教學AI 生成

重點整理

  • 痛點:成個 codebase/本手冊貼落 prompt,每問一條問題就俾一次全額 input 費用——重複內容重複俾錢
  • 原理:API 幫你快取 prompt 前綴,之後同前綴嘅請求 input 費用平 50~90%,仲快埋
  • 實戰:Anthropic / OpenAI / Ollama 本地 KV-cache 三種做法,cache_control 點標記先中
  • 設計原則:靜態內容擺 prompt 頭、動態問題擺尾——順序錯咗 cache 就白費

痛點:你係咪重複俾緊同一筆錢?

好典型嘅用法:將成個產品手冊(5 萬字)貼落 system prompt,然後問幾十條客戶問題。每次請求都計足 5 萬字 input 錢——但其實嗰 5 萬字每次都一模一樣。

Prompt caching 就係解決呢個浪費:API 供應商幫你將 prompt 嘅前綴快取落伺服器,之後嘅請求只要開頭一樣,重複部分就收平價(甚至唔計錢),延遲仲低埋。

邊啲服務支援?

服務做法折扣
Anthropiccache_control 標記讀 cache 平 90%(寫入 +25%)
OpenAI自動(prefix >1024 token)平 50%,唔使設定
Google GeminicachedContent 物件平 75%
本地 Ollama / llama.cppKV-cache 自動重用免費(慳時間)

實戰:Anthropic Python

import anthropic

client = anthropic.Anthropic()
manual = open("product_manual.txt").read()   # 5 萬字靜態內容

r = client.messages.create(
    model="claude-sonnet-4-5",
    max_tokens=1024,
    system=[{
        "type": "text",
        "text": f"你係客戶服務助理,根據以下手冊回答:\n{manual}",
        "cache_control": {"type": "ephemeral"},   # 標記呢段做快取
    }],
    messages=[{"role": "user", "content": "保養期幾長?"}],
)
print(r.usage)
# cache_creation_input_tokens=68000  (第一次,貴少少)
# cache_read_input_tokens=68000      (之後每次,平 90%)

OpenAI 嗰邊唔使做嘢:只要唔同請求嘅 prompt 開頭完全一樣,超過 1024 token 就自動計 prefix cache。

設計原則:順序係一切

Cache 係前綴匹配——由第一個 token 開始逐個比對,撞到第一個唔同位就斷。

  1. 靜態擺頭:手冊、規則、few-shot 例子——全部擺 system prompt 最前
  2. 動態擺尾:用戶問題、今日日期、session 資料——擺最後
  3. 千祈唔好中間插野:喺 system prompt 加「今天係 2026-09-18」,聽日 cache 即全部作廢
  4. 一次標一大段好過分幾細段——Anthropic 最少要 2048 token 先值得 cache

本地跑 Ollama 嘅朋友都受惠:同前綴嘅請求會重用 KV-cache,第二問開始回應速度明顯快一截——呢個就係點解「同一個 session 問跟進問題」特別快。

總結

Prompt caching 係2026 年最抵學嘅慳錢技巧——零代碼改動(OpenAI)或者一行標記(Anthropic),成本即刻減半甚至九成。記住一句:會重複嘅內容擺頭,會變嘅內容擺尾。

分享畀朋友

相關文章

更多「AI 教學」

睇全部分類 →