Skip to content

Claude Messages API

Нативный Anthropic Messages API. Этот эндпоинт предназначен для инструментов, которые работают с Anthropic API напрямую — в первую очередь для Claude Code.

Для Claude Code

Эндпоинт /v1/messages предназначен для работы с Claude Code и другими инструментами, использующими нативный Anthropic SDK. Для обычных API-запросов рекомендуется использовать /v1/chat/completions — он поддерживает все модели, включая Claude, и работает с OpenAI SDK.

Эндпоинт реализует Anthropic Messages API и поддерживает все его возможности: потоковую передачу, расширенное мышление (Extended Thinking) и подсчёт токенов.

Быстрый старт с Claude Code

Подробная инструкция по настройке Claude Code с AITUNNEL — в разделе Интеграция Claude Code.

Кратко: установите переменные окружения:

bash
export ANTHROPIC_BASE_URL="https://api.aitunnel.ru"
export ANTHROPIC_AUTH_TOKEN="sk-aitunnel-xxx"
export ANTHROPIC_API_KEY=""

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

python
import anthropic

client = anthropic.Anthropic(
    api_key="sk-aitunnel-xxx",
    base_url="https://api.aitunnel.ru",
)

message = client.messages.create(
    model="claude-sonnet-4.5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "Привет! Расскажи о себе."}
    ]
)

print(message.content[0].text)
typescript
import Anthropic from "@anthropic-ai/sdk";

const client = new Anthropic({
  apiKey: "sk-aitunnel-xxx",
  baseURL: "https://api.aitunnel.ru",
});

const message = await client.messages.create({
  model: "claude-sonnet-4.5",
  max_tokens: 1024,
  messages: [
    { role: "user", content: "Привет! Расскажи о себе." }
  ],
});

console.log(message.content[0].text);
shell
curl https://api.aitunnel.ru/v1/messages \
  -H "Authorization: Bearer sk-aitunnel-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4.5",
    "max_tokens": 1024,
    "messages": [
      {"role": "user", "content": "Привет! Расскажи о себе."}
    ]
  }'

Стриминг

python
with client.messages.stream(
    model="claude-sonnet-4.5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Напиши стихотворение о Москве"}],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)
typescript
const stream = client.messages.stream({
  model: "claude-sonnet-4.5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Напиши стихотворение о Москве" }],
});

for await (const event of stream) {
  if (event.type === "content_block_delta" && event.delta.type === "text_delta") {
    process.stdout.write(event.delta.text);
  }
}

Extended Thinking

Расширенное мышление позволяет модели «думать» перед ответом — это улучшает качество сложных задач:

python
message = client.messages.create(
    model="claude-sonnet-4.5",
    max_tokens=16384,
    thinking={
        "type": "enabled",
        "budget_tokens": 10000
    },
    messages=[
        {"role": "user", "content": "Решите задачу: найдите все простые числа до 100"}
    ]
)

for block in message.content:
    if block.type == "thinking":
        print(f"Размышления: {block.thinking[:200]}...")
    elif block.type == "text":
        print(f"Ответ: {block.text}")

Требования Extended Thinking

  • budget_tokens должен быть не менее 1024
  • max_tokens должен быть больше budget_tokens

Подсчёт токенов

Эндпоинт POST /v1/messages/count_tokens позволяет оценить количество токенов в запросе без его выполнения:

shell
curl https://api.aitunnel.ru/v1/messages/count_tokens \
  -H "Authorization: Bearer sk-aitunnel-xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-sonnet-4.5",
    "messages": [
      {"role": "user", "content": "Привет, мир!"}
    ]
  }'

Ответ:

json
{
  "input_tokens": 12
}

Нормализация имён моделей

AITUNNEL автоматически нормализует имена моделей Claude:

Входящее имяНормализуется в
claude-3-5-sonnet-20250514claude-3.5-sonnet
claude-sonnet-4-5claude-sonnet-4.5
claude-sonnet-4.5claude-sonnet-4.5 (без изменений)

Это означает, что вы можете использовать любой формат имени модели — AITUNNEL подберёт правильную модель.

Лучшие практики

  1. Для Claude Code: Используйте этот эндпоинт для Claude Code и инструментов на Anthropic SDK
  2. Для нового кода: Используйте /v1/chat/completions — он поддерживает все модели и работает с OpenAI SDK
  3. Extended Thinking: Для сложных задач включайте thinking с budget_tokens от 5000
  4. max_tokens: Всегда указывайте — это обязательный параметр для Messages API

AITUNNEL