L'API Files vous permet de téléverser et de gérer des fichiers à utiliser avec l'API Claude sans avoir à retéléverser le contenu à chaque requête. Cela est particulièrement utile lorsque vous utilisez l'outil d'exécution de code pour fournir des entrées (par exemple, des jeux de données et des documents) puis télécharger des sorties (par exemple, des graphiques). Vous pouvez également utiliser l'API Files pour éviter d'avoir à retéléverser continuellement des documents et des images fréquemment utilisés lors de multiples appels d'API. Vous pouvez explorer directement la référence de l'API, en complément de ce guide.
L'API Files est en version bêta. Contactez-nous via le formulaire de commentaires pour partager votre expérience avec l'API Files.
Cette fonctionnalité n'est pas éligible à la Zero Data Retention (ZDR). Les données sont conservées conformément à la politique de conservation standard de la fonctionnalité.
Le référencement d'un file_id dans une requête Messages est pris en charge sur tous les modèles qui prennent en charge le type de fichier concerné. Les images sont prises en charge sur tous les modèles Claude actuels. Pour les PDF et les autres types de fichiers avec l'outil d'exécution de code, consultez les pages liées pour connaître la prise en charge par modèle.
L'API Files est disponible sur l'API Claude, Claude Platform sur AWS et Microsoft Foundry. Elle n'est actuellement pas disponible sur Amazon Bedrock ni sur Vertex AI.
L'API Files offre une approche simple de type « créer une fois, utiliser plusieurs fois » pour travailler avec des fichiers :
file_id uniquefile_id au lieu de retéléverser le contenuPour utiliser l'API Files, vous devez inclure l'en-tête de fonctionnalité bêta : anthropic-beta: files-api-2025-04-14.
Téléversez un fichier à référencer dans de futurs appels d'API :
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)La réponse au téléversement d'un fichier inclura :
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}Une fois téléversé, référencez le fichier en utilisant son 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)L'API Files prend en charge différents types de fichiers qui correspondent à différents types de blocs de contenu :
| Type de fichier | Type MIME | Type de bloc de contenu | Cas d'utilisation |
|---|---|---|---|
application/pdf | document | Analyse de texte, traitement de documents | |
| Texte brut | text/plain | document | Analyse de texte, traitement |
| Images | image/jpeg, image/png, image/gif, image/webp | image | Analyse d'images, tâches visuelles |
| Jeux de données, autres | Variable | container_upload | Analyser des données, créer des visualisations |
Pour les types de fichiers qui ne sont pas pris en charge en tant que blocs document (.csv, .txt, .md, .docx, .xlsx), convertissez les fichiers en texte brut et incluez le contenu directement dans votre message :
import pandas as pd
# Exemple : lecture d'un fichier CSV
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Envoyer en tant que texte brut dans le message
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)Pour les fichiers .docx contenant des images, convertissez-les d'abord au format PDF, puis utilisez la prise en charge des PDF pour tirer parti de l'analyse d'images intégrée. Cela permet d'utiliser des citations provenant du document PDF.
Pour les PDF et les fichiers texte, utilisez le bloc de contenu 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
}Pour les images, utilisez le bloc de contenu image :
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Récupérez une liste de vos fichiers téléversés :
client = anthropic.Anthropic()
files = client.beta.files.list()Récupérez des informations sur un fichier spécifique :
file = client.beta.files.retrieve_metadata(file_id)Supprimez un fichier de votre espace de travail :
result = client.beta.files.delete(file_id)Téléchargez des fichiers qui ont été créés par des compétences ou par l'outil d'exécution de code :
file_content = client.beta.files.download(file_id)
# Save to file
file_content.write_to_file("downloaded_file.txt")Vous pouvez uniquement télécharger des fichiers qui ont été créés par des compétences ou par l'outil d'exécution de code. Les fichiers que vous avez téléversés ne peuvent pas être téléchargés.
Messages actifs et les utilisations d'outils associéesLes fichiers téléversés via l'API Files sont conservés jusqu'à leur suppression explicite à l'aide du point de terminaison DELETE /v1/files/{file_id}. Les fichiers sont stockés pour être réutilisés dans plusieurs requêtes d'API.
Pour l'éligibilité ZDR sur l'ensemble des fonctionnalités, consultez API et conservation des données.
Les erreurs courantes lors de l'utilisation de l'API Files incluent :
file_id spécifié n'existe pas ou vous n'y avez pas accès/v1/messages)<, >, :, ", |, ?, *, \, /, ou des caractères Unicode 0 à 31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}Les opérations de l'API Files sont gratuites :
Le contenu des fichiers utilisé dans les requêtes Messages est facturé en tant que jetons d'entrée. Vous pouvez uniquement télécharger des fichiers créés par des compétences ou par l'outil d'exécution de code.
Pendant la période bêta :
Was this page helpful?