Перейти к основному содержанию
Anthropic Claude — очень мощная система диалогов с ИИ: достаточно ввести промпт, и она сможет всего за несколько секунд сгенерировать плавный и естественный ответ. Claude Messages API — это официальный нативный формат API Anthropic. В отличие от совместимого с OpenAI формата (Chat Completion), он использует собственную структуру запросов и ответов Anthropic, что позволяет лучше задействовать уникальные возможности Claude, такие как мультимодальный ввод контента, вызов инструментов, глубокое мышление (Extended Thinking) и другие расширенные функции. Этот документ в основном описывает процесс использования операций Claude Messages API. С его помощью мы можем использовать нативный интерфейс, согласованный с официальным Anthropic, для вызова диалоговых функций Claude.

Процесс получения

Чтобы использовать Claude Messages API, сначала получите ваш API Token в консоли Ace Data Cloud и сохраните его для дальнейшего использования. Если вы ещё не вошли в систему или не зарегистрировались, вы будете автоматически перенаправлены на страницу входа, где вам будет предложено зарегистрироваться и войти; после завершения вы автоматически вернётесь на текущую страницу. Один API Token позволяет вызывать все сервисы платформы, не нужно подавать отдельную заявку для каждого сервиса. При первом получении предоставляется бесплатный лимит, который можно использовать для бесплатного ознакомления; при недостаточном лимите можно пополнить общий баланс в консоли.
📘 Полная документация: Claude Messages API →

Базовое использование

Путь запроса Claude Messages API — /v1/messages, он соответствует официальному API Anthropic. Нам необходимо предоставить как минимум три обязательных параметра:
  • model: выбор используемой модели Claude. claude-opus-5-5 предоставляется только через Messages API, поддерживает контекст в 1 миллион Token, максимальный вывод 128K Token и всегда включает адаптивное мышление. Новейшим флагманом является claude-fable-5-1 (контекст в 1 миллион Token, максимальный вывод 128K Token); исходный claude-fable-5 всё ещё сохранён для совместимости. claude-sonnet-5-5 добавлен в серию нативных интерфейсов Messages, поддерживает ввод изображений и адаптивное мышление; его официальные справочные цены на ввод, вывод и чтение кэша составляют соответственно 2, 10 и 0,20 доллара США за миллион Token.
  • messages: массив входных сообщений, каждое сообщение содержит role (роль) и content (содержимое), при этом role поддерживает user и assistant.
  • max_tokens: максимальное число выходных token, используется для ограничения длины одного ответа.
Распространённые необязательные параметры:
  • system: системный промпт, используется для задания поведения и роли модели.
  • temperature: случайность генерации, от 0 до 1; чем больше значение, тем более вариативным будет ответ.
  • stream: использовать ли потоковый ответ; при значении true можно реализовать эффект посимвольного возврата.
  • stop_sequences: пользовательские последовательности остановки; модель прекратит генерацию при обнаружении этих текстов.
  • top_p: параметр ядерной выборки, вместе с temperature управляет случайностью генерации.
  • top_k: выборка только из K вариантов с наивысшей вероятностью.
  • tools: определения инструментов, используются для вызова моделью внешних функций.
  • tool_choice: управление тем, как модель использует предоставленные инструменты.
  • cache_control: автоматически создаёт контрольную точку кэша на последнем кэшируемом блоке содержимого запроса; также может быть записан в конкретном блоке содержимого.

Пример cURL

Пример Python

После вызова результат будет следующим:
Описание полей результата:
  • id: уникальный идентификатор текущего сообщения.
  • type: всегда message.
  • role: всегда assistant.
  • content: массив содержимого ответа, каждый элемент содержит type (например, text) и соответствующее содержимое.
  • model: название модели, обрабатывающей запрос.
  • stop_reason: причина остановки. Стабильные значения включают end_turn, max_tokens, stop_sequence, tool_use, pause_turn (можно передать текущее содержимое assistant без изменений для продолжения), refusal и model_context_window_exceeded.
  • stop_sequence: если остановка произошла из-за пользовательской последовательности остановки, отображается текст совпавшей последовательности остановки.
  • stop_details: когда stop_reason имеет значение refusal, может содержать категорию отказа и описание.
  • usage: статистика использования token. input_tokens — некэшированный ввод; cache_creation_input_tokens и cache_read_input_tokens — соответственно запись и чтение кэша; output_tokens — общее количество выходных token. Если возвращается output_tokens_details.thinking_tokens, это значение является подмножеством output_tokens; при подсчёте общего объёма или стоимости не добавляйте его повторно. При отсутствии авторитетного подсчёта эта детализация может быть null или опущена.
  • usage.cache_creation: необязательная детализация TTL записи кэша, включает ephemeral_5m_input_tokens и ephemeral_1h_input_tokens. При наличии объекта сумма двух значений равна cache_creation_input_tokens; значение поля null или отсутствие поля означает, что в текущем ответе нет доступной разбивки TTL, и его нельзя интерпретировать как 0.
  • usage.cost: непотоковый ответ может содержать объект расхода лимита, зафиксированный Ace Data Cloud, где amount — фактический расход в этот раз, currency — единица измерения, а list_amount — сумма до скидки (при наличии). Официальная базовая цена чтения кэша Fable 5.1 составляет $0.25/миллион Token, а базовые цены записи кэша на 5 минут и 1 час составляют соответственно $12.50 и $20/миллион Token; фактическая цена платформы пересчитывается согласно скидке тарифа.

