Questa funzionalità è idonea per la Zero Data Retention (ZDR). Quando la tua organizzazione dispone di un accordo ZDR, i dati inviati tramite questa funzionalità non vengono conservati dopo che la risposta dell'API è stata restituita.
Puoi chiedere a Claude informazioni 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 per i modelli con una finestra di contesto da 200k 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 farvi riferimento tramite file_id per mantenere ridotti i payload delle richieste.
I PDF densi (molte pagine con caratteri piccoli, tabelle complesse o grafica pesante) possono riempire la "context window" (finestra di contesto) prima di raggiungere il limite di pagine. Le richieste con PDF di grandi dimensioni possono anche fallire prima di raggiungere il limite di pagine, anche quando si utilizza la Files API. Prova a dividere il documento in sezioni; per file di grandi dimensioni, poiché ogni pagina viene elaborata come immagine, anche il sottocampionamento delle immagini incorporate può essere utile.
Poiché il supporto PDF si basa sulle capacità di visione di Claude, è soggetto alle stesse limitazioni e considerazioni degli altri task di visione.
Il supporto PDF è disponibile sull'API Claude, Claude Platform su AWS, Amazon Bedrock (vedi Supporto PDF su Amazon Bedrock), Google Cloud e Microsoft Foundry. Tutti i modelli attivi supportano l'elaborazione dei PDF.
Quando si utilizza il supporto PDF tramite la Converse API di Bedrock, esistono due modalità distinte di elaborazione dei documenti:
Importante: Per accedere alle complete capacità di comprensione visiva dei PDF di Claude nella Converse API, devi abilitare le citazioni. Senza le citazioni abilitate, l'API ricorre solo all'estrazione di testo di base. Scopri di più su come lavorare con le citazioni.
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 ricorre solo all'estrazione di testo di base.
Questo è un vincolo noto della Converse API. Per le applicazioni che richiedono l'analisi visiva dei PDF senza citazioni, considera di utilizzare invece la InvokeModel API.
Per file non PDF come .csv, .xlsx, .docx, .md o .txt, consulta Lavorare con altri formati di file.
Iniziamo con un semplice esempio utilizzando la Messages API. Puoi fornire PDF a Claude in tre modi:
documentfile_id dalla Files APISu Amazon Bedrock e Google Cloud, attualmente sono disponibili solo sorgenti codificate in base64.
L'approccio più semplice è fare riferimento a un PDF direttamente da un URL:
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)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-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)Per i PDF che utilizzerai ripetutamente, o quando vuoi evitare l'overhead della codifica, usa la Files API:
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-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)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 a quello 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 per migliorare le prestazioni su query ripetute:
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."},
],
}
],
)Usa la Message Batches API per flussi di lavoro ad alto volume:
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."},
],
}
],
},
}
]
)Esplora esempi pratici di elaborazione PDF nella ricetta del cookbook.
Consulta la documentazione API completa per il supporto PDF.
Was this page helpful?