Anthropic Messages
Định dạng nhắn tin bản địa (native) của Anthropic dành cho các mô hình Claude. Bạn cũng có thể gọi các mô hình Claude qua endpoint Chat Completions theo định dạng OpenAI.
RequestREQUEST
POST
https://test.kailin.com.cn/v1/messagesResponseRESPONSE
Fill in the request and hit Send — the response shows up here
Yêu cầu
curl https://test.kailin.com.cn/v1/messages \
-H "Content-Type: application/json" \
-H "x-api-key: sk-your-token" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [
{ "role": "user", "content": "Hello, introduce yourself" }
]
}'
Ghi chú
Cả hai header x-api-key: sk-xxx và Authorization: Bearer sk-xxx đều dùng được. Header anthropic-version là tùy chọn.
Thân yêu cầu
| Tham số | Kiểu | Bắt buộc | Mô tả |
|---|---|---|---|
model | string | Có | Tên mô hình Claude |
max_tokens | number | Có | Số token tối đa được sinh ra (bắt buộc trong định dạng Anthropic) |
messages | array | Có | Mảng tin nhắn; role chỉ là user / assistant |
system | string / array | Không | System prompt, được truyền tách riêng khỏi các tin nhắn |
stream | boolean | Không | Xuất dữ liệu dạng stream (SSE, các loại sự kiện ở dưới) |
temperature | number | Không | 0–1, mặc định 1 |
top_p / top_k | number | Không | Các tham số lấy mẫu |
stop_sequences | array | Không | Chuỗi dừng |
tools | array | Không | Định nghĩa tool (name / description / input_schema) |
tool_choice | object | Không | {"type": "auto"} / {"type": "any"} / {"type": "tool", "name": "..."} |
Ví dụ với system prompt và hình ảnh:
{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"system": "You are a rigorous technical writer.",
"messages": [
{
"role": "user",
"content": [
{ "type": "image", "source": { "type": "base64", "media_type": "image/jpeg", "data": "<base64>" } },
{ "type": "text", "text": "Describe this architecture diagram" }
]
}
]
}
Phản hồi (không stream)
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"model": "claude-sonnet-4-6",
"content": [
{ "type": "text", "text": "Hello! I'm Claude…" }
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 18,
"output_tokens": 45
}
}
| Trường | Mô tả |
|---|---|
content[] | Các khối nội dung — type có thể là text / tool_use / thinking |
stop_reason | end_turn / max_tokens / stop_sequence / tool_use |
usage.input_tokens / output_tokens | Lượng token sử dụng |
Các sự kiện stream
Khi đặt "stream": true, phản hồi là SSE với các loại event: riêng biệt:
event: message_start
data: {"type":"message_start","message":{...}}
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":"Hello"}}
event: content_block_stop
data: {"type":"content_block_stop","index":0}
event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},"usage":{"output_tokens":45}}
event: message_stop
data: {"type":"message_stop"}
| Sự kiện | Mô tả |
|---|---|
message_start | Tin nhắn bắt đầu, kèm usage ban đầu |
content_block_start / _delta / _stop | Khối nội dung bắt đầu / delta / kết thúc — nội dung tăng dần nằm trong delta.text |
message_delta | Cập nhật trạng thái cấp cao nhất (stop_reason, usage cuối cùng) |
message_stop | Tin nhắn kết thúc |
ping | Nhịp giữ kết nối (keep-alive) |
error | Lỗi xảy ra trong luồng |
Sử dụng Anthropic SDK
from anthropic import Anthropic
client = Anthropic(
api_key="sk-your-token",
base_url="https://test.kailin.com.cn",
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)
print(message.content[0].text)
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic({
apiKey: 'sk-your-token',
baseURL: 'https://test.kailin.com.cn',
});
const message = await client.messages.create({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello' }],
});
console.log(message.content[0].text);
Mẹo
Với SDK, hãy đặt base_url là địa chỉ gốc (không có /v1) — SDK sẽ tự động thêm /v1/messages.