AI・機械学習

Claude APIをPythonで使う方法!ChatGPTとの違いも徹底比較

「ChatGPTのAPIは使ったことあるけど、ClaudeのAPIってどうやって使うの?」

そんな疑問を持っている方、けっこう多いんじゃないでしょうか。AnthropicのAI「Claude」は、長文処理や安全性の高さで注目を集めていて、PythonからAPIで呼び出すことも簡単にできます。

この記事では、Claude APIをPythonで使う手順をゼロから丁寧に解説します。後半ではChatGPT(OpenAI API)との違いも比較するので、どちらを使うか迷っている方にもヒントになるはずです 🙌

対象読者:Pythonの基礎がわかる初〜中級者の方

Claude APIとは?まずざっくり理解しよう

AI chatbot programming
AI chatbot programming / Photo by Matheus Bertelli via Pexels

Claudeは、Anthropicが開発した大規模言語モデル(LLM)です。ChatGPTと同じく、テキストの生成・要約・翻訳・コード生成などができます。

イメージとしては「ChatGPTのライバル版AI」という感じですが、特に以下の点で差別化されています。

  • 長いコンテキストウィンドウ(大量のテキストを一度に処理できる)
  • 安全性・倫理性への配慮が設計思想に組み込まれている
  • 長文ドキュメントの読み込み・要約が得意
  • ✅ 日本語の精度も年々向上中

APIとして使うことで、Pythonのプログラムの中から自由にClaudeを呼び出せるようになります。Webアプリ・自動化ツール・チャットボットなど、応用範囲は広いですよ。

事前準備:APIキーを取得しよう

まずAnthropicの公式サイト(console.anthropic.com)でアカウントを作成し、APIキーを発行してください。

手順はこんな感じです。

  1. Anthropicのコンソールにアクセス・サインアップ
  2. 「API Keys」メニューからキーを新規作成
  3. 発行されたキーをコピーして、安全な場所に保管

⚠️ 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との使い分けについても今後掘り下げていく予定です。一緒に学んでいきましょう 🚀

📚 関連商品・おすすめ書籍

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

もしも

スッキリわかるPython入門 第2版 (スッキリわかる入門シリーズ)

初心者に定番のPython入門書

Amazonで見る

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

もしも

実践Claude Code入門―現場で活用するためのAIコーディングの思考法

AIコーディングの現場活用法を学ぶ一冊

Amazonで見る

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

もしも

Python Web開発実践入門 ―― FastAPIによるWebAPI開発と非同期処理

FastAPIでWebAPI開発を実践的に学ぶ

Amazonで見る

※本記事にはアフィリエイトリンクが含まれます。

ABOUT ME
やまちゃん
これまで学生と社会人を合わせて5000人以上にプログラミング学習を指導。 ゼロからイチをわかりやすく解説する専門家として活動しており、本業ではArduinoを用いたIoT開発とロボットプログラミングが専門。 Pythonを用いたアプリ開発、ウェブアプリケーションの開発で業務の効率化をサポートしています。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です