Claude API基礎
Claude APIを使ってプログラムからClaudeを呼び出す方法を学びます。
セットアップ
APIキーの取得
- Anthropic Console でアカウント作成
- API Keys セクションでキーを生成
- 環境変数に設定:
SDKのインストール
最初のAPI呼び出し
Messages API — 基本形
import anthropic
client = anthropic.Anthropic() # ANTHROPIC_API_KEY環境変数を自動読み込み
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=[
{"role": "user", "content": "日本の首都はどこですか?"}
]
)
print(message.content[0].text)
# => "日本の首都は東京です。"
レスポンス構造
{
"id": "msg_01XFDUDYJgAACzvnptvVoYEL",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "日本の首都は東京です。"
}
],
"model": "claude-sonnet-4-20250514",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 15,
"output_tokens": 12
}
}
主要フィールド:
content— 応答の本体。テキスト以外にtool_useブロックも入るstop_reason—end_turn(正常終了)、max_tokens(トークン上限)、tool_use(ツール呼び出し)usage— トークン消費量。料金計算に使う
モデル一覧と選び方
| モデル | モデルID | 特徴 | 用途 |
|---|---|---|---|
| Opus 4 | claude-opus-4-20250514 |
最高性能、深い推論 | 複雑な分析、コード生成 |
| Sonnet 4 | claude-sonnet-4-20250514 |
性能とコストのバランス | 一般的な業務、チャット |
| Haiku 3.5 | claude-haiku-4-5-20251001 |
高速・低コスト | 分類、要約、大量処理 |
モデル選択の指針
迷ったら Sonnet から始める。性能が足りなければOpus、コスト重視ならHaikuに切り替える。
主要パラメータ
必須パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
model |
string | 使用するモデルID |
max_tokens |
int | 生成する最大トークン数 |
messages |
array | 会話履歴(roleとcontentのペア) |
よく使うオプション
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=2048,
system="あなたはPythonの専門家です。簡潔に回答してください。",
temperature=0.0, # 0.0=決定的、1.0=創造的
messages=[
{"role": "user", "content": "リスト内包表記の使い方を教えて"},
]
)
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
system |
string | なし | システムプロンプト(Claudeの役割・制約を指定) |
temperature |
float | 1.0 | 出力のランダム性。コード生成は0.0推奨 |
top_p |
float | — | temperatureの代替。通常はtemperatureだけでOK |
stop_sequences |
array | — | この文字列が出たら生成を停止 |
会話の管理(マルチターン)
Claudeはステートレス。会話を続けるには全履歴をmessagesに含める必要がある。
messages = [
{"role": "user", "content": "Pythonでフィボナッチ数列を書いて"},
{"role": "assistant", "content": "def fib(n):\n ..."},
{"role": "user", "content": "メモ化を使って最適化して"},
]
message = client.messages.create(
model="claude-sonnet-4-20250514",
max_tokens=1024,
messages=messages,
)
トークンとコスト
会話が長くなるとinput_tokensが増え、コストが上がる。 不要な履歴は削る、または要約して圧縮するのが実践的。
エラーハンドリング
主要なHTTPステータスコード
| コード | 意味 | 対処 |
|---|---|---|
| 400 | リクエスト不正 | パラメータを確認 |
| 401 | 認証エラー | APIキーを確認 |
| 429 | レート制限 | リトライ(指数バックオフ) |
| 500 | サーバーエラー | リトライ |
| 529 | API過負荷 | 時間を空けてリトライ |
リトライの実装
import anthropic
client = anthropic.Anthropic()
# SDKが429/500/529を自動リトライしてくれる(デフォルト2回)
# カスタマイズする場合:
client = anthropic.Anthropic(
max_retries=3,
)
料金の考え方
Claudeの料金は input tokens(入力) と output tokens(出力) の従量制。
| モデル | 入力 (MTok) | 出力 (MTok) |
|---|---|---|
| Opus 4 | $15 | $75 |
| Sonnet 4 | $3 | $15 |
| Haiku 3.5 | $0.80 | $4 |
コスト最適化のコツ
- 不要な会話履歴を削る(input tokensを削減)
max_tokensを必要最小限に設定- 分類・ルーティングにはHaikuを使い、複雑な処理だけSonnet/Opusを使う
参考リンク
- API Reference — Messages APIの全パラメータ
- Anthropic SDKs — Python / TypeScript SDK
- API Courses (GitHub) — API基礎コース(Jupyter Notebook)
- 料金ページ — 最新の料金情報