【AI】Claude APIのPrompt Cachingでコストを削減する方法

当ページのリンクには広告が含まれています。
いずみ

こんな悩みを解決できる記事を書きました!

僕は現役フリーランスエンジニア(歴年)で、資格は個保有しています。

Claude APIの利用料金が高くなってきたので、Prompt Cachingで安くしたい」とお考えではありませんか?

長いシステムプロンプトや大きなドキュメントを毎回送っていると、入力トークン量がかさんで料金が膨らみます。

Prompt Cachingを使うと、繰り返し送る部分をキャッシュして入力コストを最大90%削減できます

いずみ

レイテンシも短くなるので、体感速度が上がります。

ということで、本記事ではClaude APIのPrompt Cachingでコストを削減する方法を解説します。

いずみ

すぐ読み終わるので、ぜひ最後まで読んでくださいませ。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
執筆者/監修者
  • フリーランスエンジニア(保有資格個、企業と直接契約
  • ブログ・アフィリエイト歴7年(2018年〜)
  • ブランドせどりで月利50万円⇨脱サラ
  • 投資(仮想通貨・FX)歴7年(2018年〜)
  • X(旧Twitter)フォロワー約1,900人
  • 運営者情報はこちら
いずみです
目次

Claude APIのPrompt Cachingでコストを削減する方法

早速ですが、Claude APIのPrompt Cachingでコストを削減する方法を解説していきます。

Prompt Cachingの仕組み

Prompt Cachingは、プロンプトの先頭からある地点までを丸ごとキャッシュに保存する機能です。

2回目以降のリクエストで、キャッシュした地点までの内容が完全に一致していれば、一致した範囲はキャッシュから読み込まれます。

キャッシュ読み込み時の料金は、通常の入力トークンの10%まで下がります。

一方、キャッシュへの書き込みが発生したリクエストは、通常の入力トークンの25%増しになります。

つまり同じ内容を3回以上使い回す場面で、コスト面のメリットが出ます。

いずみ

1回しか使わないプロンプトをキャッシュすると、書き込みコストのぶん逆に高くつきます。

キャッシュできる条件

キャッシュには最小トークン数の条件があります。

Claude Sonnet 5では、キャッシュ対象の範囲が1024トークン以上ないとキャッシュされません。

最小トークン数に満たない場合はエラーにはならず、単にキャッシュが効きません。

キャッシュの有効期限は標準で5分、オプションで1時間を選べます。

5分の有効期限は、キャッシュが使われるたびに無料で延長されます。

システムプロンプトをキャッシュする

一番効果が出やすいのは、毎回同じ長いシステムプロンプトをキャッシュするパターンです。

STEP
SDKをインストールする
pip install anthropic

APIキーは環境変数 ANTHROPIC_API_KEY に設定しておきます。

STEP
systemを配列で渡してcache_controlを付ける
import anthropic

client = anthropic.Anthropic()

SYSTEM_PROMPT = """(ここに数千トークンぶんの前提知識やルールを書く)"""

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    system=[
        {
            "type": "text",
            "text": SYSTEM_PROMPT,
            "cache_control": {"type": "ephemeral"},
        }
    ],
    messages=[
        {"role": "user", "content": "契約書の要点を3つ挙げて"},
    ],
)

print(response.content[0].text)

systemを文字列ではなく、テキストブロックの配列で渡すのがポイントです。

配列の最後のブロックに cache_control を付けると、付けたブロックまでがキャッシュ対象になります。

STEP
キャッシュのヒット状況を確認する
usage = response.usage
print("cache write:", usage.cache_creation_input_tokens)
print("cache read :", usage.cache_read_input_tokens)
print("input      :", usage.input_tokens)

1回目のレスポンスでは cache_creation_input_tokens にトークン数が入り、cache_read_input_tokens は0です。

5分以内に同じ内容で2回目を投げると、cache_read_input_tokens に値が入り、cache_creation_input_tokens は0になります。

いずみ

cache_read 側にトークンが乗っていれば、キャッシュが効いている証拠です。

ツール定義や会話履歴をキャッシュする

cache_control はsystemだけでなく、toolsやmessagesのブロックにも付けられます。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    tools=[
        {
            "name": "get_weather",
            "description": "天気を取得する",
            "input_schema": {"type": "object", "properties": {}},
        },
        {
            "name": "search_docs",
            "description": "社内ドキュメントを検索する",
            "input_schema": {"type": "object", "properties": {}},
            "cache_control": {"type": "ephemeral"},
        },
    ],
    messages=[
        {"role": "user", "content": "東京の天気は?"},
    ],
)

