Files API позволяет загружать файлы и управлять ими для использования с Claude API без повторной загрузки содержимого при каждом запросе. Это особенно полезно при использовании инструмента выполнения кода для предоставления входных данных (например, наборов данных и документов) и последующего скачивания результатов (например, диаграмм). Вы также можете использовать Files API, чтобы избежать постоянной повторной загрузки часто используемых документов и изображений в нескольких вызовах API. В дополнение к этому руководству вы можете изучить справочник по API напрямую.
Files API находится в стадии бета-тестирования. Поделитесь своим опытом работы с Files API через форму обратной связи.
Эта функция не подпадает под действие политики Zero Data Retention (ZDR). Данные хранятся в соответствии со стандартной политикой хранения данных для этой функции.
Ссылка на file_id в запросе Messages поддерживается во всех моделях, которые поддерживают данный тип файла. Изображения поддерживаются во всех текущих моделях Claude. Для PDF-файлов и других типов файлов с инструментом выполнения кода см. поддержку моделей на соответствующих страницах.
Files API доступен в Claude API, Claude Platform на AWS и Microsoft Foundry. В настоящее время он недоступен в Amazon Bedrock или Vertex AI.
Files API предоставляет простой подход «создать один раз, использовать многократно» для работы с файлами:
file_idfile_id вместо повторной загрузки содержимогоЧтобы использовать Files API, вам необходимо включить заголовок бета-функции: anthropic-beta: files-api-2025-04-14.
Загрузите файл, на который можно будет ссылаться в будущих вызовах API:
uploaded = client.beta.files.upload(
file=("document.pdf", open("/path/to/document.pdf", "rb"), "application/pdf"),
)Ответ на загрузку файла будет содержать:
{
"id": "file_011CNha8iCJcU1wXNR6q4V8w",
"type": "file",
"filename": "document.pdf",
"mime_type": "application/pdf",
"size_bytes": 1024000,
"created_at": "2025-01-01T00:00:00Z",
"downloadable": false
}После загрузки ссылайтесь на файл, используя его 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)Files API поддерживает различные типы файлов, которые соответствуют различным типам блоков содержимого:
| Тип файла | MIME-тип | Тип блока содержимого | Вариант использования |
|---|---|---|---|
application/pdf | document | Анализ текста, обработка документов | |
| Обычный текст | text/plain | document | Анализ текста, обработка |
| Изображения | image/jpeg, image/png, image/gif, image/webp | image | Анализ изображений, визуальные задачи |
| Наборы данных, другое | Различные | container_upload | Анализ данных, создание визуализаций |
Для типов файлов, которые не поддерживаются как блоки document (.csv, .txt, .md, .docx, .xlsx), преобразуйте файлы в обычный текст и включите содержимое непосредственно в ваше сообщение:
import pandas as pd
# Пример: чтение CSV-файла
df = pd.read_csv("data.csv")
csv_content = df.to_string()
# Отправить как обычный текст в сообщении
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)Для файлов .docx, содержащих изображения, сначала преобразуйте их в формат PDF, а затем используйте поддержку PDF, чтобы воспользоваться встроенным анализом изображений. Это позволяет использовать цитаты из PDF-документа.
Для PDF-файлов и текстовых файлов используйте блок содержимого 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
}Для изображений используйте блок содержимого image:
{
"type": "image",
"source": {
"type": "file",
"file_id": "file_011CPMxVD3fHLUhvTqtsQA5w"
}
}Получите список загруженных вами файлов:
client = anthropic.Anthropic()
files = client.beta.files.list()Получите информацию о конкретном файле:
file = client.beta.files.retrieve_metadata(file_id)Удалите файл из вашего рабочего пространства:
result = client.beta.files.delete(file_id)Скачивайте файлы, созданные навыками или инструментом выполнения кода:
file_content = client.beta.files.download(file_id)
# Save to file
file_content.write_to_file("downloaded_file.txt")Вы можете скачивать только файлы, созданные навыками или инструментом выполнения кода. Файлы, которые вы загрузили, скачать нельзя.
Messages и связанных с ними операциях использования инструментовФайлы, загруженные через Files API, хранятся до тех пор, пока не будут явно удалены с помощью конечной точки DELETE /v1/files/{file_id}. Файлы хранятся для повторного использования в нескольких запросах API.
Информацию о соответствии требованиям ZDR для всех функций см. в разделе API и хранение данных.
Распространённые ошибки при использовании Files API включают:
file_id не существует, или у вас нет к нему доступа/v1/messages)<, >, :, ", |, ?, *, \, / или символы Unicode 0–31){
"type": "error",
"error": {
"type": "invalid_request_error",
"message": "File not found: file_011CNha8iCJcU1wXNR6q4V8w"
}
}Операции File API бесплатны:
Содержимое файлов, используемое в запросах Messages, тарифицируется как входные токены. Вы можете скачивать только файлы, созданные навыками или инструментом выполнения кода.
В период бета-тестирования:
Was this page helpful?