【AI】Claude Sonnet 5をPythonから使う方法

当ページのリンクには広告が含まれています。
いずみ

こんな悩みを解決できる記事を書きました!

僕は現役フリーランスエンジニア(歴年)で、資格は個保有しています。

PythonでClaude Sonnet 5を使った実装をする方法を知りたい」とお考えではありませんか?

Claude Sonnet 5のAPIをPythonアプリに組み込みたいと考えている方へ。

Anthropicが提供するPython SDKを使えば、数行のコードでClaude Sonnet 5をアプリに組み込むことが可能です。

いずみ

サクッと解説するので、実装のイメージを掴んでもらえたら嬉しいです。

ということで、本記事ではClaude Sonnet 5をPythonから使う方法を解説します。

いずみ

すぐ読み終わるので、ぜひ最後まで読んでくださいませ。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
執筆者/監修者
  • フリーランスエンジニア(保有資格個、企業と直接契約
  • ブログ・アフィリエイト歴7年(2018年〜)
  • ブランドせどりで月利50万円⇨脱サラ
  • 投資(仮想通貨・FX)歴7年(2018年〜)
  • X(旧Twitter)フォロワー約1,900人
  • 運営者情報はこちら
いずみです
目次

Claude Sonnet 5をPythonから使う方法

早速ですが、Claude Sonnet 5をPythonのAnthropic SDKで呼び出す方法を解説します。

Claude Sonnet 5とは

Claude Sonnet 5は、Anthropicが提供するモデルファミリーの中で高いコストパフォーマンスを持つモデルです。

最大100万トークンのコンテキストウィンドウを備えており、長いドキュメントを丸ごと入力する用途にも対応します。

モデルIDはclaude-sonnet-5という文字列で指定します。

事前準備

まずは、Anthropic Python SDKの導入とAPIキーの準備をします。

STEP
anthropicパッケージをインストールする

PythonのAnthropic SDKはpipでインストールできます。

pip install anthropic
STEP
APIキーを環境変数に設定する

Anthropicのコンソールで発行したAPIキーを、環境変数ANTHROPIC_API_KEYに設定します。

export ANTHROPIC_API_KEY="your_api_key"
いずみ

環境変数に設定しておくと、コード側でAPIキーを直書きしなくて済むので安心です。

基本的なメッセージ送信を実装する

準備ができたら、簡単なテキスト生成を実装してみます。

STEP
クライアントを初期化する
import anthropic

client = anthropic.Anthropic()

環境変数にAPIキーを設定していれば、引数なしで初期化するだけで済みます。

STEP
messages.createでリクエストを送信する
response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    messages=[
        {"role": "user", "content": "Claude Sonnet 5の特徴を教えて"}
    ]
)

for block in response.content:
    if block.type == "text":
        print(block.text)

レスポンスのcontentは複数のブロックからなるリストなので、typeを確認してからテキストを取り出します。

いずみ

モデルIDを claude-sonnet-5 にするだけで、あとの書き方はいつものAnthropic SDKと同じです。

adaptive thinkingとeffortパラメータで思考の深さを調整する

Claude Sonnet 5は、思考の有無を細かく制御できるadaptive thinkingという仕組みを備えています。

従来のbudget_tokensによる固定の思考トークン数指定は、Claude Sonnet 5ではエラーになる仕様になっています(将来変更される可能性があります)。

代わりにthinkingパラメータへ{"type": "adaptive"}を指定し、output_config内のeffortで思考の深さを調整します。

STEP
thinkingパラメータをadaptiveに指定する

質問の難易度に応じて、Claude自身が思考するかどうかを判断してくれるようになります。

STEP
output_config.effortで思考のレベルを指定する

effortにはlow・medium・high・xhigh・maxの5段階を指定できます。

response = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=16000,
    thinking={"type": "adaptive"},
    output_config={"effort": "high"},
    messages=[
        {"role": "user", "content": "複雑な設計判断について、メリットとデメリットを整理して"}
    ]
)

for block in response.content:
    if block.type == "thinking":
        print(f"Thinking: {block.thinking}")
    elif block.type == "text":
        print(f"Response: {block.text}")
いずみ

コストを抑えたいバッチ処理はlow、じっくり考えてほしい設計相談はhighやxhighと使い分けると効果的です。

100万トークンのコンテキストウィンドウを活用する

Claude Sonnet 5は、標準の状態で最大100万トークンのコンテキストウィンドウを扱えます。

特別なbetaヘッダーを付ける必要はなく、通常のmessages.createの呼び出し方のまま長文のドキュメントを渡せます。

事前にトークン数を把握したい場合は、count_tokensで見積もりを取ることも可能です。

count = client.messages.count_tokens(
    model="claude-sonnet-5",
    messages=[{"role": "user", "content": long_document_text}]
)

print(count.input_tokens)

ストリーミングで長い出力を受け取る

max_tokensを大きく指定する場合は、タイムアウトを避けるためにストリーミングで受け取るのがおすすめです。

with client.messages.stream(
    model="claude-sonnet-5",
    max_tokens=64000,
    thinking={"type": "adaptive"},
    messages=[{"role": "user", "content": "長い技術レポートを作成して"}]
) as stream:
    response = stream.get_final_message()

