0Pricing
Learn AI with Python · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. OpenAI API:chat.completionsとストリーミング
  2. Pythonで使うAnthropic Claude API
  3. LLMでのFunction Callingとツール利用
  4. 本番向けLLMアプリのプロンプトエンジニアリング
← Learn AI with Pythonに戻る