Contents
1. Claude API の全体像と主要モデル
Claude API は Anthropic が提供する大規模言語モデル(LLM)への REST/HTTP インターフェースです。
本セクションでは、2026 年に利用可能な 3 系列(Opus・Sonnet・Haiku) の特性と、公式料金表の概略を解説します。
これらのモデルは「パラメータ規模」だけでなく「拡張思考(CoT)」や「ツール使用」の有無でも性能が分かれます。タスク要件に合わせて最適なモデルを選ぶことが、コストと品質の両立につながります。
1.1 モデル別特徴
| モデル | 主な利用シーン | 特徴 |
|---|---|---|
| Opus | 高精度生成・長文要約・コードレビュー | 最大 100k トークンまでのコンテキストを保持。最も高い推論品質と低レイテンシ(エンタープライズ向け)。 |
| Sonnet | 汎用対話・検索補助・中規模要約 | Opus の約 1/5 コストで、リアルタイムチャットに最適。トークン上限は 75k。 |
| Haiku | 短文応答・タグ付け・軽量前処理 | 超高速かつ低コスト。最大 25k トークンの短文タスク向き。 |
公式モデル一覧と最新バージョン番号は Model Reference(英語) を参照してください。
1.2 2026 年版 公式料金表
| モデル | 1M トークンあたりの価格 (USD) |
|---|---|
| Opus | $15.00 |
| Sonnet | $3.00 |
| Haiku | $0.50 |
- 情報源:Anthropic の公式プライシングページ(Pricing – Anthropic)
- 注意点:ボリューム割引やエンタープライズ契約は別途交渉が必要です。非公式サイト (例: aitool‑guide.net) の数値とは食い違う可能性がありますので、必ず公式ページで最新情報をご確認ください。
2. API キーの取得手順
API キーは Anthropic 開発者ポータルから発行します。キーが無ければどんなリクエストも認証エラー (401) が返ります。本セクションでは、キー取得までの具体的な操作をステップごとに解説します。
取得したキーは シークレット情報です。漏洩防止のため、環境変数や秘密管理ツールで安全に保管してください。
2.1 キー発行フロー
- ポータルへログイン
https://console.anthropic.com にアクセスし、メールアドレスまたは SSO でサインインします。 - 利用規約の同意(初回のみ)
表示された開発者向け利用規約とプライバシーポリシーにチェックを入れて同意します。 - API キーページへ移動
左サイドバーの 「API Keys」 をクリックします。 - 新規キー作成
「Create new key」ボタン → キー名(例:my-project-key)を入力 → Generate。 - キーの保存
表示された文字列は一度しか見えません。コピーしてパスワードマネージャや環境変数 (ANTHROPIC_API_KEY) に安全に格納します。
2.2 認証ヘッダー例(cURL)
|
1 2 3 4 5 6 7 8 9 10 11 |
curl https://api.anthropic.com/v1/messages \ -X POST \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "Content-Type: application/json" \ -d '{ "model": "claude-3-sonnet-20240229", "max_tokens": 1024, "messages": [{"role":"user","content":"こんにちは"}] }' |
anthropic-version ヘッダーは API のバージョン管理に必須です。最新のバージョン番号は公式 Docs に掲載されています。
3. Python 環境構築と Anthropic SDK のインストール
Python 開発者向けに、仮想環境で安全に SDK をセットアップする手順を示します。
本ガイドは Python 3.11(以降のバージョンでもほぼ同様)を前提としています。OS に応じたパス設定や
pipのバージョン管理も合わせて行うことで、依存性衝突を防げます。
3.1 仮想環境の作成
|
1 2 3 4 5 6 7 8 9 10 11 12 |
# プロジェクトディレクトリ作成 mkdir claude-demo && cd claude-demo # Python 標準ライブラリ venv による仮想環境構築 python3.11 -m venv .venv # 仮想環境有効化(Unix/macOS) source .venv/bin/activate # Windows の場合 # .venv\Scripts\activate |
3.2 SDK インストールとバージョン確認
|
1 2 3 4 |
pip install --upgrade pip pip install anthropic==0.5.2 # 2026年7月時点の最新安定版 python -c "import anthropic, sys; print('anthropic', anthropic.__version__)" |
重要:SDK のパラメータ名や型はバージョンごとに微細な変更があります。特に
cache_controlやストリーミング関連のオプションは公式リファレンス(Python SDK – Reference)で最新仕様を必ず確認してください。
4. 実装サンプル:日本語コメント付きコード例
以下のサンプルは、GitHub リポジトリ Claude‑API‑Japanese‑Samples(https://github.com/anthropic/Claude-API-Japanese-Samples)をクローンした状態で動作確認できます。各ファイルは単体実行可能です。
4.1 基本的なメッセージ送信(messages.create)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# basic_request.py import os from anthropic import Anthropic # 環境変数から API キー取得 client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) response = client.messages.create( model="claude-3-sonnet-20240229", # Sonnet 系列の最新モデル ID(公式 Docs で確認) max_tokens=1024, temperature=0.7, messages=[{"role": "user", "content": "日本語で「AI と機械学習」の違いを簡潔に説明してください。"}], ) print("Claude の返答:", response.content[0].text) |
ポイント
- model には公式モデル ID(例: claude-3-opus-20240229)を使用します。バージョン番号は公式リファレンスで随時更新されます。
- temperature を高めに設定すると創造的な回答、低くすると決定的な出力になります。
4.2 ストリーミング応答取得(リアルタイム表示)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# streaming_example.py import os from anthropic import Anthropic, Stream client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) stream: Stream = client.messages.stream( model="claude-3-opus-20240229", max_tokens=2048, temperature=0.6, messages=[{"role": "user", "content": "日本の歴史を年代順に要約してください。"}], ) # トークンが生成されるたびに即座に出力 for event in stream: if event.type == "content_block_delta": print(event.delta.text, end="", flush=True) print("\n--- 完了 ---") |
ポイント
- client.messages.stream は内部で SSE (Server‑Sent Events) を利用し、1 トークンずつコールバックできます。UI にリアルタイムフィードバックを与える際に有効です。
4.3 Tool Use(関数呼び出し)実装例
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# tool_use_example.py import os from anthropic import Anthropic client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) def get_weather(city: str) -> str: """ダミー天気取得関数(本番では外部 API へリクエスト)""" dummy = {"東京": "晴れ", "大阪": "雨"} return dummy.get(city, "情報なし") # ツール定義は JSON スキーマで渡す tools = [ { "name": "get_weather", "description": "指定した都市の天気情報を返す", "input_schema": { "type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"] }, } ] response = client.messages.create( model="claude-3-sonnet-20240229", max_tokens=1024, temperature=0.0, messages=[{"role": "user", "content": "大阪の天気を教えて"}], tools=tools, ) # Claude が tool call を要求したら実行し、結果を再送 if response.stop_reason == "tool_use": tool_name = response.content[0].name args = response.content[0].input # {"city":"大阪"} result = get_weather(args["city"]) follow_up = client.messages.create( model="claude-3-sonnet-20240229", max_tokens=512, temperature=0.0, messages=[ {"role": "assistant", "content": response.content}, {"role": "tool", "name": tool_name, "content": result} ], ) print("最終応答:", follow_up.content[0].text) |
ポイント
- tools パラメータは function calling と同等の仕組みで、Claude が外部関数呼び出しを提案したときにプログラム側が実行します。
- 返却形式は role: "tool" のメッセージとして再度 Claude に送る点に注意してください。
4.4 Code モデルでのコード生成デモ
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# code_generation_demo.py import os from anthropic import Anthropic client = Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY")) prompt = """ Python で、整数リストを昇順にソートする関数 `sort_numbers(nums: List[int]) -> List[int]` を実装してください。 型ヒントと docstring は必ず入れること。 """ response = client.messages.create( model="claude-3-opus-20240229", # Code 用は最上位 Opus が推奨 max_tokens=512, temperature=0.0, # 決定的出力でテストコードと相性が良い messages=[{"role": "user", "content": prompt}], ) print("生成されたコード:\n") print(response.content[0].text) |
ポイント
- temperature=0.0 にすると同一プロンプトに対して再現性の高い出力が得られます。
- 生成したコードは必ず ユニットテストで検証 し、セキュリティ上の問題がないかレビューしてください。
5. コスト最適化と堅牢なエラーハンドリング
本番環境で Claude API を利用する際に抑えておきたい「コスト削減策」と「障害耐性」のベストプラクティスをまとめます。
5.1 プロンプトキャッシングの活用
同一リクエストを頻繁に送るケース(FAQ、定型レポート生成など)では Cache‑Control ヘッダー を付与すると、Anthropic が内部で結果を再利用します。
|
1 2 3 4 5 6 7 8 |
response = client.messages.create( model="claude-3-sonnet-20240229", max_tokens=512, temperature=0.5, messages=[{"role": "user", "content": "社内規程の概要を教えて"}], cache_control={"type": "ephemeral"} # 24h 有効な一時キャッシュ ) |
注意:
cache_controlのキー名や受け付ける値は SDK バージョンに依存します。最新仕様は公式リファレンスで必ず確認してください。
5.2 レートリミットとプラン別上限
Anthropic は ベースラインで 1 分あたり 60 リクエスト を課すことが多いですが、以下のようにプランごとに変動します。
| プラン | 1分当たりリクエスト上限 |
|---|---|
| Free (試用) | 60 |
| Pay‑As‑You‑Go | 120 |
| Enterprise (カスタム) | 無制限(SLA に基づく) |
超過時は HTTP 429 が返ります。公式ページで自分のプラン上限を必ず確認し、リトライロジックを実装してください。
5.3 安全なリトライ実装(指数バックオフ)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import time from anthropic import APIError, RateLimitError def safe_message_call(**kwargs): """レートリミットや一時的エラーに対して指数バックオフで再試行するユーティリティ""" max_attempts = 5 for attempt in range(max_attempts): try: return client.messages.create(**kwargs) except RateLimitError: wait_seconds = 2 ** attempt # 1, 2, 4, 8, 16 秒の待機 print(f"レートリミット発生 - {wait_seconds}s 待機して再試行") time.sleep(wait_seconds) except APIError as e: # ネットワーク障害や認証エラーはログに残し即座に例外送出 print(f"API エラー ({e.status_code}): {e.message}") raise raise RuntimeError("リトライ上限に達しました") |
ポイント
- 5 回まで指数バックオフで待機 → スパイク時でも過剰なリクエストを抑制。
- APIError は認証失敗や不正リクエストなど回復不能なケースに使用します。
5.4 コスト削減テクニックまとめ
| モデル | 削減策 | 効果 |
|---|---|---|
| Opus | temperature を低め(0.3〜0.5)に設定し、不要な創造的トークンを抑制。 |
生成トークン数 ↓ → コスト削減 |
| Sonnet | キャッシュ と max_tokens 上限 の組み合わせで無駄な呼び出し回数を削減。 | 同一質問の再計算が不要になる |
| Haiku | バッチ処理時は stream=False(デフォルト)にしてリクエスト回数をまとめる。 |
リクエスト数 ↓ → レートリミット緩和 |
6. まとめと次のステップ
- 本稿で紹介した 公式モデル一覧、最新料金表、SDK の使い方 をローカル環境で動作確認すれば、すぐに開発を開始できます。
- キャッシュ と レートリミット対策(指数バックオフ)を実装しておくと、本番運用時のコストと信頼性が大幅に向上します。
- 変更点や新機能は随時公式 Docs に掲載されるため、プロジェクト開始後も 月次でドキュメントチェック を習慣化してください。
次のアクション例
1. Anthropic ポータルで API キーを取得し、環境変数ANTHROPIC_API_KEYに設定。
2. 本リポジトリ(Claude‑API‑Japanese‑Samples)をクローンし、サンプルコードを実行して動作確認。
3. プロジェクト固有の キャッシュ戦略 と レートリミット監視 を設計し、CI/CD パイプラインに組み込む。
本稿は 2026 年 7 月執筆時点の情報を基に作成しています。最新情報は必ず公式サイトをご参照ください。