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)

これだけです。modelclaude-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

K
AWS・Python・生成AIを専門とするソフトウェアエンジニア。AI・クラウド・開発ワークフローの実践ガイドを執筆しています。詳しく見る →