· 7 分で読める · 3,430 文字
Claude Opus 4.6のAPIをPythonで叩く——セットアップから実践パターンまで
Claude Opus 4.6が出て「とりあえずAPI叩いてみたい」という人、多いと思います。この記事では、APIキーの取得からPythonでの基本的な呼び出し、ストリーミング、Tool Use(関数呼び出し)まで、手を動かしながら進められるように書きました。
事前準備:APIキーを取得する
Anthropicのコンソール(console.anthropic.com)でアカウントを作り、APIキーを発行します。無料クレジットが付くので、試すだけなら課金なしで始められます。
# APIキーを環境変数にセット(.bashrcや.zshrcに追加推奨)
export ANTHROPIC_API_KEY="sk-ant-xxxxx"
# Pythonライブラリのインストール
pip install anthropic
基本:メッセージを送って返事をもらう
# 環境: Python 3.12 / anthropic 0.52.0
import anthropic
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-6-20250313",
max_tokens=1024,
messages=[
{"role": "user", "content": "Pythonでフィボナッチ数列を返すジェネレーターを書いて"}
]
)
print(message.content[0].text)
これだけです。modelにclaude-opus-4-6-20250313を指定するのがポイント。コスパ優先ならclaude-sonnet-4-6-20250514に差し替えてください。
ストリーミングでリアルタイム表示
長い回答を待つのはストレスなので、トークンが生成されるたびに表示するストリーミングを使いましょう。
import anthropic
client = anthropic.Anthropic()
# withブロックでストリーミング
with client.messages.stream(
model="claude-opus-4-6-20250313",
max_tokens=2048,
messages=[
{"role": "user", "content": "Rustの所有権システムを初心者向けに説明して"}
]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)
print() # 最後に改行
ChatGPTみたいに文字がぽろぽろ出てくるアレです。Webアプリに組み込むときはServer-Sent Events(SSE)で返すのが一般的。
Tool Use:AIに外部ツールを使わせる
Opus 4.6の真骨頂はTool Use(関数呼び出し)です。AIが「この情報が必要だ」と判断したら、こちらが定義した関数を呼び出してくれます。
import anthropic
import json
client = anthropic.Anthropic()
# ツールの定義
tools = [
{
"name": "search_docs",
"description": "社内ドキュメントをキーワードで検索し、関連する内容を返す",
"input_schema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "検索クエリ"
},
"max_results": {
"type": "integer",
"description": "最大件数(デフォルト: 3)"
}
},
"required": ["query"]
}
}
]
def search_docs(query, max_results=3):
# 実際にはElasticsearchやベクトルDBを呼ぶ
return [{"title": f"{query}に関するドキュメント", "content": "..."}]
# 会話ループ
messages = [{"role": "user", "content": "デプロイ手順について教えて"}]
response = client.messages.create(
model="claude-opus-4-6-20250313",
max_tokens=1024,
tools=tools,
messages=messages,
)
# ツール呼び出しがあれば実行して結果を返す
for block in response.content:
if block.type == "tool_use":
result = search_docs(**block.input)
messages.append({"role": "assistant", "content": response.content})
messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": block.id,
"content": json.dumps(result, ensure_ascii=False),
}]
})
# ツール結果を渡して最終回答を取得
final = client.messages.create(
model="claude-opus-4-6-20250313",
max_tokens=1024,
tools=tools,
messages=messages,
)
print(final.content[0].text)
このパターンを拡張していくと、前の記事で紹介したAIエージェントになります。
ハマりやすいポイント
max_tokensを指定し忘れる
Anthropic APIではmax_tokensが必須パラメータです。OpenAIのAPIと違って省略するとエラーになります。Opus 4.6の最大出力は32,768トークン。迷ったら4096あたりを指定しておけばだいたい足ります。
レート制限に引っかかる
Opus 4.6は他のモデルよりレート制限が厳しめです。Tier 1だと1分あたり1,000トークン程度しか使えません。本格的に使うなら、コンソールからTierの引き上げ申請を出しましょう。バッチ処理ならMessage Batches APIを使うとコスト50%オフ&制限緩和されます。
1Mコンテキストを活かすには
Opus 4.6の1Mトークンコンテキストは、大きなコードベースやドキュメントを一括で渡したいときに威力を発揮します。ただし、入力が長いほど料金も上がるので、本当に全部渡す必要があるか考えてから使いましょう。関連ファイルだけ抽出して渡すほうがコスパも精度も良いケースが多いです。
よくある質問
日常的なコード生成や質問応答はSonnet 4.6で十分です。複数ファイルにまたがるリファクタリング、難しいバグの原因特定、設計の壁打ちなど「深く考える」必要があるときにOpusを使う、という棲み分けがおすすめ。Opusの料金はSonnetの約5倍なので、全部Opusにすると財布が厳しくなります。
はい。Bedrockではus.anthropic.claude-opus-4-6-20250313-v1:0というモデルIDで利用できます。既存のAWSインフラに統合したい場合はBedrock経由のほうがIAMでの認証管理が楽です。
anthropic.AsyncAnthropic()を使えばasync/awaitで非同期呼び出しできます。FastAPIやaiohttpと組み合わせるときに便利です。
まとめ
- Claude Opus 4.6のAPIはPython数行で呼べる。anthropicライブラリをインストールするだけ
- ストリーミング、Tool Use(関数呼び出し)まで押さえれば実用的なアプリが作れる
- max_tokensの必須指定、レート制限、1Mコンテキストのコスト管理がハマりポイント
- 日常はSonnet、深い思考が必要なときだけOpusという使い分けが財布にやさしい
参考: Anthropic公式ドキュメント - Build with Claude