コンテンツへスキップ

media AI活用の最前線

ツール比較・実践ガイド

【2026年最新】Claude API Python SDK入門|実装例5選

【2026年最新】Claude API Python SDK入門|実装例5選

結論: Claude APIは「pip install anthropic」の1行から始まり、Haiku 4.5なら1Mトークン$0.80/$4でコスト効率よくAIアプリを構築できます。

この記事の要点:

  • 要点1: APIキー取得→SDK install→最初のメッセージまで10分で完了。4ステップで動かせる
  • 要点2: Haiku 4.5(軽量・高速)/ Sonnet 4.6(バランス)/ Opus 4.6(最高品質)の3モデルを用途別に解説
  • 要点3: 基本リクエスト・ストリーミング・マルチターン・ツール使用・画像解析の5実装パターンを全公開

対象読者: Pythonを少し書けるビジネスパーソンやDX担当者でClaude APIを使ったアプリ開発を始めたい方
読了後にできること: 今日中にClaude APIを呼び出す最初のPythonスクリプトを動かせる


「ChatGPTのAPIは調べたけど、ClaudeのAPIってどう始めるの?」

研修先のエンジニア担当者から最近増えてきた質問です。Claude(Anthropic製AI)が企業での評判が上がるにつれ、「自社システムにClaude APIを組み込みたい」という相談が増えてきました。

実際に触ってみると、Claude APIはOpenAIのAPIと似た構造で、OpenAI APIを使ったことがある方なら驚くほどスムーズに移行できます。そしてClaude APIの大きな特徴は1Mトークン(Opus 4.6)という驚異的な長いコンテキストウィンドウ。長文の契約書・報告書・コードベースを丸ごと渡して分析させることができます。

この記事では、Claude APIのPython SDKを使って「最初のメッセージを送る」から「ツール使用(function calling)まで」をコピペ可能なコードで全解説します。

Gemini APIとの比較についてはGemini API入門ガイド、Claude全体の概要はChatGPT活用 完全ガイドもあわせてご覧ください。

まず試したい「5分即効」コード3選

即効コード1:インストールと最初のメッセージ

# ターミナルでインストール
pip install anthropic

# Python スクリプト (hello_claude.py)
import anthropic
import os

# クライアントを作成
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

# 最初のメッセージを送る
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "こんにちは!あなたは何ができますか?日本語で教えてください。"}
    ]
)

print(message.content[0].text)
# 不足している情報があれば、最初に質問してから作業を開始してください。

効果: これだけで動く。ANTHROPIC_API_KEY環境変数を設定してpython hello_claude.pyで実行するだけ。

即効コード2:ストリーミング(リアルタイム出力)

import anthropic
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

# ストリーミングで文字を逐次表示(ChatGPTのような表示)
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=512,
    messages=[{"role": "user", "content": "中小企業がAIを導入すべき理由を5つ教えてください。"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
print()  # 改行
# 仮定した点は必ず"仮定"と明記してください。

即効コード3:システムプロンプトでAIをカスタマイズ

import anthropic
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

# システムプロンプトで「役割」を設定
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system="""あなたは株式会社〇〇の優秀なカスタマーサポート担当者です。
製品についての質問に丁寧かつ簡潔に答えてください。
わからないことは正直に「確認が必要です」と答えてください。
数字と固有名詞は、根拠(出典/計算式)を添えてください。""",
    messages=[
        {"role": "user", "content": "返品ポリシーについて教えてください"}
    ]
)
print(message.content[0].text)

Step 1: APIキーの取得(5分)

  1. console.anthropic.comにアクセス
  2. アカウント作成(Google/GitHub連携可)
  3. 「API Keys」→「Create Key」でAPIキーを発行
  4. 環境変数に設定する:
# Mac/Linux (ターミナル)
export ANTHROPIC_API_KEY="sk-ant-api03-..."

# .envファイルを使う場合(推奨)
# pip install python-dotenv
# .env ファイルに記載:
# ANTHROPIC_API_KEY=sk-ant-api03-...

# Python側:
from dotenv import load_dotenv
load_dotenv()
import os
api_key = os.environ.get("ANTHROPIC_API_KEY")
# 不足している情報があれば、最初に質問してから作業を開始してください。

重要: APIキーをGitHubにアップロードしないこと。.gitignoreに.envを必ず追加してください。

AI活用、何から始めればいい?

100社以上の研修実績をもとに、30分の無料相談で貴社の課題を整理します。

無料相談はこちら 資料ダウンロード(無料)

Step 2: モデル選定とコスト計算

2026年3月時点のClaude APIの主要モデルです(料金は変更される場合があります。最新はAnthropic公式で確認)。

モデル入力(1Mトークン)出力(1Mトークン)コンテキストおすすめ用途
Haiku 4.5$0.80$4.00200K高頻度・軽量タスク(分類・要約・チャット)
Sonnet 4.6$3.00$15.00200Kバランス型(コード生成・分析・一般業務)
Opus 4.6$15.00$75.001M最高品質・長文(大規模コードレビュー・研究)

コスト感の目安(参考値):

  • 日本語テキスト100字 ≈ 約100〜200トークン
  • Haiku 4.5で1日1,000リクエスト(各200トークン入出力)= 推定コスト $0.24〜程度(実際の利用パターンによる)
  • 月額換算: $7〜程度(変動あり)

Step 3: Python実装例5選

実装例1:マルチターン会話(チャットボット)

import anthropic
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

def chat(conversation_history: list, user_message: str) -> tuple:
    """会話履歴を保持したチャット関数"""
    # 新しいメッセージを追加
    conversation_history.append({"role": "user", "content": user_message})

    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        system="あなたは親切なビジネスアシスタントです。",
        messages=conversation_history
    )

    assistant_message = response.content[0].text

    # アシスタントの返答を履歴に追加
    conversation_history.append({"role": "assistant", "content": assistant_message})

    return assistant_message, conversation_history

