目次
スポンサーリンク
Anthropic Claude APIとは?
Claude APIは、Anthropicが開発したAI「Claude」をプログラムから直接操作できるサービスです。ChatGPTと同様にテキスト生成・要約・翻訳などが行えますが、長文処理の精度の高さや安全性への配慮が特徴です。
主な用途は以下の通りです。
- テキスト生成・要約・翻訳
- 長文ドキュメントの解析・質問応答
- コードの自動生成・レビュー
- チャットボットの構築
料金は従量課金制です。今回使用するclaude-haiku-4-5はAnthropicの中で最も高速・低コストなモデルで、入門用途に最適です。
事前準備
APIキーの発行
- Anthropic Console にアクセスしてアカウントを作成
- 「API Keys」→「Create Key」でAPIキーを発行
- 発行されたキーは一度しか表示されないので必ずメモしておく
ライブラリのインストール
以下の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 API | Claude API |
|---|---|---|
| systemの指定 | messages内にrole: systemで記述 | system引数として独立して指定 |
| レスポンス取得 | response.choices[0].message.content | message.content[0].text |
max_tokens | 省略可能 | 必須(省略するとエラー) |
messagesの構造について
messagesはリスト形式で、各メッセージにroleとcontentを指定します。systemロールはmessagesの外で指定する点がOpenAI APIとの大きな違いです。
| role | 役割 |
|---|---|
user | ユーザーからの入力(質問・指示) |
assistant | AIの過去の返答(会話履歴を持たせるときに使用) |
主要パラメータの解説
よく使うパラメータをまとめます。
| パラメータ | 役割 | 推奨値・目安 |
|---|---|---|
model | 使用するモデルの指定 | claude-haiku-4-5(高速・低コスト) |
max_tokens | 出力の最大トークン数(必須) | 1024を基本に用途で調整 |
temperature | 出力のランダム性(0〜1) | 創作:0.8〜1.0 / 要約・翻訳:0.0〜0.3 |
system | AIの振る舞いの設定 | 「〜してください」形式で指示 |
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を作る方法を解説します。
コメント