Выполнение кода и Files API

Чему научитесь

Видео 11:07 и текст урока

К концу урока вы сможете:

Видео и текст урока.

Смотреть урок на Skilljar Code execution and the Files API · 11:07

В Anthropic API есть две мощные возможности, которые отлично работают вместе: Files API и выполнение кода (code execution). На первый взгляд они кажутся отдельными, но вместе открывают интересные возможности поручать Claude сложные задачи.

Files API

Files API — альтернативный способ работать с загрузкой файлов. Вместо того чтобы вставлять изображения или PDF прямо в сообщения в base64, можно заранее загрузить файлы и потом ссылаться на них.

Сервер отправляет Claude сырые данные изображения и текст «What do you see in this image?», Claude отвечает «I see a tall tree».
Без Files API: изображение отправляется в запросе целиком.

Как это работает:

Сервер отправляет ID файла в блоке изображения и текст; Claude отвечает «I see a tall tree».
С Files API: в блоке изображения только ID файла.

Это особенно удобно, когда на один файл нужно ссылаться много раз или когда файлы большие и включать их в каждый запрос неудобно.

Инструмент выполнения кода

Выполнение кода — серверный инструмент, реализацию которого писать не нужно. Вы просто добавляете в запрос готовую схему инструмента, и Claude при необходимости выполняет код на Python в изолированном Docker-контейнере.

Сервер просит число пи до 50-го знака; Claude возвращает код, результат 3.1415926535 и текстовый ответ.
Запрос «число пи до 50-го знака»: Claude пишет код, получает результат и отвечает текстом.

Главные особенности среды выполнения:

Files API и выполнение кода вместе

Настоящая сила — в сочетании. Раз у контейнеров нет сети, Files API становится главным способом передать данные в среду выполнения и получить их обратно.

Процесс: сообщение с блоком container upload и текстом, затем ответ Claude из кода, результатов и текста.
Сообщение с блоком container_upload и текстом — и ответ из кода, результатов и текста.

Типичный процесс:

Практический пример

Возьмём реальный пример с данными стримингового сервиса. CSV-файл содержит информацию о пользователях: тарифы, привычки просмотра и то, ушёл ли пользователь (отменил подписку, churn).

Файл streaming.csv со столбцами UserID, SubscriptionTier, TotalViewingHoursLastMonth и строками с USER_00001.
streaming.csv: UserID, SubscriptionTier, TotalViewingHoursLastMonth и другие столбцы.

Сначала загрузим файл вспомогательной функцией:

file_metadata = upload('streaming.csv')

Затем создадим сообщение, в котором есть и загруженный файл, и просьба об анализе:

messages = []
add_user_message(
    messages,
    [
        {
            "type": "text",
            "text": """Run a detailed analysis to determine major drivers of churn.
            Your final output should include at least one detailed plot summarizing your findings."""
        },
        {"type": "container_upload", "file_id": file_metadata.id},
    ],
)

chat(
    messages,
    tools=[{"type": "code_execution_20250522", "name": "code_execution"}]
)

Что приходит в ответе

Когда Claude выполняет код, в ответе есть блоки нескольких типов:

Распечатанный ответ: текстовый блок о причинах оттока, блок server tool use с кодом на pandas, затем результат инструмента.
Ответ: текст о причинах оттока, блок server_tool_use с кодом на pandas и результат выполнения.

Claude может выполнить код несколько раз за один ответ, постепенно наращивая анализ. Каждый цикл выполнения включает код и его результаты.

Скачивание созданных файлов

Одна из самых мощных возможностей — Claude может создавать файлы (графики, отчёты) и делать их доступными для скачивания. Созданная визуализация сохраняется в контейнере, и её можно скачать через Files API.

Ищите в ответе блоки с типом "code_execution_output" — в них ID созданных файлов:

download_file("file_id_from_response")
Скачанный многопанельный график анализа оттока: 500 пользователей, отток 38.6%, главный фактор — обращения в поддержку.
Скачанный график: 500 пользователей, отток 38.6%, главный фактор — обращения в поддержку.

В итоге получается полноценный анализ с профессиональными визуализациями, на которые вручную ушло бы немало кода.

Не только анализ данных

Анализ данных — естественное применение, но связка Files API и выполнения кода открывает много возможностей:

Главное — вы можете поручать Claude сложные вычислительные задачи, сохраняя контроль над входом и выходом через Files API. Получается мощный процесс, в котором Claude становится помощником-программистом, который действительно выполняет и дорабатывает решения.

Дальше

Блок пройден. В оригинале после этого урока идёт официальный квиз Skilljar — Quiz on features of Claude (7 вопросов, проходится на Skilljar). Проверить себя можно и нашим пробным экзаменом по возможностям Claude.

Оригинал урока: Code execution and the Files API.