此功能符合「Zero Data Retention」(零資料保留),即 ZDR 的資格。當您的組織具有 ZDR 安排時,透過此功能傳送的資料在 API 回應返回後不會被儲存。
您可以向 Claude 詢問您所提供 PDF 中的任何文字、圖片、圖表和表格。以下是一些範例使用案例:
Claude 可處理任何標準 PDF。請確保您的請求大小符合以下需求:
| 需求 | 限制 |
|---|---|
| 最大請求大小 | 32 MB(依平台而異) |
| 每個請求的最大頁數 | 600(對於具有 20 萬 token 上下文視窗的模型為 100) |
| 格式 | 標準 PDF(無密碼/加密) |
這兩項限制均適用於整個請求酬載,包括與 PDF 一併傳送的任何其他內容。對於大型 PDF,請考慮使用 Files API 上傳並透過 file_id 參照,以保持請求酬載較小。
密集的 PDF(許多小字體頁面、複雜表格或大量圖形)可能在達到頁數限制之前就填滿上下文視窗。即使使用 Files API,包含大型 PDF 的請求也可能在達到頁數限制之前失敗。請嘗試將文件分割成多個區段;對於大型檔案,由於每一頁都會被處理為圖片,降低嵌入圖片的取樣率也會有所幫助。
由於 PDF 支援依賴 Claude 的視覺能力,因此它受到與其他視覺任務相同的限制與考量。
PDF 支援可在 Claude API、AWS 上的 Claude Platform、Amazon Bedrock(請參閱 Amazon Bedrock PDF 支援)、Vertex AI 以及 Microsoft Foundry 上使用。所有現行模型均支援 PDF 處理。
透過 Bedrock 的 Converse API 使用 PDF 支援時,有兩種不同的文件處理模式:
重要: 若要在 Converse API 中存取 Claude 完整的視覺 PDF 理解能力,您必須啟用引用功能。若未啟用引用功能,API 將退回至僅基本文字擷取。深入了解使用引用功能。
Converse Document Chat(原始模式 - 僅文字擷取)
Claude PDF Chat(新模式 - 完整視覺理解)
如果在使用 Converse API 時,Claude 無法看到您 PDF 中的圖片或圖表,您可能需要啟用引用旗標。若未啟用,Converse 將退回至僅基本文字擷取。
這是 Converse API 的已知限制。對於需要視覺 PDF 分析但不需要引用功能的應用程式,請考慮改用 InvokeModel API。
對於非 PDF 檔案,例如 .csv、.xlsx、.docx、.md 或 .txt 檔案,請參閱處理其他檔案格式。
讓我們從使用 Messages API 的簡單範例開始。您可以透過三種方式向 Claude 提供 PDF:
document 內容區塊中的 base64 編碼 PDFfile_id在 Amazon Bedrock 和 Vertex AI 上,目前僅支援 base64 編碼的來源。
最簡單的方法是直接從 URL 參照 PDF:
如果您需要從本機系統傳送 PDF,或當 URL 不可用時:
對於您會重複使用的 PDF,或當您想避免編碼開銷時,請使用 Files API:
當您將 PDF 傳送給 Claude 時,會發生以下步驟:
系統擷取文件的內容。
Claude 同時分析文字和圖片,以更好地理解文件。
Claude 回應,並在相關時參照 PDF 的內容。
Claude 在回應時可以同時參照文字和視覺內容。您可以透過將 PDF 支援與以下功能整合來進一步提升效能:
PDF 檔案的 token 數量取決於從文件中擷取的總文字量以及頁數:
您可以使用 token 計數來估算您特定 PDF 的成本。
請遵循以下最佳實務以獲得最佳結果:
對於大量處理,請考慮以下方法:
快取 PDF 以提升重複查詢的效能:
使用 Message Batches API 處理大量工作流程:
Was this page helpful?
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "url",
"url": "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf",
},
},
{"type": "text", "text": "What are the key findings in this document?"},
],
}
],
)
print(message.content)import base64
import httpx
# 首先,載入並編碼 PDF
pdf_url = "https://assets.anthropic.com/m/1cd9d098ac3e6467/original/Claude-3-Model-Card-October-Addendum.pdf"
pdf_data = base64.standard_b64encode(httpx.get(pdf_url).content).decode("utf-8")
# 替代方案:從本機檔案載入
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# 使用 base64 編碼傳送至 Claude
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{"type": "text", "text": "What are the key findings in this document?"},
],
}
],
)
print(message.content)client = anthropic.Anthropic()
# 上傳 PDF 檔案
with open("document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# 在訊息中使用已上傳的檔案
message = client.beta.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
betas=["files-api-2025-04-14"],
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {"type": "file", "file_id": file_upload.id},
},
{"type": "text", "text": "What are the key findings in this document?"},
],
}
],
)
print(message.content)client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
"cache_control": {"type": "ephemeral"},
},
{"type": "text", "text": "Analyze this document."},
],
}
],
)client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "doc1",
"params": {
"model": "claude-opus-4-8",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{"type": "text", "text": "Summarize this document."},
],
}
],
},
}
]
)