> ## 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 トークン。プレフィックスが一字一句一致すると自動的にヒットします
* GPT-5.6 より前のモデル：キャッシュ書き込みに追加課金はなく、キャッシュ読み取りは各モデルのキャッシュ読み取り価格で課金されます
* GPT-5.6 以降（公式の表現 "GPT-5.6 models and later model families"、現在は gpt-5.6-sol / terra / luna）：キャッシュ書き込みは入力価格の 1.25x、読み取りは 0.1x で課金されます。`prompt_cache_key` と明示的キャッシュブレークポイントのパラメータが追加されました
* 使い方、課金、ヒットの調査は [GPT プロンプトキャッシュ](/jp/api/GPT-Cache) を参照してください

#### Gemini

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

#### DeepSeek / Grok / Moonshot / Groq

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

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

* `cache_control` で有効化します：リクエストボディ最上位のフィールドで自動的にブレークポイントを設定（会話に合わせて前方へ移動）するか、コンテンツブロック単位のブレークポイントでキャッシュ位置を細かく制御します
* すべてのアクティブな Claude モデルが対応し、キャッシュ書き込みは 5 分で 1.25x・1 時間で 2x、読み取りは 0.1x で、価格比率は全シリーズ統一です
* Anthropic Claude モデルに適用されます

<Note>
  Claude はモデルごとに最小キャッシュ可能トークンのしきい値を設定しており（512 / 1,024 / 2,048 / 4,096 のいずれかで、バージョンの新旧とは比例しません）、例えば Claude Opus 4.8 は 1,024、Claude Opus 4.7 は 2,048、Claude Opus 4.6 / 4.5 と Claude Haiku 4.5 は 4,096、Claude Fable 5 は 512 です。しきい値を下回るプレフィックスは `cache_control` を付けてもキャッシュに書き込まれず、エラーにもなりません。応答内の `cache_creation_input_tokens` と `cache_read_input_tokens` が同時に 0 になっている場合がこれに該当します。完全な区分とトラブルシューティングは [Claudeプロンプトキャッシュ](/jp/api/Claude-Cache) を参照してください。
</Note>

#### OpenAI 互換インターフェース

`system`、`user`（画像を含む）、`tools` で `cache_control` フィールドを使ってキャッシュブレークポイントを設定できます。以下の例は主要な構造のみを示しています：

**System メッセージのキャッシュ（デフォルト 5 分 TTL）：**

```json theme={null}
{
  "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）：**

```json theme={null}
{
  "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"}
      ]
    }
  ]
}
```

**画像メッセージのキャッシュ：**

```json theme={null}
{
  "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` はツールオブジェクトの最上位レベル（`type` と `function` と同じレベル）に配置します：

```json theme={null}
{
  "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 互換インターフェース

<CodeGroup>
  ```shellscript cURL theme={null}
  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
  ```

  ```python Python theme={null}
  import anthropic

  client = Anthropic(
    api_key="<AIHUBMIX_API_KEY>",  
    base_url="https://aihubmix.com"
  )

  params = {
      "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'.",
          }
      ],
  }
  response = client.messages.create(**params)
  print(response.usage.model_dump_json())

  # Call the model again with the same input until the caching checkpoint
  response = client.messages.create(**params)
  print(response.usage.model_dump_json())
  ```
</CodeGroup>

#### キャッシュ期間

* デフォルト：5 分
* オプション：1 時間（"ttl": "1h"）

> 詳細については以下を参照してください：[Claude Prompt Caching](https://docs.aihubmix.com/en/blogs/aihubmix-openai-upgrade-claude#2-prompt-caching)

## 使用上の推奨事項

1. **安定したプレフィックスの維持**

固定コンテンツをプロンプトの先頭に配置し、推奨される構造：

```text theme={null}
[System Settings / Long Text / RAG Data] 
[User Question (Variable Part)]
```

2. **大きなテキストをキャッシュ**

以下のコンテンツを優先的にキャッシュしてください：

* RAG データ
* 長文テキスト
* CSV / JSON データ
* ロール設定

3. **TTL の制御**

* 短いセッション → 5 分
* 長いセッション → 1 時間（よりコスト効率的）

4. **キャッシュ書き込みの削減**

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

最終更新日：2026-07-10
