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

Процесс заявки

Чтобы использовать Claude Messages API, сначала перейдите на страницу Claude Messages API и нажмите кнопку «Acquire», чтобы получить необходимые для запроса учетные данные: Если вы еще не вошли в систему или не зарегистрированы, вы будете автоматически перенаправлены на страницу входа, где вас пригласят зарегистрироваться и войти в систему. После входа в систему или регистрации вы будете автоматически возвращены на текущую страницу. При первой заявке будет предоставлен бесплатный лимит, который позволяет бесплатно использовать этот API.

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

Запрос к Claude Messages API осуществляется по пути /v1/messages, что соответствует официальному API Anthropic. Мы должны предоставить как минимум три обязательных параметра:
  • model: выберите используемую модель Claude, например, claude-opus-4-20250514, claude-sonnet-4-20250514 и т.д.
  • messages: массив входящих сообщений, каждое сообщение содержит role (роль) и content (содержимое), где role поддерживает user и assistant.
  • max_tokens: максимальное количество токенов на выходе, используемое для ограничения длины одного ответа.
Распространенные необязательные параметры:
  • system: системная подсказка, используемая для установки поведения и роли модели.
  • temperature: случайность генерации, от 0 до 1, чем больше значение, тем более разрозненные ответы.
  • stream: использовать ли потоковый ответ, установите true, чтобы получить эффект поэлементного возврата.
  • stop_sequences: пользовательские последовательности остановки, при встрече с которыми модель остановит генерацию.
  • top_p: параметр ядерной выборки, который в сочетании с temperature контролирует случайность генерации.
  • top_k: выборка только из K наиболее вероятных вариантов.
  • tools: определение инструментов, позволяющее модели вызывать внешние функции.
  • tool_choice: управление тем, как модель использует предоставленные инструменты.

Пример cURL

Пример на Python

После вызова возвращается следующий результат:
Описание полей возвращаемого результата:
  • id: уникальный идентификатор данного сообщения.
  • type: всегда message.
  • role: всегда assistant.
  • content: массив ответного содержимого, каждый элемент содержит type (например, text) и соответствующее содержимое.
  • model: название модели, обрабатывающей запрос.
  • stop_reason: причина остановки, возможные значения включают end_turn (нормальное завершение), max_tokens (достигнута максимальная длина), stop_sequence (встретилась последовательность остановки), tool_use (вызов инструмента).
  • stop_sequence: если остановка произошла из-за пользовательской последовательности остановки, отображается текст совпадающей последовательности остановки.
  • usage: статистика использования токенов, включает input_tokens (количество входных токенов) и output_tokens (количество выходных токенов).

Системные подсказки

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.
  • message_stop: конец сообщения.
Вывод будет выглядеть следующим образом:
Можно увидеть, что в потоковом ответе событие content_block_delta содержит поэтапно сгенерированный текст, который можно получить, объединив все text_delta.

Пример на JavaScript

Многоходовые диалоги

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

Пример на Python

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

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

Клод поддерживает функцию Расширенного Мышления, которая позволяет модели сначала проводить внутренние рассуждения перед ответом, повышая точность обработки сложных вопросов. Для использования этой функции необходимо передать параметр thinking.

Пример на Python

Возвращаемый результат будет следующим:
Можно увидеть, что массив content содержит два блока содержимого:
  • type: "thinking": внутренний процесс размышления модели, демонстрирующий шаги рассуждения.
  • type: "text": окончательный ответ.
Обратите внимание на следующие моменты:
  • При использовании thinking max_tokens должен быть больше budget_tokens, так как budget_tokens — это бюджет токенов, выделенный для процесса размышления.
  • Чем больше budget_tokens, тем больше пространство для более глубоких рассуждений модели, что подходит для обработки сложных вопросов.

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

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

Использование изображений в формате Base64

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

cURL 示例

Поддерживаемые форматы изображений включают: image/jpeg, image/png, image/gif, image/webp. Пример возвращаемого результата:

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

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

Пример на Python

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

Различия с API завершения чата

Ace Data Cloud одновременно предоставляет два формата API Claude, основные различия между которыми следующие: Если ваша система уже интегрирована с API формата OpenAI, вы можете использовать API завершения чата для бесшовного переключения. Если вам нужно использовать все оригинальные возможности Claude, рекомендуется использовать Messages API.

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

При вызове API, если возникает ошибка, API возвращает соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недопустимых параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недопустимых параметров.
  • 401 invalid_token: Неавторизовано, недопустимый или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

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

Заключение

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