for block in response.content:
    if block.type == "text":
        print(block.text)
いずみ

get_final_message()を使えば、イベントを1つずつ自前でハンドリングしなくても最終的なレスポンスをまとめて受け取れます。

エラーハンドリングを実装する

本番運用では、例外の種類ごとに処理を分けておくと安心です。

import anthropic

try:
    response = client.messages.create(
        model="claude-sonnet-5",
        max_tokens=16000,
        messages=[{"role": "user", "content": "Hello"}]
    )
except anthropic.RateLimitError as e:
    retry_after = int(e.response.headers.get("retry-after", "60"))
    print(f"レート制限中です。{retry_after}秒後に再試行してください。")
except anthropic.AuthenticationError:
    print("APIキーが無効です。")
except anthropic.APIStatusError as e:
    print(f"APIエラー: {e.message}")
except anthropic.APIConnectionError:
    print("ネットワークエラーが発生しました。")

anthropicパッケージは429エラーや5xxエラーを自動でリトライしてくれるので、独自のリトライ処理を実装する前にmax_retriesの調整で足りないか検討するとよいです。

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式

【厳選】フリーランスエンジニアにおすすめなエージェント3選

フリーランスエンジニアになるにはエージェントから案件をもらう必要があります。

僕が実際に利用しているおすすめエージェントを紹介しますね。

いずみ

エージェントは必ず複数登録してください。

担当者によっては「全然案件紹介してくれない…」みたいなこともあるので…

僕は実際に5つのエージェントを使い回していますよ。

フリーランスを始めるなら「

案件数マージン率単価
約88,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 業界最大級の案件数。
  • 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
  • 案件参画中のフォローの充実。

※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。

は業界最大手のフリーランスエージェントです。

とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!

いずみ

僕もはじめてフリーランスの案件を貰ったのはです。

保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。

手厚い保障を重視したいなら「

案件数マージン率単価
約10,000件非公開
初心者福利厚生申し込み
無料
Good Point
  • 手厚い保障で正社員並みの安心感。
  • 還元率60%超え&単価公開でクリアな契約。
  • 給与保障制度(審査あり)。

は手厚い保障が特徴のフリーランスエージェントです。

フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。

いずみ

僕も何度か案件を紹介してもらいました。

自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。

週2〜3日の案件探しなら「

案件数マージン率単価
約5,000件非公開
初心者福利厚生申し込み
経験者向け無料
Good Point
  • IT案件に特化したフリーランスエージェント。
  • 週2〜3日の案件が豊富。
  • リモート案件が多く、直エンドなので単価も高い。

※詳細は「【週2・3案件】ITプロパートナーズとは?メリットや利用手順を解説!」を参照。

はIT案件に特化したフリーランスエージェントです。

週2〜3日から参画できる案件が豊富なので、起業したい人にもおすすめです。

いずみ

週2〜3日の案件はある程度スキルがないと紹介してもらえない印象です。

とはいえ、週5の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!

よくある質問

Claude Sonnet 5のモデルIDは何を指定すればいいですか?

claude-sonnet-5という文字列をそのまま指定します。

日付が付いたバージョン名を付け足す必要はありません。

budget_tokensを指定するとどうなりますか?

Claude Sonnet 5ではbudget_tokensを含むリクエストがエラーになる仕様になっています(将来変更される可能性があります)。

thinkingパラメータをadaptiveにし、effortで深さを調整する方法に置き換えてください。

100万トークンのコンテキストウィンドウを使うのに追加の申請は必要ですか?

特別なbetaヘッダーや申請は不要です。

通常のAPIキーとmessages.createの呼び出しだけで、最大100万トークンまでのコンテキストを扱えます。

effortはどのように選べばいいですか?

簡単な分類やバッチ処理はlowやmedium、複雑な設計判断や込み入った推論を伴うタスクはhighやxhighを選ぶとバランスが取りやすいです。

正確性を最優先したい場面ではmaxを選択します。

まとめ

今回は、Claude Sonnet 5をPythonから使う方法について解説しました。

以下が本記事のまとめになります。

まとめ
  • Claude Sonnet 5は、モデルID claude-sonnet-5 を指定するだけでPythonから呼び出せる。
  • adaptive thinkingとeffortパラメータで、コストと思考の深さを柔軟に調整できる。
  • 標準で最大100万トークンのコンテキストウィンドウを追加設定なしで利用できる。
まとめ
いずみ

最後までお読みいただき、ありがとうございました!

スクロールできます
【当サイト】おすすめフリーランスエージェント3選
エージェント評価ポイント公式サイト
レバテックフリーランス

5.0
業界最大級のエージェント。
高単価案件が豊富。
公式
Midworks

4.8
満足度調査で
3年連続3冠を達成。
公式
ITプロパートナーズ

4.6
週2〜3向けの案件が豊富。公式
  • クソおすすめ本
¥4,480 (2024/06/01 23:28時点 | Amazon調べ)
いずみ

海外のエンジニアがどういった思考で働いているかが理解できます。

海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。

この記事が気に入ったら
フォローしてね!

シェアしてね!
  • URLをコピーしました!
目次