プロンプトキャッシュ

Prompt Caching は、くりかえしつかう prompt プレフィックスをキャッシュし、token しょうひとレスポンスのレイテンシをへらします。

しくみ#

リクエストに ながい system prompt や、くりかえすコンテキストがあるとき:

  • はじめのリクエスト — すべての token をしょりし、prompt プレフィックスをキャッシュ
  • あとのリクエスト — キャッシュヒットなら、キャッシュぶんの token はさいかきんされません
  • キャッシュ TTL — ふつう 5〜10 ふん。きげんぎれのあとは、もういちどキャッシュがひつようです

キャッシュたいおう#

诺玛AI のモデルリソースは AWS Bedrock、Azure OpenAI、Google Cloud、Alibaba Cloud、Volcano Engine などのこうしきクラウドプロバイダーからていきょうされます。それらのクラウドで Prompt Caching にたいおうするモデルは、诺玛AI でもたいおうします。

クラウドプロバイダー

だいひょうモデル

キャッシュほうしき

AWS Bedrock

Claude シリーズ

ネイティブ Prompt Caching

Azure OpenAI

GPT-4o シリーズ

じどうキャッシュ

Google Cloud

Gemini シリーズ

Context Caching

Alibaba Cloud

Qwen シリーズ

プラットフォームがわキャッシュ

Volcano Engine

Doubao シリーズ

プラットフォームがわキャッシュ

モデルごとのキャッシュたいおうは、かくクラウドのこうしきドキュメントをみてください。诺玛AI はキャッシュかんれんパラメータをそのままとうかするため、ついかせっていはひつようありません。

つかいかた#

OpenAI プロトコル

OpenAI モデルの Prompt Caching はじどうでうごきます — くりかえしの prompt プレフィックスをみつけるとじどうでゆうこうになります:

コード
# 長い system prompt は自動的にキャッシュされる
SYSTEM_PROMPT = """あなたは 诺玛AI のテクニカルサポートアシスタントです。

以下はあなたが把握しておくべき製品情報です:
- 诺玛AI は LLM Gateway であり、複数の主要な大規模モデルをサポートしています
- OpenAI / Anthropic / Gemini の三大プロトコルをサポート
- ...
(その他の製品知識は省略)
"""

# 1回目のリクエスト:system prompt をキャッシュ
response1 = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[
        {"role": "system", "content": SYSTEM_PROMPT},
        {"role": "user", "content": "诺玛AI はどのモデルをサポートしていますか?"}
    ]
)

# 2回目のリクエスト:キャッシュにヒットし、より速く・より安く
response2 = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[
        {"role": "system", "content": SYSTEM_PROMPT},  # キャッシュヒット
        {"role": "user", "content": "開発ツールはどう設定しますか?"}
    ]
)

Anthropic プロトコル

Anthropic モデルはめいじてきな cache control にたいおうしています:

コストさくげん#

キャッシュヒットのあとは、キャッシュぶんの token がよりひくいりょうきんでかきんされます。さくげんりつはモデルでかわります:

  • Anthropic Claude シリーズ — キャッシュヒットでインプットコストをやく 90% さくげんできます
  • OpenAI GPT シリーズ — キャッシュヒットでインプットコストをやく 50% さくげんできます
  • Google Gemini シリーズ — キャッシュヒットでインプットコストをやく 50〜75% さくげんできます

じっさいのさくげんりつは、キャッシュヒットりつとクラウドプロバイダーごとのかきんポリシーによりかわります。くわしくは 诺玛AI コンソールのりようりょうをみてください。

ベストプラクティス#

  • ながいテキストをまえにおく — system prompt やナレッジベースなど、かわらないぶぶんを messages のさいしょにおく
  • プレフィックスをそろえる — かんぜんにおなじプレフィックスだけがキャッシュヒットします
  • prompt こうぞうをよくせっけいする — こていぶぶんとへんかぶぶんをわける
コード
# ✅ 良い設計:固定内容を前に、変化する内容を後に
messages = [
    {"role": "system", "content": LONG_STATIC_PROMPT},   # キャッシュ可能
    {"role": "user", "content": dynamic_question}          # 変化する部分
]

# ❌ 悪い設計:変化する内容が固定内容の中に混ざっている
messages = [
    {"role": "system", "content": f"Today is {date}. {LONG_PROMPT}"}  # 毎日異なるためキャッシュ不可
]

キャッシュヒットは API レスポンスの `usage` フィールドと、诺玛AI コンソールのりようりょうでかくにんできます。

さいしゅうこうしん: 2026 ねん 6 がつ 23 にち