Claude API Python完全入門【2026年最新】

AI
  1. Claude APIとは?料金・モデル選択の基礎知識
    1. Claude 3.5 Sonnet/Haiku/Opusの違いと使い分け
    2. 2026年現在の料金体系とコスト試算の考え方
    3. OpenAI APIとの主な違い(移行者向け比較)
  2. 環境構築とAPIキー取得(5分で完了)
    1. Anthropic Consoleでのアカウント作成とAPIキー発行手順
    2. Python仮想環境のセットアップとanthropicパッケージのインストール
    3. .envファイルによるAPIキーの安全な管理方法
  3. 基本的なテキスト生成:最初のAPI呼び出し
    1. messages.create()の基本構造とパラメータ解説
    2. systemプロンプトでAIの役割・口調を制御する方法
    3. max_tokens・temperatureなど主要パラメータの調整指針
  4. 会話履歴管理:マルチターン対話の実装
    1. messagesリストの組み立て方と役割(user/assistant)の仕組み
    2. 会話履歴をリストで蓄積するチャットボット実装例
    3. 履歴が長くなった場合のトークン節約テクニック
  5. ストリーミングレスポンスで体験を向上させる
    1. ストリーミングの有効化とイテレータの処理方法
    2. ターミナルでのストリーミング表示実装
  6. エラーハンドリングとレート制限対策
    1. 主要な例外クラスの種類と対処法
    2. 指数バックオフによる自動リトライの実装パターン
  7. 実践応用:Claude APIでWordPress記事を自動投稿する
    1. システム全体像:記事生成→WordPress REST API投稿のフロー
    2. Claude APIでSEO構成・本文を生成するプロンプト設計
    3. REST APIで下書き投稿するコード実装
  8. コスト最適化:Claude APIを効率よく使う
    1. モデル使い分け戦略:タスク別にSonnet/Haikuを切り替える
    2. 月間コストのモニタリングとバジェットアラート設定
  9. まとめ

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習得の近道です。

コメント

タイトルとURLをコピーしました