Amazonでお得な買い物

【Python中級】Claude APIをPythonで呼び出す

目次
スポンサーリンク

Anthropic Claude APIとは?

Claude APIは、Anthropicが開発したAI「Claude」をプログラムから直接操作できるサービスです。ChatGPTと同様にテキスト生成・要約・翻訳などが行えますが、長文処理の精度の高さ安全性への配慮が特徴です。

主な用途は以下の通りです。

  • テキスト生成・要約・翻訳
  • 長文ドキュメントの解析・質問応答
  • コードの自動生成・レビュー
  • チャットボットの構築

料金は従量課金制です。今回使用するclaude-haiku-4-5はAnthropicの中で最も高速・低コストなモデルで、入門用途に最適です。

事前準備

APIキーの発行

  1. Anthropic Console にアクセスしてアカウントを作成
  2. 「API Keys」→「Create Key」でAPIキーを発行
  3. 発行されたキーは一度しか表示されないので必ずメモしておく

ライブラリのインストール

以下の2つをインストールします。

pip install anthropic python-dotenv
  • anthropic:Claude APIを呼び出すための公式ライブラリ
  • python-dotenv:APIキーを環境変数で安全に管理するためのライブラリ

APIキーを環境変数で管理する

APIキーをコードに直接書くのはNGです。誤ってGitHubに公開してしまうリスクがあります。.envファイルで管理しましょう。

プロジェクトのルートに.envファイルを作成し、以下のように記述します。

ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxx

.gitignore.envを追加して、誤って公開しないようにしておきましょう。

.env

テキスト生成のコード

では実際にAPIを呼び出してみましょう。以下のコードをそのまま実行できます。

import anthropic
from dotenv import load_dotenv
import os

# .envファイルの内容を読み込む
load_dotenv()

# クライアントの初期化
client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))

# APIリクエスト
message = client.messages.create(
    model="claude-haiku-4-5",
    max_tokens=1024,
    system="あなたは親切なアシスタントです。",
    messages=[
        {"role": "user", "content": "Pythonの魅力を一言で教えて"}
    ]
)

# レスポンスの表示
print(message.content[0].text)

実行するとこのような出力が得られます。

シンプルで読みやすい文法と豊富なライブラリが、初心者から専門家まで幅広く愛される理由です。

OpenAI APIとの構造の違い

OpenAI APIを使ったことがある方は、以下の違いに注意してください。

項目OpenAI APIClaude API
systemの指定messages内にrole: systemで記述system引数として独立して指定
レスポンス取得response.choices[0].message.contentmessage.content[0].text
max_tokens省略可能必須(省略するとエラー)

messagesの構造について

messagesはリスト形式で、各メッセージにrolecontentを指定します。systemロールはmessagesの外で指定する点がOpenAI APIとの大きな違いです。

role役割
userユーザーからの入力(質問・指示)
assistantAIの過去の返答(会話履歴を持たせるときに使用)

主要パラメータの解説

よく使うパラメータをまとめます。

パラメータ役割推奨値・目安
model使用するモデルの指定claude-haiku-4-5(高速・低コスト)
max_tokens出力の最大トークン数(必須)1024を基本に用途で調整
temperature出力のランダム性(0〜1)創作:0.8〜1.0 / 要約・翻訳:0.0〜0.3
systemAIの振る舞いの設定「〜してください」形式で指示

temperatureを指定して試してみましょう。

message = client.messages.create(
    model="claude-haiku-4-5",
    max_tokens=200,
    temperature=0.9,   # 高いほど創造的・ランダムな出力になる
    messages=[
        {"role": "user", "content": "短い詩を書いて"}
    ]
)

print(message.content[0].text)

まとめ

今回やったことを振り返ります。

  • Anthropic ConsoleでAPIキーを発行し、.envで安全に管理した
  • anthropicライブラリを使ってテキスト生成を実行した
  • OpenAI APIとの構造の違い(systemの位置・max_tokens必須)を把握した

次回は会話履歴を管理して、文脈を理解するChatbotを作る方法を解説します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

都内の精密機器を作っている会社に勤務している14年目のエンジニアです。趣味は美味しいものを食べることとゴルフ。プログラムについて今まで学んだことをわかりやすく発信するサイトを目指しています。

コメント

コメントする

目次