Pythonで使うAnthropic Claude API
anthropic.Anthropic()、messages.create()、コンテンツブロック、拡張思考、ストリーミングについて学習します。
「Pythonで使うAnthropic Claude API」はCoddyKit上の無料Learn AI with Pythonレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLearn AI with Python学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Learn AI with Pythonコースには全4レッスンが含まれています。
Anthropic SDK
AnthropicのClaudeモデルには、anthropic Pythonパッケージを通じてアクセスします。pip install anthropicでインストールできます。Claudeは、長いコンテキストの推論、指示への忠実な従属、ツールの利用に優れています。
pip install anthropic
import anthropicクライアントの作成
anthropic.Anthropic()でクライアントを作成します。デフォルトではANTHROPIC_API_KEY環境変数からキーを読み取るため、認証情報をコードに含めずに済みます。
import anthropic
client = anthropic.Anthropic()
# Or explicitly
client = anthropic.Anthropic(api_key="sk-ant-...")Messages API
Claudeではclient.messages.create()を使用します。OpenAIとは異なり、system promptは独立したパラメータであり、リスト内のメッセージではありません。messagesリストにはuserとassistantのターンだけを格納します。
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
system="You are a concise expert.",
messages=[{"role": "user", "content": "Explain RAG in one sentence."}]
)max_tokensは必須
重要な違いの1つは、Anthropic APIではmax_tokensが必須であることです。これは、Claudeが返信で生成できるトークン数の上限を設定します。想定する出力に十分な高さを設定しますが、予期せないコストの増大を防ぐ役割もあります。
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=2048,
messages=[{"role": "user", "content": "Write a haiku about Python."}]
)応答の読み取り
Claudeはブロックのリストであるcontentを返します。通常のテキストの場合、返信はmessage.content[0].textにあります。応答には、テキストに加えてツール使用リクエストが含まれる場合など、複数のブロックを含められるため、リストになっています。
print(message.content[0].text)
# Inspect block type
print(message.content[0].type) # "text"会話履歴
他のチャットAPIと同様に、Claudeは状態を保持しません。会話を続けるには、assistantの返信と次のuserターンをmessagesにご自身で追加します。
messages = [{"role": "user", "content": "Hello"}]
resp = client.messages.create(model="claude-opus-4-8", max_tokens=512, messages=messages)
messages.append({"role": "assistant", "content": resp.content[0].text})
messages.append({"role": "user", "content": "Tell me more"})コンテキストマネージャーによるストリーミング
リアルタイム出力には、Claudeが提供するclient.messages.stream()を、with文のコンテキストマネージャーとして使用します。これにより、接続を安全に開閉できます。
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Count to five."}]
) as stream:
pass # iterate insideテキストストリームの反復処理
withブロック内でstream.text_streamをループ処理し、Claudeが生成するテキストの差分を受け取ります。各要素はそのまま出力できる文字列です。
with client.messages.stream(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "Count to five."}]
) as stream:
for text in stream.text_stream:
print(text, end="", flush=True)最終メッセージの取得
ストリーミングが終わったら、stream.get_final_message()を呼び出して、使用量データと完全なコンテンツブロックを含む、組み立て済みの完全なメッセージオブジェクトを取得します。
with client.messages.stream(model="claude-opus-4-8", max_tokens=1024,
messages=[{"role": "user", "content": "Hi"}]) as stream:
for text in stream.text_stream:
print(text, end="")
final = stream.get_final_message()トークン使用量
応答には、input_tokensとoutput_tokensを含むusageオブジェクトがあります。OpenAI(prompt/completionを使用します)とは命名が異なりますが、意味は同じで、呼び出しごとのコストを追跡するためのものです。
print(message.usage.input_tokens)
print(message.usage.output_tokens)OpenAIとAnthropicの違い
覚えておくべき主な違いは次のとおりです。Anthropicではsystem promptを独立したパラメータに指定し、max_tokensが必須で、テキストをcontent[0].textから読み取り、withコンテキストマネージャーでストリーミングします。これらを理解しておけば、プロバイダーを自信を持って切り替えられます。
理解度チェック
Anthropicについての知識を確認しましょう。
まとめ:PythonでClaudeを使う
anthropic.Anthropic()クライアントを作成し、必須のmax_tokensと独立したsystem promptを指定してmessages.create()を呼び出しました。返信はcontent[0].textから読み取り、usage.input_tokens / output_tokensでコストを追跡しました。
ストリーミングでは、client.messages.stream()をwithコンテキストマネージャーとして使用し、text_streamを反復処理して、get_final_message()で組み立て済みの結果を取得しました。
よくある質問
「Pythonで使うAnthropic Claude API」レッスンは無料ですか?
はい。「Pythonで使うAnthropic Claude API」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Learn AI with Pythonコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Learn AI with Pythonコースには全4レッスンが含まれています。
「Pythonで使うAnthropic Claude API」で何を学びますか?
anthropic.Anthropic()、messages.create()、コンテンツブロック、拡張思考、ストリーミングについて学習します。 ブラウザで直接実行するハンズオンコードでLearn AI with Pythonを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Learn AI with Pythonを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLearn AI with Pythonは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「Pythonで使うAnthropic Claude API」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLearn AI with Pythonレッスンでコードを書いて実行できますか?
はい。すべてのLearn AI with Pythonレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- OpenAI API:chat.completionsとストリーミング
- Pythonで使うAnthropic Claude API
- LLMでのFunction Callingとツール利用
- 本番向けLLMアプリのプロンプトエンジニアリング