La Files API ti consente di caricare e gestire file da utilizzare con l'API di Claude 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 anche utilizzare la Files API per evitare di dover ricaricare continuamente documenti e immagini utilizzati di frequente in più chiamate API. Puoi esplorare direttamente il riferimento API, oltre a questa guida.
La Files API è in versione 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 sull'API di Claude, su Claude Platform su AWS e su Microsoft Foundry. Attualmente non è disponibile su Amazon Bedrock o Vertex AI.
La Files API fornisce un approccio semplice "crea una volta, usa molte volte" per lavorare con i file:
file_id univocofile_id invece di ricaricare il contenutoPer utilizzare la Files API, dovrai includere l'header della funzionalità beta: anthropic-beta: files-api-2025-04-14.
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"),
)La risposta al caricamento di un file includerà:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}Una volta caricato, referenzia il file utilizzando il suo 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 tipi di file che non sono supportati come blocchi document (.csv, .txt, .md, .docx, .xlsx), converti i file in testo semplice e includi il contenuto direttamente nel tuo messaggio:
import pandas as pd
# Esempio: lettura di un file CSV
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Invia come testo semplice nel messaggio
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": [
{
"type": "text",
"text": f"Here's the CSV data:\n\n{csv_content}\n\nPlease analyze this data.",
}
],
}
],
)
print(response.content[0].text)Per i file .docx contenenti immagini, convertili prima in formato PDF, quindi utilizza il supporto PDF per sfruttare l'analisi delle immagini integrata. Questo consente di utilizzare le citazioni dal documento PDF.
Per PDF e file di testo, utilizza 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, utilizza il blocco di contenuto image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Recupera un elenco dei tuoi file caricati:
client = anthropic.Anthropic()
files = client.beta.files.list()Recupera informazioni su un file specifico:
file = client.beta.files.retrieve_metadata(file_id)Rimuovi un file dal tuo workspace:
result = client.beta.files.delete(file_id)Scarica i file che sono stati creati da skill o dallo strumento di esecuzione del codice:
file_content = client.beta.files.download(file_id)
# Save to file
file_content.write_to_file("downloaded_file.txt")Puoi scaricare solo i file che sono stati creati da skill o dallo strumento di esecuzione del codice. I file che hai caricato non possono essere scaricati.
Messages attive e negli usi degli strumenti associatiI file caricati tramite la Files API vengono conservati fino a quando non vengono eliminati esplicitamente utilizzando l'endpoint DELETE /v1/files/{file_id}. I file vengono archiviati per il riutilizzo in più richieste API.
Per l'idoneità ZDR su tutte le funzionalità, consulta API e conservazione dei dati.
Gli errori comuni quando si utilizza la Files API includono:
file_id specificato non esiste o non hai accesso ad esso/v1/messages)<, >, :, ", |, ?, *, \, /, o caratteri unicode 0-31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}Le operazioni della Files API sono gratuite:
Il contenuto dei file utilizzato nelle richieste Messages viene addebitato come token di input. Puoi scaricare solo i file creati da skill o dallo strumento di esecuzione del codice.
Durante il periodo beta:
Was this page helpful?