Files API批量
文件上传:批量处理文档
·约 5 分钟阅读
Files API 让你上传文件到 Anthropic 平台,然后在多次对话中重复引用——不需要每次都重新上传。这对于批量处理文档、构建知识库、反复分析同一份数据等场景非常实用。
你将学到什么
- Files API 的上传和引用方式
- 支持的文件类型和大小限制
- 批量文档处理工作流
- 与 Citations 的结合使用
上传文件
# 上传文件
file = client.files.create(
file=open("report.pdf", "rb"),
purpose="user_message",
)
print(file.id) # file_abc123
在对话中引用
response = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=4096,
messages=[{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_abc123"
},
"citations": {"enabled": True}
},
{"type": "text", "text": "总结这份报告的核心要点"}
]
}]
)
Note: 使用 Files API 需要 beta header:files-api-2025-04-14
支持的文件类型
- 文档:PDF、TXT、Markdown、HTML
- 图片:JPEG、PNG、GIF、WebP
- 数据:CSV、JSON
- 大小限制:单文件最大 32MB
批量处理示例
import os
# 上传所有 PDF
file_ids = []
for filename in os.listdir("documents/"):
if filename.endswith(".pdf"):
f = client.files.create(
file=open(f"documents/{filename}", "rb"),
purpose="user_message",
)
file_ids.append((filename, f.id))
# 批量分析
for filename, fid in file_ids:
response = client.messages.create(
model="claude-haiku-4-5", # 用 Haiku 节省成本
max_tokens=2048,
messages=[{
"role": "user",
"content": [
{"type": "document", "source": {"type": "file", "file_id": fid}},
{"type": "text", "text": "提取文档的标题、作者、摘要,用 JSON 格式返回"}
]
}],
)
print(f"{filename}: {response.content[0].text}")
文件管理
# 列出所有文件
files = client.files.list()
# 获取文件信息
file_info = client.files.retrieve("file_abc123")
# 删除文件
client.files.delete("file_abc123")
实战练习
Tip: 用 Files API 处理你的文档。
- 上传 3 份 PDF,让 Claude 分别生成摘要
- 构建一个多文档问答:上传多个文件,让 Claude 跨文档回答问题
关键要点
Note: 本文核心总结
- Files API 让你上传一次、多次引用,省去重复传输
- 支持 PDF、图片、数据文件等多种格式
- 配合 Haiku 模型进行批量处理,成本极低
- 需要 beta header 启用