AI API

Ответ модели в формате Anthropic

POST/v1/messages

Совместим с Anthropic Messages API: штатный пакет anthropic работает, если указать base_url="https://llm.vcpay.ru" — без /v1, путь /v1/messages пакет добавляет сам. Claude Code подключается переменными ANTHROPIC_BASE_URL=https://llm.vcpay.ru и ANTHROPIC_AUTH_TOKEN.

С "stream": true ответ приходит событиями SSE.

Здесь перечислены поля, работу которых мы проверяем. Остальные поля формата Anthropic модель может принять, но их поведение не входит в наш контракт.

Headers

anthropic-version
string
*
Версия формата Anthropic. Пакет anthropic ставит её сам.
Пример:2023-06-01

Тело запроса

application/json
model
string
*
Имя модели из каталога, например claude-sonnet-5.
Пример:claude-sonnet-5
max_tokens
integer
*
Потолок токенов ответа. В формате Anthropic обязателен.
Диапазон:
>= 1
system
string
Инструкция модели.
messages[]
array of objects
*
Диалог по порядку, от первой реплики к последней.
role
string
*
Кто говорит.
Возможные значения
content
string
*
Текст реплики.
stream
boolean
Отдавать ответ событиями SSE.
По умолчанию:
false

Ответ

200OK
Ответ модели. При "stream": true — поток событий text/event-stream.
id
string
*
Идентификатор ответа.
type
string
*
Всегда message.
role
string
*
Всегда assistant.
model
string
*
Модель, которая ответила.
content[]
array of objects
*
Части ответа.
type
string
*
Вид части. Текст — text.
text
string
*
Текст ответа.
stop_reason
string
*
Почему ответ закончился. end_turn — модель договорила, max_tokens — упёрлись в потолок.
usage
object
*
Токены запроса. По ним считается расход.
input_tokens
integer
*
Токенов на входе.
output_tokens
integer
*
Токенов на выходе, включая размышления модели.
Ответ модели в формате Anthropic
curl "https://llm.vcpay.ru/v1/messages" \  -H "Authorization: Bearer ВАШ_КЛЮЧ" \  -H "Content-Type: application/json" \  -d '{  "model": "claude-sonnet-5",  "max_tokens": 256,  "messages": [    {      "role": "user",      "content": "Привет"    }  ]}'
Ответ 200
{  "id": "msg_01ABCDEF",  "type": "message",  "role": "assistant",  "model": "claude-sonnet-5",  "content": [    {      "type": "text",      "text": "Привет! Чем помочь?"    }  ],  "stop_reason": "end_turn",  "usage": {    "input_tokens": 9,    "output_tokens": 8  }}