# 会話ループ
history = []
print("チャット開始('quit'で終了)")
while True:
    user_input = input("あなた: ")
    if user_input.lower() == "quit":
        break
    reply, history = chat(history, user_input)
    print(f"Claude: {reply}n")
# 不足している情報があれば、最初に質問してから作業を開始してください。

実装例2:ドキュメント分析(長文対応)

import anthropic
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

def analyze_document(document_text: str, task: str) -> str:
    """長文ドキュメントを分析する(最大200Kトークン対応)"""
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=2048,
        messages=[
            {
                "role": "user",
                "content": f"""以下のドキュメントについて、{task}

ドキュメント:
{document_text}

仮定した点は必ず"仮定"と明記してください。"""
            }
        ]
    )
    return response.content[0].text

# 使用例(契約書レビュー)
with open("contract.txt", "r", encoding="utf-8") as f:
    contract = f.read()

review = analyze_document(
    contract,
    "重要な条項を抽出し、リスクがある点を指摘してください。法的判断は専門家に確認が必要です。"
)
print(review)

実装例3:ツール使用(Tool Use / Function Calling)

import anthropic
import json
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

# ツール定義(Claudeが使える「関数」を定義)
tools = [
    {
        "name": "get_weather",
        "description": "指定した都市の天気情報を取得する",
        "input_schema": {
            "type": "object",
            "properties": {
                "city": {"type": "string", "description": "都市名(例: 東京, 大阪)"},
                "date": {"type": "string", "description": "日付(例: 今日, 明日)"}
            },
            "required": ["city"]
        }
    }
]

# ツールを実際に実行する関数
def execute_tool(tool_name: str, tool_input: dict) -> str:
    if tool_name == "get_weather":
        # 実際には天気APIを呼ぶ。ここではモック
        return f"{tool_input['city']}の天気: 晴れ、気温22度(モックデータ)"
    return "ツールが見つかりません"

# Claudeにツール使用を許可してメッセージ送信
response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=tools,
    messages=[{"role": "user", "content": "東京の今日の天気を教えてください"}]
)

# ツール使用が要求された場合の処理
if response.stop_reason == "tool_use":
    tool_use = [block for block in response.content if block.type == "tool_use"][0]
    tool_result = execute_tool(tool_use.name, tool_use.input)
    print(f"ツール実行結果: {tool_result}")
# 数字と固有名詞は、根拠(出典/計算式)を添えてください。

実装例4:画像の分析(ビジョン)

import anthropic
import base64
import os

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

def analyze_image(image_path: str, question: str) -> str:
    """画像を分析する"""
    with open(image_path, "rb") as f:
        image_data = base64.standard_b64encode(f.read()).decode("utf-8")

    ext = image_path.split(".")[-1].lower()
    media_types = {"jpg": "image/jpeg", "jpeg": "image/jpeg",
                   "png": "image/png", "gif": "image/gif", "webp": "image/webp"}
    media_type = media_types.get(ext, "image/jpeg")

    message = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        messages=[
            {
                "role": "user",
                "content": [
                    {
                        "type": "image",
                        "source": {"type": "base64", "media_type": media_type, "data": image_data}
                    },
                    {"type": "text", "text": question}
                ]
            }
        ]
    )
    return message.content[0].text

# 使用例(商品写真の説明文生成)
description = analyze_image(
    "product.jpg",
    "この商品の特徴を200字でECサイト向けに説明してください。"
)
print(description)
# 不足している情報があれば、最初に質問してから作業を開始してください。

実装例5:バッチ処理(大量データの効率処理)

import anthropic
import os, time

client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))

