La API de Archivos te permite cargar y gestionar archivos para usar con la API de Claude sin reuploading de contenido con cada solicitud. Esto es particularmente útil cuando se utiliza la herramienta de ejecución de código para proporcionar entradas (por ejemplo, conjuntos de datos y documentos) y luego descargar salidas (por ejemplo, gráficos). También puedes usar la API de Archivos para evitar tener que reuploading continuamente documentos e imágenes frecuentemente utilizados en múltiples llamadas a la API. Puedes explorar la referencia de la API directamente, además de esta guía.
La API de Archivos está en beta. Comunícate a través del formulario de comentarios para compartir tu experiencia con la API de Archivos.
This feature is not eligible for Zero Data Retention (ZDR). Data is retained according to the feature's standard retention policy.
Hacer referencia a un file_id en una solicitud de Mensajes es compatible en todos los modelos que admiten el tipo de archivo dado. Por ejemplo, las imágenes son compatibles en todos los modelos Claude 3+, los PDFs en todos los modelos Claude 3.5+, y varios otros tipos de archivo para la herramienta de ejecución de código en Claude Haiku 4.5 más todos los modelos Claude 3.7+.
La API de Archivos actualmente no es compatible con Amazon Bedrock o Google Vertex AI.
La API de Archivos proporciona un enfoque simple de crear una vez, usar muchas veces para trabajar con archivos:
file_id únicofile_id en lugar de reuploading de contenidoPara usar la API de Archivos, necesitarás incluir el encabezado de característica beta: anthropic-beta: files-api-2025-04-14.
Carga un archivo para ser referenciado en futuras llamadas a la API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)La respuesta de cargar un archivo incluirá:
{
"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 vez cargado, haz referencia al archivo usando su file_id:
response = client.beta.messages.create(
model="claude-opus-4-6",
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 API de Archivos admite diferentes tipos de archivo que corresponden a diferentes tipos de bloques de contenido:
| Tipo de Archivo | Tipo MIME | Tipo de Bloque de Contenido | Caso de Uso |
|---|---|---|---|
application/pdf | document | Análisis de texto, procesamiento de documentos | |
| Texto plano | text/plain | document | Análisis de texto, procesamiento |
| Imágenes | image/jpeg, image/png, image/gif, image/webp | image | Análisis de imágenes, tareas visuales |
| Conjuntos de datos, otros | Varía | container_upload | Analizar datos, crear visualizaciones |
Para tipos de archivo que no son compatibles como bloques document (.csv, .txt, .md, .docx, .xlsx), convierte los archivos a texto plano e incluye el contenido directamente en tu mensaje:
import pandas as pd
# Ejemplo: Leyendo un archivo CSV
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Envía como texto plano en el mensaje
response = client.messages.create(
model="claude-opus-4-7",
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)Para archivos .docx que contienen imágenes, conviértelos a formato PDF primero, luego usa compatibilidad con PDF para aprovechar el análisis de imágenes integrado. Esto permite usar citas del documento PDF.
Para PDFs y archivos de texto, usa el bloque de contenido document:
{
"type": "document",
"source": {
"type": "file",
"file_id": "file_011CNha8iCJcU1wXNR6q4V8w"
},
"title": "Document Title", // Opcional
"context": "Context about the document", // Opcional
"citations": { "enabled": true } // Opcional, habilita citas
}Para imágenes, usa el bloque de contenido image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Recupera una lista de tus archivos cargados:
client = anthropic.Anthropic()
files = client.beta.files.list()Recupera información sobre un archivo específico:
file = client.beta.files.retrieve_metadata(file_id)Elimina un archivo de tu espacio de trabajo:
result = client.beta.files.delete(file_id)Descarga archivos que han sido creados por habilidades o la herramienta de ejecución de código:
file_content = client.beta.files.download(file_id)
# Save to file
file_content.write_to_file("downloaded_file.txt")Solo puedes descargar archivos que fueron creados por habilidades o la herramienta de ejecución de código. Los archivos que cargaste no pueden ser descargados.
Los archivos cargados a través de la API de Archivos se retienen hasta que se eliminen explícitamente usando el endpoint DELETE /v1/files/{file_id}. Los archivos se almacenan para reutilización en múltiples solicitudes de API.
Para elegibilidad de ZDR en todas las características, consulta API y retención de datos.
Los errores comunes al usar la API de Archivos incluyen:
file_id especificado no existe o no tienes acceso a él/v1/messages)<, >, :, ", |, ?, *, \, /, o caracteres unicode 0-31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}Las operaciones de la API de Archivos son gratuitas:
El contenido del archivo utilizado en solicitudes de Messages se factura como tokens de entrada. Solo puedes descargar archivos creados por habilidades o la herramienta de ejecución de código.
Durante el período beta:
Was this page helpful?