La Files API ti consente di caricare e gestire file da utilizzare con l'API di Claude senza 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 gli output (ad esempio, grafici). Puoi esplorare direttamente il riferimento API, oltre a questa guida.
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 offre un approccio "crea una volta, usa molte volte" per lavorare con i file:
file_id univocofile_id invece di ricaricare il contenutoCarica un file da referenziare nelle future chiamate API:
uploaded = client.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.messages.create(
model="claude-opus-5",
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,
},
},
],
}
],
)
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 PDF e 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 tipo di contenuto text/plain esplicito. 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 ne inviano il 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-5",
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.",
}
],
}
],
)
for block in response.content:
if block.type == "text":
print(block.text)Recupera un elenco dei tuoi file caricati. 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 informazioni su un file specifico:
file = client.files.retrieve_metadata(file_id)
print(file)Rimuovi un file dal tuo workspace:
client.files.delete(file_id)Scarica i file 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 bash_code_execution_tool_result della risposta Messages che lo ha creato:
file_content = client.files.download(file_id)
file_content.write_to_file("downloaded_file.txt")DELETE /v1/files/{file_id}Gli errori comuni quando si utilizza la 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 addebitato come token di input.
Durante il periodo beta:
Elabora PDF con Claude. Estrai testo, analizza grafici e comprendi contenuti visivi dai 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.
| Supported platforms |
|
|---|
Was this page helpful?