Справочник по Claude API
Сообщения
Создание сообщения
Отправьте структурированный список входных сообщений с текстовым и/или графическим контентом, и модель сгенерирует следующее сообщение в разговоре.
API Сообщений может быть использован как для одиночных запросов, так и для многократных бесед без сохранения состояния.
Пример запроса
curl https://api.rockapi.ru/anthropic/v1/messages \
--header "x-api-key: $ROCKAPI_API_KEY" \
--header "anthropic-version: 2023-06-01" \
--header "content-type: application/json" \
--data \
'{
"model": "claude-3-5-sonnet-20240620",
"max_tokens": 1024,
"messages": [
{"role": "user", "content": "Hello, world"}
]
}'
Пример ответа
{
"content": [
{
"text": "Hi! My name is Claude.",
"type": "text"
}
],
"id": "msg_013Zva2CMHLNnXjNJJKqJ2EF",
"model": "claude-3-5-sonnet-20240620",
"role": "assistant",
"stop_reason": "end_turn",
"stop_sequence": null,
"type": "message",
"usage": {
"input_tokens": 10,
"output_tokens": 25
}
}
Параметры
model (string, обязательно)
Модель, которая завершит ваш запрос.
messages (object[], обязательно)
Входные сообщения.
Наши модели обучены работать с чередованием пользовательских и ассистентских диалогов. При создании нового сообщения вы указываете предыдущие диалоги с параметром messages
, и модель затем генерирует следующее сообщение в разговоре.
Каждое входное сообщение должно быть объектом с ролью и контентом. Вы можете указать одно сообщение с ролью пользователя или включить несколько сообщений от пользователя и ассистента. Первое сообщение всегда должно быть с ролью user
.
Если последнее сообщение имеет роль assistant
, ответ продолжит контент этого сообщения. Это можно использовать для ограничения части ответа модели.
Пример с одним сообщением пользователя:
[{"role": "user", "content": "Hello, Claude"}]
Пример с несколькими диалогами:
[
{"role": "user", "content": "Hello there."},
{"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"},
{"role": "user", "content": "Can you explain LLMs in plain English?"}
]
Пример с частично заполненным ответом от Claude:
[
{"role": "user", "content": "What's the Greek name for Sun? (A) Sol (B) Helios (C) Sun"},
{"role": "assistant", "content": "The best answer is ("}
]
Каждое содержимое входного сообщения может быть либо строкой, либо массивом блоков контента, где каждый блок имеет определенный тип. Использование строки для содержимого является сокращением для массива из одного блока контента типа text
. Следующие входные сообщения эквивалентны:
{"role": "user", "content": "Hello, Claude"}
{"role": "user", "content": [{"type": "text", "text": "Hello, Claude"}]}
Начиная с моделей Claude 3, вы также можете отправлять блоки контента изображения:
{"role": "user", "content": [
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "/9j/4AAQSkZJRg..."
}
},
{"type": "text", "text": "What is in this image?"}
]}
В настоящее время мы поддерживаем тип источника base64
для изображений и типы медиа image/jpeg
, image/png
, image/gif
и image/webp
.
Обратите внимание, что если вы хотите включить системный запрос, вы можете использовать параметр верхнего уровня system — нет роли "system" для входных сообщений в API Сообщений.
messages.role (enum<string>, обязательно)
Доступные варианты: user, assistant