toolsの最後の定義に cache_control を付けると、ツール定義全体がキャッシュされます。

長いRAGの参考文書をユーザーメッセージに含める場合も、同じブロックに cache_control を付けます。

キャッシュの区切りは、1リクエストにつき最大4つまで指定できます。

1時間の有効期限を使う

5分では短すぎる場合、ttl に 1h を指定すると1時間キャッシュが保持されます。

system=[
    {
        "type": "text",
        "text": SYSTEM_PROMPT,
        "cache_control": {"type": "ephemeral", "ttl": "1h"},
    }
]

1時間の有効期限を指定したキャッシュ書き込みは、通常の入力トークンの2倍の料金になります。

数十分おきに同じプロンプトを使うバッチ処理では、1時間の有効期限のほうがヒット率が上がってトータルで安くなります。

いずみ

アクセス頻度が高いなら5分、間隔が空くなら1時間、と使い分けます。

削減効果を見積もる

キャッシュ対象が2000トークン、生成が短いリクエストを1日1000回投げるケースを考えます。

キャッシュなしなら、毎回2000トークンぶんの入力料金がかかります。

キャッシュありなら、1回目だけ25%増しの書き込み、残り999回は10%の読み込み料金で済みます。

入力ぶんのコストは、おおよそ9割前後を削減できる計算です。

レイテンシも、キャッシュが効くと最初のトークンが返るまでの時間が短くなります。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式

【厳選】フリーランスエンジニアにおすすめなエージェント3選

フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。

僕が実際に利用しているおすすめエージェントを紹介しますね。

いずみ

エージェントは必ず複数登録してください。

担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…

僕は実際に5つのエージェントを使い回していますよ。

フリーランスを始めるなら「

案件数マージン率単価
約88,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 業界最大級の案件数。
  • 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
  • 案件参画中のフォローの充実。

※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。

は業界最大手のフリーランスエージェントです。

とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!

いずみ

僕もはじめてフリーランスの案件を貰ったのはです。

保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。

手厚い保障を重視したいなら「

案件数マージン率単価
約10,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 手厚い保障で正社員並みの安心感。
  • 還元率60%超え&単価公開でクリアな契約。
  • 給与保障制度(審査あり)。

は手厚い保障が特徴のフリーランスエージェントです。

フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。

いずみ

僕も何度か案件を紹介してもらいました。

自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。

週2〜3日の案件探しなら「

案件数マージン率単価
約5,000件非公開
初心者福利厚生申し込み
経験者向け無料
Good Point
  • IT案件に特化したフリーランスエージェント。
  • 週2〜3日の案件が豊富。
  • リモート案件が多く、直エンドなので単価も高い。

※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。

はIT案件に特化したフリーランスエージェントです。

週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。

いずみ

週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。

とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!

よくある質問

キャッシュはどのくらいで消えますか?

標準の有効期限は5分で、最後に使われてから5分間アクセスがないと消えます。

ttl に 1h を指定すると、1時間まで延ばせます。

プロンプトを少しでも変えるとキャッシュは無効になりますか?

cache_control を付けた地点までの内容が1文字でも違うと、キャッシュはヒットしません。

変わりやすい部分は、キャッシュ範囲より後ろに置くのが基本です。

どのモデルでPrompt Cachingを使えますか?

現行のClaudeモデルは基本的にすべて対応しています。

ただしモデルごとにキャッシュできる最小トークン数が異なり、Claude Sonnet 5は1024トークンです。

キャッシュを使うと必ず安くなりますか?

同じ内容を3回以上使い回す場合に安くなります。

1〜2回しか使わないプロンプトは、書き込みコストのぶん割高になることがあります。

まとめ

今回は、Claude APIのPrompt Cachingでコストを削減する方法について解説しました。

以下が本記事のまとめになります。

まとめ
  • Prompt Cachingは、プロンプトの先頭から指定した地点までをキャッシュし、読み込みコストを10%まで下げる。
  • system・tools・messages のブロックに cache_control を付けるだけで使える。
  • Claude Sonnet 5は1024トークン以上、区切りは最大4つ、有効期限は5分か1時間。
  • 同じ内容を繰り返し使う場面ほど、コストとレイテンシの削減効果が大きい。
まとめ
いずみ

最後までお読みいただき、ありがとうございました!

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
  • クソおすすめ本
¥4,480 (2024/06/01 23:28時点 | Amazon調べ)
いずみ

海外のエンジニアがどういった思考で働いているかが理解できます。

海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。

この記事が気に入ったら
フォローしてね!

シェアしてね!
  • URLをコピーしました!
目次