Claude APIとは?料金・モデル選択の基礎知識
Claude APIは、Anthropic社が提供する大規模言語モデル(LLM)のAPIです。プログラムからAIを呼び出す仕組みで、Pythonから数行のコードで高品質なテキスト生成が可能になります。
Claude 3.5 Sonnet/Haiku/Opusの違いと使い分け
2026年現在、主要な3モデルが利用できます。
- Opus:最高精度モデル。複雑な分析・長文生成に最適
- Sonnet:速度と精度のバランスが良い万能型。日常的な開発用途に推奨
- Haiku:最速・最低コストモデル。分類・要約など軽量タスク向け
迷ったらまずSonnetで試し、精度が不足する場合はOpus、コスト重視の場合はHaikuに切り替えましょう。
2026年現在の料金体系とコスト試算の考え方
料金はトークン単位の従量課金です。トークンとは、AIがテキストを処理する最小単位を指します。日本語では1文字が約1〜2トークンに相当します。
コスト試算の基本式は次の通りです。
月間コスト =(入力トークン × 入力単価)+(出力トークン × 出力単価)
最新の料金はAnthropicの公式料金ページで必ず確認してください。
OpenAI APIとの主な違い(移行者向け比較)
- クライアント初期化が
anthropic.Anthropic()と簡潔 - systemプロンプトがメッセージ配列ではなく専用パラメータで指定
- レスポンス構造が異なるため、取り出し方の書き換えが必要
環境構築とAPIキー取得(5分で完了)
Anthropic Consoleでのアカウント作成とAPIキー発行手順
Anthropic Consoleにアクセスし、アカウントを作成します。ダッシュボードの「API Keys」から新しいキーを発行してください。キーは発行時に一度しか表示されません。必ず安全な場所にコピーしましょう。
Python仮想環境のセットアップとanthropicパッケージのインストール
# ターミナルで実行
python -m venv venv
source venv/bin/activate # Windowsは venv\Scripts\activate
pip install anthropic python-dotenv
仮想環境を使うことで、プロジェクトごとに依存パッケージを分離できます。
.envファイルによるAPIキーの安全な管理方法
# .env ファイル(.gitignoreに必ず追加)
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxx
import os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv("ANTHROPIC_API_KEY")
ソースコードにAPIキーを直書きすると漏洩リスクがあります。必ず.envファイルで管理しましょう。
基本的なテキスト生成:最初のAPI呼び出し
messages.create()の基本構造とパラメータ解説
import anthropic
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "Pythonの特徴を3つ教えて"}
]
)
print(response.content[0].text)
数行のコードでAIのテキスト生成が実行できます。messagesにユーザーの入力をリスト形式で渡す点がポイントです。
systemプロンプトでAIの役割・口調を制御する方法
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="あなたはプロのテクニカルライターです。簡潔に回答してください。",
messages=[
{"role": "user", "content": "APIとは何ですか?"}
]
)
systemパラメータでAIの役割や回答スタイルを指定できます。出力品質を左右する重要な設定です。
max_tokens・temperatureなど主要パラメータの調整指針
- max_tokens:出力の最大トークン数。長文生成なら4096程度に設定
- temperature:0に近いほど確定的、1に近いほど創造的な出力になる
技術文書はtemperature=0.3前後、クリエイティブ用途は0.8前後が目安です。
会話履歴管理:マルチターン対話の実装
messagesリストの組み立て方と役割(user/assistant)の仕組み
Claude APIはステートレス(状態を保持しない)設計です。会話の文脈を維持するには、過去のやり取りをすべてmessagesリストに含めて送信する必要があります。
会話履歴をリストで蓄積するチャットボット実装例
conversation = []
def chat(user_input):
conversation.append({"role": "user", "content": user_input})
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
system="簡潔に日本語で回答してください。",
messages=conversation
)
assistant_msg = response.content[0].text
conversation.append({"role": "assistant", "content": assistant_msg})
return assistant_msg
# 使用例
print(chat("Pythonの特徴は?"))
print(chat("その中で最も重要なものは?")) # 前の文脈を理解して回答
履歴が長くなった場合のトークン節約テクニック
- 直近N件のみ保持するスライディングウィンドウ方式
- 過去の会話をHaikuで要約し、圧縮した履歴を使う方法
- 用途に応じて
max_tokensを小さく制限する
ストリーミングレスポンスで体験を向上させる
ストリーミングの有効化とイテレータの処理方法
通常のAPI呼び出しでは、全文生成が完了するまで待機が必要です。ストリーミングを使えば、生成途中からリアルタイムに出力を受け取れます。
ターミナルでのストリーミング表示実装
with client.messages.stream(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[{"role": "user", "content": "Pythonの歴史を教えて"}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
flush=Trueを指定することで、バッファリングなしに即時表示されます。チャットUIの構築に役立つ実装パターンです。
エラーハンドリングとレート制限対策
主要な例外クラスの種類と対処法
- AuthenticationError:APIキーの誤りや期限切れ
- RateLimitError:短時間のリクエスト過多
- APIError:サーバー側の一時的な障害
指数バックオフによる自動リトライの実装パターン
import time
import anthropic
def call_with_retry(messages, max_retries=3):
for attempt in range(max_retries):
try:
return client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=messages
)
except anthropic.RateLimitError:
wait = 2 ** attempt # 1秒→2秒→4秒と増加
print(f"レート制限。{wait}秒後にリトライ...")
time.sleep(wait)
except anthropic.APIError as e:
print(f"APIエラー: {e}")
raise
raise Exception("最大リトライ回数を超過しました")
指数バックオフとは待機時間を段階的に増やす方式です。サーバー負荷を避けながら自動復旧できます。
実践応用:Claude APIでWordPress記事を自動投稿する
システム全体像:記事生成→WordPress REST API投稿のフロー
処理の流れは次の通りです。
- Step 1:キーワードからClaude APIで記事構成を生成
- Step 2:構成に基づき本文HTMLを生成
- Step 3:WordPress REST APIで下書き投稿
Claude APIでSEO構成・本文を生成するプロンプト設計
def generate_article(keyword):
prompt = f"""
以下のキーワードでSEO記事を執筆してください。
キーワード: {keyword}
要件: H2/H3見出し付きHTML形式、2000文字程度
"""
response = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=4096,
system="あなたはSEO専門のライターです。",
messages=[{"role": "user", "content": prompt}]
)
return response.content[0].text
REST APIで下書き投稿するコード実装
import requests
def post_to_wordpress(title, content, wp_url, wp_user, wp_pass):
endpoint = f"{wp_url}/wp-json/wp/v2/posts"
data = {
"title": title,
"content": content,
"status": "draft"
}
response = requests.post(
endpoint,
json=data,
auth=(wp_user, wp_pass)
)
return response.json()
# 使用例
article = generate_article("Python 初心者 学習方法")
result = post_to_wordpress(
title="Python初心者向け学習ガイド",
content=article,
wp_url="https://your-site.com",
wp_user="admin",
wp_pass="アプリケーションパスワード"
)
WordPress側では「アプリケーションパスワード」の発行が必要です。管理画面のユーザー設定から生成できます。
コスト最適化:Claude APIを効率よく使う
モデル使い分け戦略:タスク別にSonnet/Haikuを切り替える
- 記事の構成案作成:Haiku(高速・低コスト)
- 本文の執筆:Sonnet(品質とコストのバランス)
- 専門的な分析・校正:Opus(高品質が求められる場合)
1つのパイプライン内でモデルを切り替えるだけで、コストを削減できるケースがあります。
月間コストのモニタリングとバジェットアラート設定
Anthropic Consoleの「Usage」タブで日別・モデル別の使用量を確認できます。予算上限アラートを設定しておくと、想定外の費用発生を防げます。開発初期は月額$10程度の上限設定から始めることをおすすめします。
まとめ
本記事ではClaude APIのPython活用を基礎から実践まで解説しました。
- Claude APIは
anthropicパッケージ1つですぐに使い始められる - systemプロンプト・会話履歴・ストリーミングで本格的なAIアプリを構築できる
- エラーハンドリングと指数バックオフで安定した運用を実現できる
- WordPress REST APIと組み合わせれば記事の自動投稿まで自動化できる
- モデルの使い分けとUsageモニタリングでコストを最適化できる
まずは基本のAPI呼び出しから試し、段階的に会話管理やWordPress連携へ進めましょう。実際に手を動かすことが、Claude API習得の近道です。

コメント