Системный промпт

Claude Messages API поддерживает задание системного промпта через поле system, используемого для определения поведения, роли и контекста модели.

Пример Python

Установив системный промпт system, можно точно контролировать роль и поведение Claude.

Потоковый ответ

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

Пример Python

Потоковый ответ возвращается в формате Server-Sent Events (SSE), каждая строка начинается с event: и data:. Типы потоковых событий включают:
  • message_start: начало сообщения, содержит основную информацию о сообщении и название модели.
  • content_block_start: начало блока содержимого.
  • content_block_delta: инкрементальное обновление блока содержимого, содержит новый сгенерированный фрагмент текста.
  • content_block_stop: конец блока содержимого.
  • message_delta: инкрементальное обновление на уровне сообщения, содержит информацию stop_reason и итоговую usage. Авторитетное значение output_tokens_details.thinking_tokens следует считывать только из последнего message_delta.usage, не суммируйте его между событиями.
  • message_stop: конец сообщения.
Результат вывода выглядит следующим образом:
Как видно, событие content_block_delta в потоковом ответе содержит постепенно сгенерированный текст; объединив все text_delta, можно получить полный ответ.

Пример JavaScript

Многораундовый диалог

Если вы хотите подключить функцию многораундового диалога, необходимо попеременно располагать сообщения с ролями user и assistant в массиве messages и передавать всю предыдущую историю диалога.

Пример Python

Возвращаемый результат выглядит следующим образом:
Передавая полную историю диалога в messages, Claude может давать точные ответы с учётом контекста.

Модель глубокого мышления

Thinking и thinking summary Claude — это два разных понятия: модель может выполнять внутренние рассуждения, но API не возвращает исходную цепочку мыслей. Когда необходимо отобразить процесс рассуждения, API возвращает обработанное резюме. Для текущих моделей рекомендуется использовать adaptive thinking и управлять общими затратами на рассуждения через output_config.effort:
Блок thinking в ответе выглядит следующим образом:
  • display: "summarized" возвращает читаемое резюме размышлений; это не исходная цепочка мыслей.
  • display: "omitted" возвращает thinking: "", но по-прежнему сохраняет непрозрачную signature для поддержки последующих диалогов.
  • display: "updates" — это beta-режим Anthropic, требующий передачи anthropic-beta: thinking-display-updates-2026-08-18. Официальное определение — скрывать основной текст рассуждений и показывать краткие обновления прогресса между вызовами инструментов. Платформа передаёт этот параметр и beta-заголовок в исходном виде и не принудительно переписывает его в summarized; фактическое содержимое вывода зависит от поддержки выбранной моделью.
  • thinking, output_config, effort, параметры сэмплирования и добавленные поля расширений передаются в исходном виде. Платформа не поддерживает жёстко закодированные по моделям перечисления значений или ограничения комбинаций и не переписывает автоматически режим thinking; решение о принятии этих параметров принимает выбранная модель, а ошибки параметров, возвращённые моделью, передаются обратно клиенту.
  • Значение display по умолчанию для Fable 5.1, Fable 5, Opus 5, Sonnet 5, Opus 4.8 и Opus 4.7 — omitted; Opus 4.6, Sonnet 4.6 и более ранние модели с поддержкой thinking по умолчанию используют summarized.
  • Display влияет только на возвращаемое содержимое и задержку потоковой передачи, не отключает рассуждения и не уменьшает тарификацию thinking token.
  • Вопрос о том, включён ли thinking по умолчанию, и значение display по умолчанию — это два независимых вопроса. Opus 5 и Sonnet 5 по умолчанию включают adaptive thinking; для Opus 5 пропуск thinking эквивалентен adaptive, а пропуск output_config.effort эквивалентен high. Opus 4.8, 4.7 и 4.6 требуют явного включения.
  • Thinking и итоговый текст совместно используют выходной бюджет max_tokens. При слишком малом бюджете thinking может занять большую часть лимита, оставив текст пустым или обрезанным; увеличьте max_tokens или используйте effort low / medium, чтобы контролировать затраты на рассуждения.
  • Для моделей, которым разрешено отключать thinking, можно передать thinking: {"type":"disabled"}. Новые режимы, такие как between_tools, а также комбинации effort зависят от выбранной модели; платформа не отклоняет их заранее на основе старых правил для моделей.
  • Фиксированный бюджет размышлений можно передать через budget_tokens; новые модели обычно используют thinking.type=adaptive и output_config.effort. Поддержка фиксированного бюджета или отключения размышлений определяется текущими возможностями выбранной модели.
  • В многоходовых диалогах и при вызовах инструментов следует передавать обратно полный блок thinking и signature, возвращённые assistant, без изменений; не изменяйте и не создавайте signature самостоятельно.
  • Прозрачная передача параметров не означает, что каждая модель поддерживает все функции. Вызовы между протоколами по-прежнему требуют преобразования, а область поддержки и ошибки для такого содержимого, как redacted_thinking, определяются модельным сервисом, который фактически обрабатывает запрос.