def batch_classify(texts: list, categories: list) -> list:
    """複数テキストを一括分類(レート制限考慮)"""
    results = []
    category_str = "・".join(categories)

    for i, text in enumerate(texts):
        prompt = f"""以下のテキストを「{category_str}」のいずれか1つに分類してください。
カテゴリ名のみを返答してください。

テキスト: {text}"""

        try:
            response = client.messages.create(
                model="claude-haiku-4-5",  # バッチ処理はHaikuが最適
                max_tokens=50,
                messages=[{"role": "user", "content": prompt}]
            )
            results.append(response.content[0].text.strip())
        except anthropic.RateLimitError:
            time.sleep(60)  # レート制限時は1分待機してリトライ
            results.append("ERROR_RATE_LIMIT")

        # 50件ごとに少し待機(API負荷軽減)
        if i % 50 == 0 and i > 0:
            time.sleep(1)

    return results

# 使用例(問い合わせメールのカテゴリ分類)
emails = ["返品したい", "配送が遅い", "商品の使い方がわからない"]
categories = ["返品・交換", "配送", "製品サポート", "請求", "その他"]
results = batch_classify(emails, categories)
for email, category in zip(emails, results):
    print(f"{email} → {category}")
# 数字と固有名詞は、根拠(出典/計算式)を添えてください。

【要注意】Claude API入門の失敗パターン

失敗1:max_tokensを設定しない

❌ max_tokensを省略してリクエスト(デフォルト値はモデルによって異なる)
⭕ 必要最低限のmax_tokensを設定して不要なコスト増を防ぐ

失敗2:エラーハンドリングを省略する

❌ try/exceptなしでAPIを呼ぶ(RateLimitError, APIConnectionErrorが起きると落ちる)
⭕ 少なくともanthropicの主要例外(RateLimitError, APIConnectionError)を処理する

import anthropic

try:
    response = client.messages.create(...)
except anthropic.RateLimitError:
    print("レート制限に達しました。しばらく待ってから再試行してください。")
except anthropic.APIConnectionError:
    print("API接続エラー。ネットワーク接続を確認してください。")
except anthropic.APIStatusError as e:
    print(f"APIエラー: {e.status_code} {e.message}")
# 仮定した点は必ず"仮定"と明記してください。

失敗3:コンテキストウィンドウを超える入力を送る

❌ 無制限に会話履歴を保持し続けてコンテキスト上限を超えてエラーになる
⭕ 会話履歴は最新N件に制限するか、要約してから渡す

失敗4:モデルを最高品質に固定する

❌ 全てのタスクにOpus 4.6を使って月額コストが急増
⭕ 軽量タスク(分類・要約)はHaiku 4.5、重要タスクはSonnetという使い分けをする

まとめ:今日から始める3つのアクション

  1. 今日やること: console.anthropic.comでAPIキーを取得して即効コード1(hello_claude.py)を実行してみる
  2. 今週中: 実装例5選から自社業務に最も近いもの1つを選んでカスタマイズし、実際のデータで試す
  3. 今月中: モデルの使い分け(Haiku/Sonnet/Opus)を意識したコスト管理を始め、月次の利用料金を確認する

Claude APIはAnthropicの公式SDKが充実しており、日本語のドキュメントも増えてきています。まず動かすことが最優先。10分のセットアップで最初のAIアプリが動く体験は、必ず次のアイデアを生み出します。

あわせて読みたい:


参考・出典


著者: 佐藤傑(さとう・すぐる)
株式会社Uravation代表取締役。早稲田大学法学部在学中に生成AIの可能性に魅了され、X(@SuguruKun_ai)フォロワー約10万人。100社以上の企業向けAI研修・導入支援。著書『AIエージェント仕事術』(SBクリエイティブ)。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。

ご質問・ご相談はお問い合わせフォームからお気軽にどうぞ。

あわせて読みたい

佐藤傑
この記事を書いた人 佐藤傑

株式会社Uravation代表取締役。早稲田大学法学部在学中に生成AIの可能性に魅了され、X(旧Twitter)で活用法を発信(@SuguruKun_ai、フォロワー10万人超)。100社以上の企業向けAI研修・導入支援を展開。著書累計3万部突破。SoftBank IT連載7回執筆(NewsPicks最大1,125ピックス)。

この記事をシェア

Claude Codeを本格的に使いこなしたい方へ

週1回・1時間のマンツーマン指導で、3ヶ月後にはClaude Codeで自走できる実力が身につきます。
現役エンジニアが貴方の業務に合わせてカリキュラムをカスタマイズ。

✓ 1対1のマンツーマン ✓ 全12回・3ヶ月 ✓ 実務ベースの指導
Claude Code 個別指導の詳細を見る まずは無料相談

contact お問い合わせ

生成AI研修や開発のご依頼、お見積りなど、
お気軽にご相談ください。

Claude Code 個別指導(1対1・12セッション)をご希望の方はこちらから別途お申し込みください

Claude Code 個別指導 無料相談