La Files API ti consente di caricare e gestire file da utilizzare con la Claude API senza dover ricaricare il contenuto a ogni richiesta. Questo è particolarmente utile quando si utilizza lo strumento di esecuzione del codice per fornire input (ad esempio, dataset e documenti) e poi scaricare output (ad esempio, grafici). Puoi esplorare direttamente il riferimento API, in aggiunta a questa guida.
La Files API è in beta. Contattaci tramite il modulo di feedback per condividere la tua esperienza con la Files API.
Questa funzionalità non è idonea per Zero Data Retention (ZDR). I dati vengono conservati secondo la politica di conservazione standard della funzionalità.
Il riferimento a un file_id in una richiesta Messages è supportato su tutti i modelli che supportano il tipo di file specificato. Le immagini sono supportate su tutti i modelli Claude attuali. Per i PDF e altri tipi di file con lo strumento di esecuzione del codice, consulta le pagine collegate per il supporto dei modelli.
La Files API è disponibile sulla Claude API, su Claude Platform su AWS e su Microsoft Foundry. Su Microsoft Foundry, la Files API richiede un deployment Hosted on Anthropic. Attualmente non è disponibile su Amazon Bedrock o Google Cloud.
La Files API fornisce un approccio "crea una volta, usa molte volte" per lavorare con i file:
file_id univocofile_id invece di ricaricare il contenutoPer usare la Files API, dovrai includere l'header della funzionalità beta: anthropic-beta: files-api-2025-04-14. Gli SDK aggiungono questo header automaticamente quando chiami i metodi nel namespace beta.files, quindi gli esempi SDK in questa pagina non lo passano esplicitamente per le operazioni sui file. Le richieste Messages che referenziano un file invece lo richiedono, e gli esempi SDK lo passano tramite il loro parametro betas.
Carica un file da referenziare nelle future chiamate API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)
file_id = uploaded.id
print(file_id)La risposta al caricamento di un file include:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}downloadable è false per i file che carichi. Solo i file creati dalle skill o dallo strumento di esecuzione del codice possono essere scaricati. Consulta Scaricare un file.
Una volta caricato, referenzia il file passando l'id dalla risposta di caricamento come file_id:
response = client.beta.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{"type": "text", "text": "Please summarize this document for me."},
{
"type": "document",
"source": {
"type": "file",
"file_id": file_id,
},
},
],
}
],
betas=["files-api-2025-04-14"],
)
print(response)La Files API supporta diversi tipi di file che corrispondono a diversi tipi di blocchi di contenuto:
| Tipo di file | Tipo MIME | Tipo di blocco di contenuto | Caso d'uso |
|---|---|---|---|
application/pdf | document | Analisi del testo, elaborazione di documenti | |
| Testo semplice | text/plain | document | Analisi del testo, elaborazione |
| Immagini | image/jpeg, image/png, image/gif, image/webp | image | Analisi di immagini, attività visive |
| Dataset, altri | Varia | container_upload | Analizzare dati, creare visualizzazioni |
Per i PDF e i file di testo, usa il blocco di contenuto document:
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
},
"title": "Document Title", // Optional
"context": "Context about the document", // Optional
"citations": { "enabled": true } // Optional, enables citations
}Per le immagini, usa il blocco di contenuto image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Per inviare un file allo strumento di esecuzione del codice, usa il blocco di contenuto container_upload:
{
"type": "container_upload",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
}Per i tipi di file che il blocco document non supporta (ad esempio, .docx e .xlsx), converti i file in testo semplice e includi il contenuto direttamente nel tuo messaggio. I file che sono già in testo semplice, come i file .csv e .md, possono essere letti in questo modo oppure caricati tramite la Files API con un content type esplicito text/plain. Per analizzare dataset invece di leggerli come testo, caricali per lo strumento di esecuzione del codice utilizzando un blocco container_upload.
Gli esempi seguenti leggono un file di testo e inviano il suo contenuto come testo semplice:
client = anthropic.Anthropic()
# Leggi il file di testo
with open("document.txt") as f:
text_content = f.read()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the document content:\n\n{text_content}\n\nPlease summarize this document.",
}
],
}
],
)
print(response.content[0].text)Per i file .docx contenenti immagini, convertili prima in formato PDF, poi usa il supporto PDF per sfruttare il parsing delle immagini integrato. Questo consente di utilizzare le citazioni dal documento PDF.
Recupera un elenco dei file che hai caricato. L'endpoint è paginato: ogni richiesta restituisce fino a limit file (20 per impostazione predefinita), e i parametri before_id e after_id recuperano la pagina adiacente. Consulta il riferimento API List Files. Gli SDK restituiscono la prima pagina e forniscono helper di auto-paginazione. L'esempio CLI limita il totale con --max-items:
client = anthropic.Anthropic()
files = client.beta.files.list()
print(files)Recupera le informazioni su un file specifico:
file = client.beta.files.retrieve_metadata(file_id)
print(file)Rimuovi un file dal tuo workspace:
client.beta.files.delete(file_id)Scarica i file che sono stati creati dalle skill o dallo strumento di esecuzione del codice. I file che carichi non possono essere scaricati. Il file_id di un file generato appare nel blocco di contenuto code_execution_tool_result della risposta Messages che lo ha creato:
file_content = client.beta.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")Un file è scaricabile solo quando i suoi metadati mostrano "downloadable": true, il che avviene per i file creati dalle skill o dallo strumento di esecuzione del codice. Scaricare un file che hai caricato restituisce un errore 400.
DELETE /v1/files/{file_id}Gli errori comuni durante l'uso della Files API includono:
file_id specificato non esiste o non hai accesso ad esso"downloadable": false e non possono essere scaricati. Solo i file creati dalle skill o dallo strumento di esecuzione del codice possono essere scaricati/v1/messages)<, >, :, ", |, ?, *, \, /, o caratteri Unicode 0-31){
"type": "error",
"error": {
"type": "not_found_error",
"message": "File `file_011CNha8iCJcU1wXNR6q4V8w` not found."
},
"request_id": "req_011CQFYcrRp7mCHLDsAYT8Qt"
}Le operazioni della Files API sono gratuite:
Il contenuto dei file utilizzato nelle richieste Messages viene fatturato come token di input.
Durante il periodo beta:
Elabora PDF con Claude. Estrai testo, analizza grafici e comprendi il contenuto visivo dei tuoi documenti.
Esegui codice Python e bash in un container sandbox per analizzare dati, generare file e iterare sulle soluzioni.
Elabora e analizza input visivi e genera testo e codice dalle immagini.
Was this page helpful?