Du kannst Claude zu beliebigen Texten, Bildern, Diagrammen und Tabellen in PDFs befragen, die du bereitstellst. Einige Beispielanwendungsfälle:
Claude funktioniert mit jedem Standard-PDF. Stelle sicher, dass deine Anfragegröße diese Anforderungen erfüllt:
| Anforderung | Limit |
|---|---|
| Maximale Anfragegröße | 32 MB (variiert je nach Plattform) |
| Maximale Seiten pro Anfrage | 600 (100, wenn das Kontextfenster der Anfrage unter 1 Mio. Token liegt) |
| Format | Standard-PDF (keine Passwörter/Verschlüsselung) |
Beide Limits beziehen sich auf die gesamte Anfrage-Payload, einschließlich aller anderen Inhalte, die zusammen mit PDFs gesendet werden. Für große PDFs solltest du das Hochladen über die Files API in Betracht ziehen und per file_id referenzieren, um die Anfrage-Payloads klein zu halten.
Da die PDF-Unterstützung auf Claudes Vision-Fähigkeiten basiert, unterliegt sie denselben Einschränkungen und Überlegungen wie andere Vision-Aufgaben.
Alle aktiven Modelle unterstützen die PDF-Verarbeitung. Für PDF-Unterstützung über die Converse API von Amazon Bedrock siehe Amazon Bedrock PDF-Unterstützung.
Bei der Verwendung der PDF-Unterstützung über die Converse API, Teil von Claude auf Amazon Bedrock (Opus 4.6 und früher), gibt es zwei unterschiedliche Dokumentverarbeitungsmodi:
Converse Document Chat (Ursprünglicher Modus – nur Textextraktion)
Claude PDF Chat (Neuer Modus – vollständiges visuelles Verständnis)
Wenn Claude bei Verwendung der Converse API keine Bilder oder Diagramme in deinen PDFs sieht, musst du wahrscheinlich das Zitationen-Flag aktivieren. Ohne dieses Flag greift Converse nur auf die grundlegende Textextraktion zurück.
Beginne mit einem einfachen Beispiel unter Verwendung der Messages API. Du kannst Claude PDFs auf drei Arten bereitstellen:
document-Inhaltsblöckenfile_id aus der Files APIDer einfachste Ansatz ist, ein PDF direkt über eine URL zu referenzieren:
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
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)Die Antwort gibt Claudes Analyse als Textblöcke in content zurück, mit dem Token-Verbrauch in usage:
{
"id": "msg_01Hfp8YuFjQ55VgWbpdHDehB",
"type": "message",
"role": "assistant",
"model": "claude-opus-5",
"content": [
{
"type": "text",
"text": "This document is an addendum to the Claude 3 model card, reporting updated evaluation results. The key findings include..."
}
],
"stop_reason": "end_turn",
"usage": {
"input_tokens": 45000,
"output_tokens": 300
}
}Wenn du PDFs von deinem lokalen System senden musst oder wenn keine URL verfügbar ist:
import base64
import httpx
# Lade und kodiere zuerst das 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, follow_redirects=True).content
).decode("utf-8")
# Alternative: Lade aus einer lokalen Datei
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Sende an Claude mit Base64-Kodierung
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
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)Für PDFs, die du wiederholt verwenden wirst, oder wenn du den Kodierungsaufwand vermeiden möchtest, verwende die Files API (Beta):
client = anthropic.Anthropic()
# Lade die PDF-Datei hoch
with open("/path/to/document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Verwende die hochgeladene Datei in einer Nachricht
message = client.beta.messages.create(
model="claude-opus-5",
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)Wenn du ein PDF an Claude sendest, laufen die folgenden Schritte ab:
Das System extrahiert die Inhalte des Dokuments.
Claude analysiert sowohl den Text als auch die Bilder, um das Dokument besser zu verstehen.
Claude antwortet und verweist dabei auf die Inhalte des PDFs, falls relevant.
Claude kann bei seiner Antwort sowohl auf textuelle als auch auf visuelle Inhalte verweisen. Du kannst die Leistung weiter verbessern, indem du die PDF-Unterstützung kombinierst mit:
Die Token-Anzahl einer PDF-Datei hängt vom gesamten aus dem Dokument extrahierten Text und der Anzahl der Seiten ab:
Du kannst Token-Zählung verwenden, um die Kosten für deine spezifischen PDFs zu schätzen.
Befolge diese Best Practices für optimale Ergebnisse:
Für die Verarbeitung mit hohem Volumen solltest du diese Ansätze in Betracht ziehen:
Cache PDFs mit Prompt-Caching, um die Leistung bei wiederholten Abfragen zu verbessern:
import base64
import httpx
# Lade und kodiere zuerst das 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, follow_redirects=True).content
).decode("utf-8")
# Erstelle eine Nachricht mit dem gecachten Dokument
client = anthropic.Anthropic()
message = client.messages.create(
model="claude-opus-5",
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": "Which model has the highest human preference win rates across each use-case?",
},
],
}
],
)
print(message.content)Verwende die Message Batches API, um viele PDFs in einer Anfrage zu verarbeiten:
import base64
import httpx
# Lade und kodiere zuerst das 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, follow_redirects=True).content
).decode("utf-8")
# Erstelle einen Batch von Anfragen, die das Dokument verwenden
client = anthropic.Anthropic()
message_batch = client.messages.batches.create(
requests=[
{
"custom_id": "my-first-request",
"params": {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{
"type": "text",
"text": "Which model has the highest human preference win rates across each use-case?",
},
],
}
],
},
},
{
"custom_id": "my-second-request",
"params": {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": pdf_data,
},
},
{
"type": "text",
"text": "Extract 5 key insights from this document.",
},
],
}
],
},
},
]
)
print(message_batch)Batches werden asynchron verarbeitet. Um den Fortschritt zu überprüfen und Ergebnisse nach Abschluss der Verarbeitung abzurufen, siehe Batch-Verarbeitung.
Claudes Vision-Fähigkeiten ermöglichen es, Bilder zu verstehen und zu analysieren, was spannende Möglichkeiten für multimodale Interaktion eröffnet.
Erkunde praktische Beispiele zur PDF-Verarbeitung im Claude Cookbook-Rezept.
Siehe die vollständige API-Dokumentation zur PDF-Unterstützung.
| Supported platforms |
|
|---|
Was this page helpful?