「ChatGPTのAPIは使ったことあるけど、ClaudeのAPIってどうやって使うの?」
そんな疑問を持っている方、けっこう多いんじゃないでしょうか。AnthropicのAI「Claude」は、長文処理や安全性の高さで注目を集めていて、PythonからAPIで呼び出すことも簡単にできます。
この記事では、Claude APIをPythonで使う手順をゼロから丁寧に解説します。後半ではChatGPT(OpenAI API)との違いも比較するので、どちらを使うか迷っている方にもヒントになるはずです 🙌
対象読者:Pythonの基礎がわかる初〜中級者の方
Claude APIとは?まずざっくり理解しよう

Claudeは、Anthropicが開発した大規模言語モデル(LLM)です。ChatGPTと同じく、テキストの生成・要約・翻訳・コード生成などができます。
イメージとしては「ChatGPTのライバル版AI」という感じですが、特に以下の点で差別化されています。
- ✅ 長いコンテキストウィンドウ(大量のテキストを一度に処理できる)
- ✅ 安全性・倫理性への配慮が設計思想に組み込まれている
- ✅ 長文ドキュメントの読み込み・要約が得意
- ✅ 日本語の精度も年々向上中
APIとして使うことで、Pythonのプログラムの中から自由にClaudeを呼び出せるようになります。Webアプリ・自動化ツール・チャットボットなど、応用範囲は広いですよ。
事前準備:APIキーを取得しよう
まずAnthropicの公式サイト(console.anthropic.com)でアカウントを作成し、APIキーを発行してください。
手順はこんな感じです。
- Anthropicのコンソールにアクセス・サインアップ
- 「API Keys」メニューからキーを新規作成
- 発行されたキーをコピーして、安全な場所に保管
⚠️ APIキーは絶対にコードに直書きしないこと!環境変数で管理するのがベストプラクティスです。
Pythonライブラリをインストールしよう
AnthropicはPython用の公式SDKを提供しています。インストールはpipで一発です。
pip install anthropic
インストールが終わったら、次のコマンドでバージョン確認をしておきましょう。
pip show anthropic
問題なくインストールできていれば、準備完了です 🎉
PythonでClaude APIを呼び出してみよう
まずは一番シンプルなサンプルを見てみましょう。
import anthropic
import os
# APIキーは環境変数から読み込む(安全な管理のため)
client = anthropic.Anthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
# Claudeにメッセージを送信
message = client.messages.create(
model="claude-opus-4-5", # 使用するモデル名
max_tokens=1024, # 最大トークン数
messages=[
{
"role": "user",
"content": "Pythonとは何ですか?初心者向けに簡単に教えてください。"
}
]
)
# 返答を表示
print(message.content[0].text)
ポイントをまとめるとこんな感じです。
- anthropic.Anthropic()でクライアントを作成する
- client.messages.create()でメッセージを送る
- モデル名には最新のclaude-opus-4-5などを指定する
- レスポンスはmessage.content[0].textで取り出せる
OpenAI APIを使ったことがある方は「なんか似てる!」と感じるはずです。実際に構造がかなり近いので、乗り換えもしやすいですよ 😊
システムプロンプトを設定してみよう
Claudeにキャラクターや役割を与えるには、systemパラメータを使います。これがいわゆる「システムプロンプト」です。
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
# システムプロンプトでClaudeに役割を与える
message = client.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
system="あなたはPythonの専門家です。初心者にもわかりやすく、具体的なコード例を交えて説明してください。", # ここがポイント!
messages=[
{
"role": "user",
"content": "リスト内包表記について教えてください。"
}
]
)
print(message.content[0].text)
systemパラメータはOpenAIの場合はmessagesリストの中に{"role": "system", ...}として入れますが、Claudeでは独立したsystemパラメータとして渡す形になっています。ここが地味に異なるポイントです。
ChatGPT(OpenAI API)との比較
「結局、ClaudeとChatGPTのAPIってどっちがいいの?」という疑問にお答えします。
以下の表で主な違いを整理してみました。
| 比較項目 | Claude API | OpenAI API(ChatGPT) |
|---|---|---|
| 提供元 | Anthropic | OpenAI |
| Pythonライブラリ | anthropic | openai |
| コンテキストウィンドウ | 最大200,000トークン(claude-3系) | 最大128,000トークン(gpt-4o) |
| システムプロンプトの渡し方 | 独立したsystemパラメータ | messagesリスト内にrole:systemで記載 |
| レスポンスの取り出し方 | message.content[0].text | response.choices[0].message.content |
| 特徴 | 長文処理・安全性重視 | 幅広いエコシステム・ツール連携 |
コードの書き方はかなり似ていますが、細部が微妙に異なります。特にレスポンスの取り出し方は混乱しやすいので、最初に確認しておくと安心です。
どちらが「良い」かは用途次第です。
- 📄 長文ドキュメントの処理・要約 → Claudeが得意
- 🔧 プラグイン・ツール連携を多用したい → OpenAI APIが充実
- 🌐 幅広い言語モデルを試したい → 両方試して比較するのがおすすめ
会話履歴を持たせる(マルチターン対話)
チャットボットのように、前の会話を踏まえたやり取りをさせるには、messagesリストに履歴を追加していきます。
import anthropic
import os
client = anthropic.Anthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY")
)
# 会話履歴を管理するリスト
conversation_history = []
def chat(user_input):
# ユーザーの発言を履歴に追加
conversation_history.append({
"role": "user",
"content": user_input
})
# APIを呼び出す(履歴をまるごと渡す)
response = client.messages.create(
model="claude-opus-4-5",
max_tokens=1024,
system="あなたは親切なアシスタントです。",
messages=conversation_history # 全履歴を渡すのがポイント
)
# Claudeの返答を取得
assistant_reply = response.content[0].text
# Claudeの返答も履歴に追加
conversation_history.append({
"role": "assistant",
"content": assistant_reply
})
return assistant_reply
# 試してみよう
print(chat("私の名前はタロウです。"))
print(chat("私の名前を覚えていますか?")) # ちゃんと覚えているはず!
ここが重要です。APIは状態を持ちません。なので、毎回の呼び出しに過去の会話履歴をまるごとmessagesリストに入れて渡す必要があります。これはOpenAI APIも同じ仕組みです。
これ、実際に動かす前に「2回目の質問でちゃんと名前を覚えているか」予測できますか?答えはYesです。履歴を渡しているので、ちゃんと文脈を引き継いでくれますよ 🙂
まとめ
今回はClaude APIをPythonで使う方法をゼロから解説しました。学んだことをおさらいするとこんな感じです。
- ✅ anthropicライブラリをpipでインストールして使う
- ✅ client.messages.create()でメッセージを送信する
- ✅ systemパラメータでキャラクター・役割を設定できる
- ✅ 会話履歴はmessagesリストに追加して渡す
- ✅ ChatGPTのAPIと構造は似ているが、細部が異なる
「むずかしそう」と思っていたClaudeのAPI連携も、実際に触れてみると意外とシンプルですよね。まずは簡単なサンプルコードから試してみてください!
Claudeの特性を活かした長文処理や、OpenAI APIとの使い分けについても今後掘り下げていく予定です。一緒に学んでいきましょう 🚀





