メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://docs.aihubmix.com/llms.txt

Use this file to discover all available pages before exploring further.

Prompt Caching は、モデル推論コストを削減するために使用される重要なメカニズムです。以前に処理されたプロンプトコンテンツをキャッシュすることで、後続のリクエストで再利用でき、冗長な計算を減らし、コストを下げ、応答効率を向上させます。

原理

prompt caching を有効にしたリクエストを送信すると、システムはプロンプトプレフィックスが最近のクエリからキャッシュされているかどうかをチェックします。見つかった場合はキャッシュを使用し、処理時間とコストを削減します。見つからない場合は、完全なプロンプトを処理し、応答開始後にプレフィックスをキャッシュします。これは以下のシナリオで特に有用です:
  • 多数の例を含むプロンプト
  • 広範なコンテキストまたは背景情報
  • 一貫した指示を持つ反復的タスク
  • 長いマルチターン会話

コアメカニズム

異なるモデルプロバイダーは、キャッシュへのサポートが異なります:

自動キャッシュ

自動キャッシュは追加の設定を必要としません。システムが自動的に再利用可能なコンテンツを識別してキャッシュします。OpenAI、DeepSeek などのモデルに適用されます。

OpenAI

  • 最小プロンプト長:1024 トークン
  • コスト:キャッシュへの書き込みは無料、キャッシュからの読み取りは元の価格の 0.25x から 0.5x

Gemini

  • 暗黙的コンテキストキャッシュがデフォルトで有効になっており、手動設定なしで自動的にキャッシュが有効になります。
  • コンテンツ、モデル、パラメータが同一の場合にのみキャッシュが有効です。違いがあれば新しいリクエストとして扱われ、キャッシュにヒットしません。
  • キャッシュ有効期限は開発者が設定しますが、未設定のままにすることもできます。未指定の場合、デフォルトで 1 時間になります。最小または最大の期間制限はなく、コストはキャッシュトークン数とキャッシュ期間に依存します。

DeepSeek / Grok / Moonshot / Groq

  • コスト:キャッシュへの書き込みは無料または同価格、キャッシュからの読み取りは元の価格を下回ります

Claude モデルの明示的キャッシュ

  • cache_control を介してキャッシュ場所を手動で指定する必要があります
  • キャッシュ粒度のきめ細かな制御が可能です
  • Anthropic Claude モデルに適用されます

OpenAI 互換インターフェース

systemuser(画像を含む)、toolscache_control フィールドを使ってキャッシュブレークポイントを設定できます。以下の例は主要な構造のみを示しています: System メッセージのキャッシュ(デフォルト 5 分 TTL):
{
  "model": "claude-opus-4-5",
  "messages": [
    {
      "role": "system",
      "content": [
        {"type": "text", "text": "You are an AI assistant"},
        {
          "type": "text",
          "text": "(long context)",
          "cache_control": {"type": "ephemeral"}
        }
      ]
    },
    {
      "role": "user",
      "content": [{"type": "text", "text": "Hello"}]
    }
  ]
}
User メッセージのキャッシュ(1 時間 TTL):
{
  "model": "claude-opus-4-5",
  "messages": [
    {
      "role": "system",
      "content": [{"type": "text", "text": "You are an AI assistant"}]
    },
    {
      "role": "user",
      "content": [
        {
          "type": "text",
          "text": "(long context)",
          "cache_control": {"type": "ephemeral", "ttl": "1h"}
        },
        {"type": "text", "text": "Hello"}
      ]
    }
  ]
}
画像メッセージのキャッシュ:
{
  "role": "user",
  "content": [
    {
      "type": "image_url",
      "image_url": {"detail": "auto", "url": "data:image/jpeg;base64,/9j/4AAQ..."},
      "cache_control": {"type": "ephemeral"}
    },
    {"type": "text", "text": "What's this?"}
  ]
}
Tool 定義のキャッシュ: cache_control はツールオブジェクトの最上位レベル(typefunction と同じレベル)に配置します:
{
  "tools": [{
    "type": "function",
    "function": {
      "name": "get_weather",
      "description": "Get current weather for a location",
      "parameters": {
        "type": "object",
        "properties": {"city": {"type": "string"}},
        "required": ["city"]
      }
    },
    "cache_control": {"type": "ephemeral", "ttl": "1h"}
  }]
}

Anthropic 互換インターフェース

curl https://aihubmix.com/v1/messages \
  -H "content-type: application/json" \
  -H "x-api-key: $AIHUBMIX_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -d '{
    "model": "claude-opus-4-6",
    "max_tokens": 1024,
    "system": [
      {
        "type": "text",
        "text": "You are an AI assistant tasked with analyzing literary works. Your goal is to provide insightful commentary on themes, characters, and writing style.\n"
      },
      {
        "type": "text",
        "text": "<the entire contents of Pride and Prejudice>",
        "cache_control": {"type": "ephemeral"}
      }
    ],
    "messages": [
      {
        "role": "user",
        "content": "Analyze the major themes in Pride and Prejudice."
      }
    ]
  }'

# Call the model again with the same input until the caching checkpoint
curl https://aihubmix.com/v1/messages # rest of input

キャッシュ期間

  • デフォルト:5 分
  • オプション:1 時間(“ttl”: “1h”)
詳細については以下を参照してください:Claude Prompt Caching

使用上の推奨事項

  1. 安定したプレフィックスの維持
固定コンテンツをプロンプトの先頭に配置し、推奨される構造:
[System Settings / Long Text / RAG Data] 
[User Question (Variable Part)]
  1. 大きなテキストをキャッシュ
以下のコンテンツを優先的にキャッシュしてください:
  • RAG データ
  • 長文テキスト
  • CSV / JSON データ
  • ロール設定
  1. TTL の制御
  • 短いセッション → 5 分
  • 長いセッション → 1 時間(よりコスト効率的)
  1. キャッシュ書き込みの削減

頻繁に変化するコンテンツがキャッシュに入らないようにしてください。タイムスタンプ、ユーザー入力変数、高頻度に変化するデータなどをキャッシュしないでください。

最終更新日:2026-06-01