В потоковых запросах summarized создаёт thinking_delta; omitted не создаёт thinking_delta, сохраняя только жизненный цикл блока thinking и signature_delta.

Визуальные модели

Claude поддерживает мультимодальный ввод и может одновременно обрабатывать текст и изображения. В Messages API визуальные возможности можно использовать, установив content в формат массива и передав блок содержимого изображения.

Использование изображения с кодированием Base64

Использование изображения по URL

Пример cURL

Поддерживаемые форматы изображений: image/jpeg, image/png, image/gif, image/webp.

Документы и PDF

PDF использует блок содержимого document и поддерживает два стабильных источника: Base64 и URL. Источник Base64 обязательно должен использовать application/pdf:
Источник URL записывается как {"type":"url","url":"https://example.com/report.pdf"}. document также поддерживает text/plain и источник content, состоящий из блоков text/image; необязательные поля включают title, context и citations. Источник file_id из Files API относится к отдельной beta-функции и не входит в стабильный контракт данного интерфейса.

Кэширование промптов

Верхнеуровневый cache_control автоматически размещает точку останова кэша на последнем кэшируемом блоке:
Когда требуется точный контроль позиции, тот же cache_control также можно указать в блоках содержимого text, image, document, tool_use, tool_result или в определении инструмента. ttl поддерживает 5m (по умолчанию) и 1h; определяйте запись в кэш и попадание в кэш с помощью usage.cache_creation_input_tokens и usage.cache_read_input_tokens. Когда ответ предоставляет usage.cache_creation, ephemeral_5m_input_tokens + ephemeral_1h_input_tokens = cache_creation_input_tokens. Если cache_creation имеет значение null или опущен, это означает, что имеется только общий объём записи в кэш без авторитетной разбивки по TTL; в этом случае не считайте ни один bucket заведомо равным 0, а тарификация и общие объёмы по-прежнему должны основываться на aggregate-поле. Пример возвращаемого результата:

Вызов инструментов (Tool Use)

Claude Messages API нативно поддерживает функцию вызова инструментов, позволяя модели при необходимости вызывать заранее определённые вами инструменты/функции.

Пример на Python

Когда модель решает вызвать инструмент, в возвращаемом результате content будет содержать блок содержимого типа tool_use:
Обратите внимание, что stop_reason имеет значение tool_use, что означает необходимость вызова инструмента моделью. После получения этого результата вам нужно выполнить функцию инструмента и передать результат обратно модели в форме tool_result:
Модель на основе результата, возвращённого инструментом, сгенерирует окончательный ответ на естественном языке.

Отличия от Chat Completion API

Ace Data Cloud одновременно предоставляет два формата Claude API; их основные отличия приведены ниже: usage.input_tokens в Messages API обозначает только некэшированный ввод, а cache_read_input_tokens и cache_creation_input_tokens являются независимыми тарифицируемыми корзинами; все три рассчитываются отдельно по соответствующим ценам. Если ваша система уже интегрирована с API формата OpenAI, для бесшовного переключения можно использовать Chat Completion API. Если вам необходимо использовать все нативные возможности Claude, рекомендуется использовать Messages API.

Обработка ошибок

Ответы об ошибках публичного интерфейса используют envelope платформы Ace Data Cloud: error.code — стабильный код ошибки, error.message — описание, а trace_id используется для диагностики запроса. Распространённые HTTP-статусы включают:
  • 400: параметры запроса или содержимое протокола недействительны.
  • 401: токен авторизации недействителен, отсутствует или истёк.
  • 403: доступ запрещён, недостаточно средств или действуют ограничения квоты.
  • 404: API или модель не существуют.
  • 413: тело запроса слишком велико.
  • 429: слишком много запросов.
  • 500 / 503 / 504: ошибка сервиса, временная недоступность или тайм-аут обработки.

Пример ответа с ошибкой

Эта структура ошибки является контрактом времени выполнения Ace Data Cloud и не эквивалентна официальному envelope ошибок Anthropic; обрабатывайте её по HTTP-статусу и error.code.

Заключение

Из этого документа вы уже узнали, как использовать Claude Messages API для вызова диалоговых функций Claude в нативном формате Anthropic. Messages API поддерживает богатые возможности, такие как базовый диалог, системные подсказки, потоковые ответы, многораундовые диалоги, глубокое мышление, визуальное понимание, PDF, кэширование подсказок и вызов инструментов. Если у вас возникнут какие-либо вопросы, пожалуйста, свяжитесь с нашей командой технической поддержки в любое время.