Files API
Files API でファイルを扱う
約 10 分
·
クイズ 3 問
·
演習 1 問
重要キーワード (3 語)
Files API
(ファイルAPI)
— PDF・画像などをアップロードして再利用するためのエンドポイント
file_id
(ファイルID)
— アップロード後に発行される識別子
PDF Vision
(PDF視覚理解)
— Claude が PDF をそのまま画像 + テキストとして読む機能
Files API
長いドキュメント・画像などを 再利用しながらメッセージに添付 したいときは
Files API を使います。アップロードすると file_id が発行され、
以降は ID で参照できるためトークンとネットワーク帯域を節約できます。
用途
- PDF を一度アップして何度も質問する
- 同じ参考画像を別の会話セッションで使う
- バッチ処理で同一資料を複数のリクエストに添付
アップロード
from anthropic import Anthropic
client = Anthropic()
with open("report.pdf", "rb") as f:
file = client.files.create(
file=("report.pdf", f, "application/pdf")
)
print(file.id) # 'file_01ABCD...'
メッセージに添付
msg = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{
"role": "user",
"content": [
{"type": "document", "source": {"type": "file", "file_id": file.id}},
{"type": "text", "text": "この PDF の要点を 5 つにまとめてください。"},
],
}],
)
PDF は Claude Vision によりテキスト+レイアウト+画像として理解されます。 スキャン PDF (画像のみ) でもある程度読み取れますが、品質は元の解像度次第。
サポートされる主な形式
application/pdfimage/png/image/jpeg/image/gif/image/webptext/plain,text/csv,text/markdown
ファイルの管理
# 一覧
for f in client.files.list():
print(f.id, f.filename, f.size_bytes)
# 削除
client.files.delete(file.id)
コストの考え方
- アップロード自体は基本無料 (帯域による)。
- 各メッセージで添付するときに その都度トークン換算で課金 される。
- 同じファイルを毎回送るより、Prompt Caching と組み合わせると劇的に安くなる (第4章)。
Tip: 巨大 PDF はチャンク戦略を併用
200 ページ超の文書だと、毎回フルで添付するとコストが膨らみます。 - 目次 → 必要な章だけテキスト抽出 → 渡す - もしくは RAG (第8章) と組み合わせる
試してみよう (Web 上)
API なしでも、claude.ai に PDF を添付するだけで同じ体験ができます。 コーディング前に Web で挙動を試すのが効率的です。
▶ 添付なしでもイメージ
一般的な企業の四半期決算 PDF を添付したと仮定して、Claude にどんな質問を投げると有用な要約が得られますか?5 つ提案してください。