Diese Funktion ist für Zero Data Retention (ZDR) qualifiziert. Wenn deine Organisation eine ZDR-Vereinbarung hat, werden Daten, die über diese Funktion gesendet werden, nicht gespeichert, nachdem die API-Antwort zurückgegeben wurde.
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 für Modelle mit einem Kontextfenster von 200k Token) |
| Format | Standard-PDF (keine Passwörter/Verschlüsselung) |
Beide Limits gelten für die gesamte Anfrage-Payload, einschließlich aller anderen Inhalte, die zusammen mit PDFs gesendet werden. Für große PDFs solltest du in Betracht ziehen, sie mit der Files API hochzuladen und per file_id zu referenzieren, um die Anfrage-Payloads klein zu halten.
Dichte PDFs (viele Seiten mit kleiner Schrift, komplexe Tabellen oder umfangreiche Grafiken) können das Kontextfenster füllen, bevor das Seitenlimit erreicht wird. Anfragen mit großen PDFs können auch vor Erreichen des Seitenlimits fehlschlagen, selbst bei Verwendung der Files API. Versuche, das Dokument in Abschnitte aufzuteilen; bei großen Dateien kann auch das Herunterskalieren eingebetteter Bilder helfen, da jede Seite als Bild verarbeitet wird.
Da die PDF-Unterstützung auf den Vision-Fähigkeiten von Claude basiert, unterliegt sie denselben Einschränkungen und Überlegungen wie andere Vision-Aufgaben.
PDF-Unterstützung ist verfügbar über die Claude API, Claude Platform on AWS, Amazon Bedrock (siehe Amazon Bedrock PDF-Unterstützung), Vertex AI und Microsoft Foundry. Alle aktiven Modelle unterstützen die PDF-Verarbeitung.
Bei der Verwendung der PDF-Unterstützung über die Converse API von Bedrock gibt es zwei unterschiedliche Dokumentverarbeitungsmodi:
Wichtig: Um auf die vollständigen visuellen PDF-Verständnisfähigkeiten von Claude in der Converse API zuzugreifen, musst du Zitate aktivieren. Ohne aktivierte Zitate greift die API nur auf die grundlegende Textextraktion zurück. Erfahre mehr über das Arbeiten mit Zitaten.
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 erkennt, musst du wahrscheinlich das Zitate-Flag aktivieren. Ohne dieses Flag greift Converse nur auf die grundlegende Textextraktion zurück.
Dies ist eine bekannte Einschränkung der Converse API. Für Anwendungen, die visuelle PDF-Analyse ohne Zitate erfordern, solltest du stattdessen die InvokeModel API verwenden.
Für Nicht-PDF-Dateien wie .csv-, .xlsx-, .docx-, .md- oder .txt-Dateien siehe Arbeiten mit anderen Dateiformaten.
Beginnen wir mit einem einfachen Beispiel unter Verwendung der Messages API. Du kannst Claude PDFs auf drei Arten bereitstellen:
document-Content-Blöckenfile_id aus der Files APIAuf Amazon Bedrock und Vertex AI sind derzeit nur base64-kodierte Quellen verfügbar.
Der einfachste Ansatz ist, ein PDF direkt über eine URL zu referenzieren:
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)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).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-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)Für PDFs, die du wiederholt verwenden wirst, oder wenn du den Kodierungsaufwand vermeiden möchtest, verwende die Files API:
client = anthropic.Anthropic()
# Lade die PDF-Datei hoch
with open("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-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)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, sofern 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 extrahierten Text des Dokuments sowie von 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 großer Mengen solltest du diese Ansätze in Betracht ziehen:
Cache PDFs, um die Leistung bei wiederholten Abfragen zu verbessern:
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."},
],
}
],
)Verwende die Message Batches API für Workflows mit hohem Volumen:
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."},
],
}
],
},
}
]
)Erkunde praktische Beispiele zur PDF-Verarbeitung im Cookbook-Rezept.
Sieh dir die vollständige API-Dokumentation zur PDF-Unterstützung an.
Was this page helpful?