provod.ai / docs
API

Использование Anthropic Messages

Настройка совместимых с Anthropic клиентов и Claude Code.

Обновлено

Отправьте прямой Messages-запрос

Для прямого HTTP-запроса используйте полный путь POST https://api.provod.ai/v1/messages, Bearer-авторизацию и заголовок версии Anthropic:

Terminal
export PROVOD_API_KEY="sk_..."

curl --fail-with-body --silent --show-error https://api.provod.ai/v1/messages \
  -H "Authorization: Bearer $PROVOD_API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4-6",
    "max_tokens": 64,
    "messages": [
      { "role": "user", "content": "Reply with ok" }
    ]
  }'

Пример ответа:

Response
{
  "id": "msg_example",
  "type": "message",
  "role": "assistant",
  "model": "claude-sonnet-4-6",
  "content": [
    { "type": "text", "text": "ok" }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 8,
    "output_tokens": 1
  }
}

В таком текстовом запросе ответ находится в content[0].text. Реальный ответ может содержать несколько блоков, в том числе вызовы инструментов, поэтому рабочий клиент должен обрабатывать каждый блок по его type.

Запрос Anthropic Messages использует ключ API provod.ai через совместимый адрес.

Прямой HTTP использует /v1/messages, а Claude Code получает базовый URL без /v1.

Выбирайте Messages по формату клиента

Messages — совместимый с Anthropic формат обмена данными: его поля запроса, блоки содержимого, форма ответа и потоковые события соответствуют этому клиентскому контракту. Потоковая передача означает получение частей ответа до его окончательного завершения. При этом адрес не ограничен моделями Anthropic: он принимает поддерживаемые чат-модели из текущего каталога provod.ai и опубликованные для них псевдонимы.

В текущей документации используются такие пары канонических идентификаторов и псевдонимов:

Канонический идентификатор моделиОпубликованный псевдоним
anthropic/claude-sonnet-4.6claude-sonnet-4-6
openai/gpt-5.4openai-gpt-5-4
deepseek/deepseek-v4-flashdeepseek-deepseek-v4-flash

Актуальный каталог возвращает GET /v1/models. Клиенты с заголовком anthropic-version или идентификатором Claude получают список в форме Anthropic с предпочтительными опубликованными идентификаторами. Не создавайте псевдоним самостоятельно, просто удаляя знаки из произвольного идентификатора модели.

Выбирайте /v1/chat/completions, если клиент ожидает поля и массив choices формата OpenAI Chat Completions. Выбирайте /v1/messages, если ему нужны блоки Anthropic Messages. Адрес определяется протоколом клиента, а не компанией, выпустившей модель.

Безопасно обрабатывайте поток Messages

Задайте stream: true, чтобы получать Anthropic SSE. Успешный текстовый поток следует этой последовательности событий и завершается на message_stop; Messages не отправляет маркер OpenAI [DONE]:

SSE
event: message_start
data: {"type":"message_start","message":{"id":"msg_example","type":"message","role":"assistant","content":[],"model":"claude-sonnet-4-6","stop_reason":null,"stop_sequence":null,"usage":{"input_tokens":8,"output_tokens":0}}}

event: content_block_start
data: {"type":"content_block_start","index":0,"content_block":{"type":"text","text":""}}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"ok"}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn","stop_sequence":null},"usage":{"output_tokens":1}}

event: message_stop
data: {"type":"message_stop"}

Событие ошибки Anthropic может иметь следующую форму. Не полагайтесь на получение такого события: в зависимости от момента сбоя соединение может закрыться до message_stop без завершающего события.

SSE error
event: error
data: {"type":"error","error":{"type":"api_error","message":"Request failed"}}

Считайте event: error или закрытие соединения до message_stop признаком неполного ответа. Ограниченный повтор допустим только до получения первой части содержимого. После события content_block_delta сохраните частичный результат и не повторяйте запрос автоматически: повтор может продублировать работу и расходы.

Подключайте Claude Code к правильной базе

Claude Code сам добавляет /v1/messages, поэтому задайте ANTHROPIC_BASE_URL=https://api.provod.ai без /v1. Установка, ручная настройка, явный выбор модели и проверка описаны в отдельном руководстве Claude Code.

Публичный код ошибки — это предназначенный для клиента код в ответе API. Messages возвращает ошибку в форме Anthropic, поэтому, если отдельного error.code нет, сохраните error.type, HTTP-статус, точный адрес и сообщение.

Решение проблем

На этой странице