【AI】Claude Files APIをPythonで使う方法

当ページのリンクには広告が含まれています。
この記事で解決できる悩み
いずみ

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

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

Claude Files APIをPythonで使う方法を知りたい」とお考えではありませんか?

PDFや画像などのファイルをClaudeに読み込ませたいと考えている方へ。

Files APIを使えば、ファイルを一度アップロードするだけで何度もリクエストに使い回すことが可能です。

いずみ

ベリーイージーなのでサクッと解説します。

ということで、本記事ではClaude Files APIをPythonで使う方法を解説します。

いずみ

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

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

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

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

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

【AI】Claude Files APIをPythonで使う方法

早速ですが、Claude Files APIをPythonで使う方法を解説します。

Files APIとは

Files APIは、ファイルを一度アップロードしてfile_idを受け取り、以降のMessagesリクエストで同じファイルを繰り返し参照できる仕組みです。

PDFやプレーンテキスト、画像などをアップロードでき、同じ資料について何度も質問するようなユースケースで威力を発揮します。

ファイルを都度base64エンコードして送信する必要がなくなるため、リクエストボディを小さく保てます。

いずみ

同じ資料を毎回アップロードし直すのは地味にめんどくさいですよね。

Files APIを使えば一度アップロードするだけで済みます。

事前準備

まずは、Files APIを使うための準備をします。

STEP
Anthropic Python SDKをインストールする

pipでインストールします。

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

Anthropic ConsoleでAPIキーを発行し、環境変数に設定します。

export ANTHROPIC_API_KEY="your_api_key"

ファイルをアップロードして参照する

準備ができたら、実際にファイルをアップロードしてメッセージで使ってみます。

STEP
ファイルをアップロードする

client.files.uploadにファイル名・バイナリ・MIMEタイプのタプルを渡します。

import anthropic

client = anthropic.Anthropic()

uploaded = client.files.upload(
    file=("report.pdf", open("report.pdf", "rb"), "application/pdf"),
)

print(uploaded.id)

レスポンスのidがfile_idです。

以降のリクエストでは、file_idを使い回せます。

STEP
アップロードしたファイルをメッセージで参照する

messages.createのcontentにdocumentブロックを追加し、file_idを指定します。

response = client.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "この資料の要点を3つにまとめてください。"},
                {
                    "type": "document",
                    "source": {
                        "type": "file",
                        "file_id": uploaded.id,
                    },
                },
            ],
        }
    ],
)

print(response.content[0].text)
いずみ

ファイルの中身を毎回貼り付けなくて良いので、長いドキュメントを扱うときほど楽になります。

ファイルの一覧表示と削除

アップロードしたファイルは、一覧表示や削除で管理できます。

files = client.files.list()

for f in files.data:
    print(f.id, f.filename, f.size_bytes)

list()でアップロード済みのファイルを新しい順に取得できます。

client.files.delete(uploaded.id)

不要になったファイルはdelete()で明示的に削除します。

ファイルは自動では消えないため、使い終わったファイルは削除しておくとストレージ容量を圧迫せずに済みます。

ファイルの有効期限を設定する

一時的にしか使わないファイルには、有効期限を設定しておくと管理が楽になります。

uploaded = client.files.upload(
    file=("temp_data.csv", open("temp_data.csv", "rb"), "text/plain"),
    expires_in_seconds=3600,
)

expires_in_secondsに3600(1時間)から7776000(90日)までの秒数を指定すると、期限切れ後は自動的にダウンロードや参照ができなくなります。

利用時の注意点

Files APIを使う際は、いくつか注意しておきたい点があります。

  • アップロードしたファイルは、同じワークスペース内のどのAPIキーからでも参照できる
  • アップロードしたファイル自体はダウンロードできない
  • ファイルの内容は後から変更できない
いずみ

ファイルIDを他人のリクエストからそのまま受け取らないようにする点だけは、実装時に意識しておくと安全です。

スクロールできます
【当サイト】おすすめフリーランスエージェント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の案件ももちろんありますし、僕が利用した時は迅速・丁寧に対応していただきました!

よくある質問

Files APIの利用に料金はかかりますか?

ファイルのアップロード・ダウンロード・一覧取得・削除といった操作自体は無料です。

Messagesリクエストでファイルの中身を読み込ませた際は、入力トークンとして課金されます。

どんなファイル形式に対応していますか?

PDF(application/pdf)とプレーンテキスト(text/plain)はdocumentブロックで、画像(JPEG/PNG/GIF/WebP)はimageブロックで参照できます。

docxやxlsxなど直接対応していない形式は、プレーンテキストに変換するかPDFに変換してから利用します。

まとめ

今回は、Claude Files APIをPythonで使う方法について解説しました。

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

まとめ
  • Files APIを使うと、ファイルを一度アップロードするだけでfile_idを使い回してリクエストできる。
  • アップロード・ダウンロード・一覧取得・削除自体は無料で、課金されるのはメッセージでファイルを読み込ませたときの入力トークンのみ。
  • 不要なファイルはdelete()で削除するか、expires_in_secondsで有効期限を設定して管理する。
まとめ
いずみ

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

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

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

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

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

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

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

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

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