Puoi porre domande a Claude su qualsiasi testo, immagine, grafico e tabella nei PDF che fornisci. Alcuni casi d'uso di esempio:
Claude funziona con qualsiasi PDF standard. Assicurati che la dimensione della tua richiesta soddisfi questi requisiti:
| Requisito | Limite |
|---|---|
| Dimensione massima della richiesta | 32 MB (varia in base alla piattaforma) |
| Numero massimo di pagine per richiesta | 600 (100 quando la finestra di contesto della richiesta è inferiore a 1M token) |
| Formato | PDF standard (senza password/crittografia) |
Entrambi i limiti si applicano all'intero payload della richiesta, incluso qualsiasi altro contenuto inviato insieme ai PDF. Per PDF di grandi dimensioni, considera di caricarli con la Files API e di referenziarli tramite file_id per mantenere ridotti i payload delle richieste.
Poiché il supporto PDF si basa sulle capacità di visione di Claude, è soggetto alle stesse limitazioni e considerazioni degli altri task di visione.
Tutti i modelli attivi supportano l'elaborazione PDF. Per il supporto PDF tramite la Converse API di Amazon Bedrock, consulta Supporto PDF di Amazon Bedrock.
Quando si utilizza il supporto PDF tramite la Converse API, parte di Claude su Amazon Bedrock (Opus 4.6 e versioni precedenti), esistono due modalità distinte di elaborazione dei documenti:
Converse Document Chat (Modalità originale - Solo estrazione di testo)
Claude PDF Chat (Nuova modalità - Comprensione visiva completa)
Se Claude non vede immagini o grafici nei tuoi PDF quando utilizzi la Converse API, probabilmente devi abilitare il flag delle citazioni. Senza di esso, Converse ricade sulla sola estrazione di testo di base.
Inizia con un semplice esempio utilizzando la Messages API. Puoi fornire PDF a Claude in tre modi:
documentfile_id dalla Files APIL'approccio più semplice è referenziare un PDF direttamente da un URL:
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)La risposta restituisce l'analisi di Claude come blocchi di testo in content, con il consumo di token 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
}
}Se devi inviare PDF dal tuo sistema locale o quando un URL non è disponibile:
import base64
import httpx
# Per prima cosa, carica e codifica il 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")
# Alternativa: carica da un file locale
# with open("document.pdf", "rb") as f:
# pdf_data = base64.standard_b64encode(f.read()).decode("utf-8")
# Invia a Claude usando la codifica base64
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)Per i PDF che utilizzerai ripetutamente, o quando vuoi evitare l'overhead della codifica, usa la Files API (beta):
client = anthropic.Anthropic()
# Carica il file PDF
with open("/path/to/document.pdf", "rb") as f:
file_upload = client.beta.files.upload(file=("document.pdf", f, "application/pdf"))
# Usa il file caricato in un messaggio
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)Quando invii un PDF a Claude, si verificano i seguenti passaggi:
Il sistema estrae i contenuti del documento.
Claude analizza sia il testo che le immagini per comprendere meglio il documento.
Claude risponde, facendo riferimento ai contenuti del PDF se pertinenti.
Claude può fare riferimento sia al contenuto testuale che visivo quando risponde. Puoi migliorare ulteriormente le prestazioni integrando il supporto PDF con:
Il conteggio dei token di un file PDF dipende dal testo totale estratto dal documento e dal numero di pagine:
Puoi utilizzare il conteggio dei token per stimare i costi per i tuoi PDF specifici.
Segui queste best practice per risultati ottimali:
Per l'elaborazione ad alto volume, considera questi approcci:
Memorizza i PDF nella cache con il prompt caching (cache dei prompt) per migliorare le prestazioni sulle query ripetute:
import base64
import httpx
# Per prima cosa, carica e codifica il 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")
# Crea un messaggio con il documento memorizzato nella cache
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)Usa la Message Batches API per elaborare molti PDF in una singola richiesta:
import base64
import httpx
# Per prima cosa, carica e codifica il 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")
# Crea un batch di richieste che utilizzano il documento
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)I batch vengono elaborati in modo asincrono. Per verificare l'avanzamento e recuperare i risultati una volta terminata l'elaborazione, consulta Elaborazione batch.
Le capacità di visione di Claude gli consentono di comprendere e analizzare immagini, aprendo possibilità entusiasmanti per l'interazione multimodale.
Esplora esempi pratici di elaborazione PDF nella ricetta del Claude Cookbook.
Consulta la documentazione API completa per il supporto PDF.
| Supported platforms |
|
|---|
Was this page helpful?