いずみこんな悩みを解決できる記事を書きました!
僕は現役フリーランスエンジニア(歴10年)で、資格は13個保有しています。
「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向けの案件が豊富。 | 公式 |
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キーの準備をします。
PythonのAnthropic SDKはpipでインストールできます。
pip install anthropicAnthropicのコンソールで発行したAPIキーを、環境変数ANTHROPIC_API_KEYに設定します。
export ANTHROPIC_API_KEY="your_api_key"


環境変数に設定しておくと、コード側でAPIキーを直書きしなくて済むので安心です。
基本的なメッセージ送信を実装する
準備ができたら、簡単なテキスト生成を実装してみます。
import anthropic
client = anthropic.Anthropic()環境変数にAPIキーを設定していれば、引数なしで初期化するだけで済みます。
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で思考の深さを調整します。
質問の難易度に応じて、Claude自身が思考するかどうかを判断してくれるようになります。
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つのエージェントを使い回していますよ。
フリーランスを始めるなら「レバテックフリーランス


」
- 業界最大級の案件数。
- 業界トップクラスの高単価報酬、低マージン(平均年収862万円)。
- 案件参画中のフォローの充実。
※詳細は「【業界最大手】レバテックフリーランスとは?メリットや利用手順を解説!」を参照。
レバテックフリーランス
![]()
![]()
とにかく案件数が多いので、とりあえず登録しておけば間違いないエージェントです!



僕もはじめてフリーランスの案件を貰ったのはレバテックフリーランス
![]()
![]()
保有している案件数が多いので、業務経験がなくても何かしらの案件は紹介してもらえますよ(僕はJavaの経験3年でも案件を貰えました)。
手厚い保障を重視したいなら「Midworks


」
- 手厚い保障で正社員並みの安心感。
- 還元率60%超え&単価公開でクリアな契約。
- 給与保障制度(審査あり)。
Midworks
![]()
![]()
フリーランスを目指しているけど不安な方や保障を重視したい方におすすめです。



僕も何度か案件を紹介してもらいました。
自分のスキルに合った案件を紹介してもらえましたし、電話のやり取りも非常に丁寧でした。
週2〜3日の案件探しなら「ITプロパートナーズ


」
- 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から使う方法について解説しました。
以下が本記事のまとめになります。



最後までお読みいただき、ありがとうございました!
| 【当サイト】おすすめフリーランスエージェント3選 | |||
|---|---|---|---|
| エージェント | 評価 | ポイント | 公式サイト |
レバテックフリーランス | 5.0 | 業界最大級のエージェント。 高単価案件が豊富。 | 公式 |
Midworks | 4.8 | 満足度調査で 3年連続3冠を達成。 | 公式 |
ITプロパートナーズ | 4.6 | 週2〜3向けの案件が豊富。 | 公式 |
- クソおすすめ本



海外のエンジニアがどういった思考で働いているかが理解できます。
海外に行く気はないけど海外エンジニアの動向が気になる雑魚エンジニアにおすすめです(本当におすすめな本しか紹介しないのでご安心を)。








