AnthropicのClaude APIを使えば、Python上からClaudeの高度な言語処理能力を自分のプログラムに組み込むことができます。文章の要約・翻訳・分類・コード生成など、さまざまな自動化ツールを比較的シンプルなコードで構築できます。
本記事では、Claude APIの基本概念から始まり、APIキーの取得方法、Pythonでの実装方法、そして実用的なサンプルコードまでをステップバイステップで解説します。
Claude API とは
Claude APIは、Anthropicが提供するREST API形式のサービスです。自身のアプリケーション・スクリプト・サービスからHTTPリクエストでClaudeモデルを呼び出し、テキスト・コード・画像の分析・生成を行えます。
利用可能なモデル(2026年3月時点)
| モデル名 | 特徴 | 用途 |
|---|---|---|
| claude-3-7-sonnet-20250219 | 高性能・汎用 | 複雑なタスク全般 |
| claude-3-5-haiku-20241022 | 高速・低コスト | シンプルなタスク、大量処理 |
| claude-opus-4 | 最高性能 | 高度な推論・研究用途 |
公式ドキュメント:docs.anthropic.com
Claude API キーの取得方法
ステップ1:Anthropicアカウントの作成
console.anthropic.com にアクセスし、メールアドレスまたはGoogleアカウントでサインアップします。
ステップ2:APIキーの発行
- コンソールにログイン後、左メニューから「API Keys」を選択
- 「Create Key」ボタンをクリック
- キーに名前をつけて「Create Key」を実行
- 表示されたAPIキー(
sk-ant-...で始まる文字列)をコピーして安全な場所に保管
重要:APIキーは一度しか表示されません。必ず保管しておきましょう。また、GitHubなどの公開リポジトリにAPIキーを直接書き込まないよう注意してください。
ステップ3:環境変数への設定
APIキーはソースコードに直接書かず、環境変数として管理します。
# .envファイルを作成
echo "ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxx" > .env
# または.bashrc / .zshrcに追記
export ANTHROPIC_API_KEY="sk-ant-xxxxxxxxxxxxxxxx"
Pythonでの基本的な使い方
インストール
pip install anthropic python-dotenv
基本的な呼び出し(Hello Claude)
import anthropic
import os
from dotenv import load_dotenv
# 環境変数を読み込む
load_dotenv()
# クライアントを初期化
client = anthropic.Anthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
# メッセージを送信
message = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=1024,
messages=[
{"role": "user", "content": "Pythonで'Hello, World!'を出力するコードを教えてください"}
]
)
print(message.content[0].text)
パラメータの説明
| パラメータ | 説明 |
|---|---|
| model | 使用するClaudeモデルのID |
| max_tokens | 生成するテキストの最大トークン数(目安:日本語1文字≒1.5トークン) |
| messages | 会話履歴の配列。role(user/assistant)とcontentで構成 |
| system | システムプロンプト(AIの役割・制約を設定) |
| temperature | 出力のランダム性(0〜1、高いほど多様な応答) |
実用的なサンプルコード
サンプル1:テキスト要約ツール
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def summarize_text(text: str, max_chars: int = 300) -> str:
"""
テキストを指定文字数以内に要約する
"""
message = client.messages.create(
model="claude-3-5-haiku-20241022", # 高速・低コストモデルを使用
max_tokens=512,
system="あなたは優秀な文章要約アシスタントです。与えられたテキストを指定の文字数以内で簡潔に要約してください。",
messages=[
{
"role": "user",
"content": f"以下のテキストを{max_chars}文字以内で要約してください:\n\n{text}"
}
]
)
return message.content[0].text
# 使用例
sample_text = """
人工知能(AI)は、2020年代に入り急速な発展を遂げています。
特に大規模言語モデル(LLM)の登場により、テキストの生成・翻訳・要約・
コード生成など様々な分野での活用が一般化しました。
企業では業務効率化のためのAI導入が加速しており、
2025年時点で全世界の企業の60%以上が何らかの形でAIを活用しているとされています。
"""
summary = summarize_text(sample_text)
print(f"要約結果:\n{summary}")
サンプル2:多言語翻訳ツール
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def translate_text(text: str, target_language: str = "English") -> str:
"""
テキストを指定言語に翻訳する
"""
message = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=1024,
messages=[
{
"role": "user",
"content": f"以下のテキストを{target_language}に翻訳してください。翻訳文のみを出力してください:\n\n{text}"
}
]
)
return message.content[0].text
# 使用例
japanese_text = "AIツールを活用することで、業務効率を大幅に向上させることができます。"
english = translate_text(japanese_text, "English")
chinese = translate_text(japanese_text, "中国語(簡体字)")
print(f"英語翻訳:{english}")
print(f"中国語翻訳:{chinese}")
サンプル3:会話履歴を保持するチャットボット
import anthropic
import os
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def create_chatbot():
"""
会話履歴を保持するシンプルなチャットボット
"""
conversation_history = []
print("チャットボットを起動しました。'終了'と入力すると終了します。")
while True:
user_input = input("\nあなた: ")
if user_input.strip() == "終了":
print("チャットボットを終了します。")
break
# 会話履歴にユーザーメッセージを追加
conversation_history.append({
"role": "user",
"content": user_input
})
# APIを呼び出し
response = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=1024,
system="あなたは親切で丁寧なAIアシスタントです。日本語で回答してください。",
messages=conversation_history
)
assistant_message = response.content[0].text
# 会話履歴にアシスタントの返答を追加
conversation_history.append({
"role": "assistant",
"content": assistant_message
})
print(f"\nClaude: {assistant_message}")
create_chatbot()
サンプル4:CSVデータの自動分析
import anthropic
import os
import csv
import io
client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY"))
def analyze_csv_data(csv_content: str) -> str:
"""
CSVデータをClaudeに分析させる
"""
message = client.messages.create(
model="claude-3-7-sonnet-20250219",
max_tokens=2048,
system="あなたはデータアナリストです。提供されたCSVデータを分析し、主要な洞察・傾向・異常値を日本語で報告してください。",
messages=[
{
"role": "user",
"content": f"以下のCSVデータを分析してください:\n\n{csv_content}"
}
]
)
return message.content[0].text
# 使用例
sample_csv = """月,売上(万円),前月比
1月,1200,+5%
2月,980,-18%
3月,1450,+48%
4月,1380,-5%
5月,1600,+16%
"""
analysis = analyze_csv_data(sample_csv)
print(f"分析結果:\n{analysis}")
APIコストの管理
Claude APIは従量課金制です。コストを管理するためのポイントを紹介します。
トークン数を確認する
# APIレスポンスには使用トークン数が含まれる
print(f"入力トークン数: {message.usage.input_tokens}")
print(f"出力トークン数: {message.usage.output_tokens}")
コスト試算(2026年3月時点の概算)
| モデル | 入力 (1Mトークン) | 出力 (1Mトークン) |
|---|---|---|
| claude-3-7-sonnet | 3.00ドル | 15.00ドル |
| claude-3-5-haiku | 0.80ドル | 4.00ドル |
| claude-opus-4 | 15.00ドル | 75.00ドル |
シンプルな処理(要約・分類など)はclaude-3-5-haikuを使うことでコストを大幅に削減できます。
まとめ
Claude APIとPythonを組み合わせることで、高度な自然言語処理機能を自分のアプリケーションに組み込むことができます。
- APIキーは環境変数で安全に管理し、ソースコードに直接書かない
- モデル選択でコスト最適化:シンプルなタスクはHaiku、複雑なタスクはSonnetを使い分け
- 会話履歴を保持することで、コンテキストを踏まえた自然な対話が実現できる
- max_tokens の設定でコストをコントロールする
公式ドキュメントには豊富なサンプルコードと詳細なAPIリファレンスが用意されています。本記事のサンプルコードを基に、自分なりのツールを作ってみてください。