Chuyển đến nội dung chính

Anthropic Messages

POST /v1/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
POSThttps://test.kailin.com.cn/v1/messages
ResponseRESPONSE
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ểuBắt buộcMô tả
modelstringCóTên mô hình Claude
max_tokensnumberCóSố token tối đa được sinh ra (bắt buộc trong định dạng Anthropic)
messagesarrayCóMảng tin nhắn; role chỉ là user / assistant
systemstring / arrayKhôngSystem prompt, được truyền tách riêng khỏi các tin nhắn
streambooleanKhôngXuất dữ liệu dạng stream (SSE, các loại sự kiện ở dưới)
temperaturenumberKhông0–1, mặc định 1
top_p / top_knumberKhôngCác tham số lấy mẫu
stop_sequencesarrayKhôngChuỗi dừng
toolsarrayKhôngĐịnh nghĩa tool (name / description / input_schema)
tool_choiceobjectKhô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ườngMô tả
content[]Các khối nội dung — type có thể là text / tool_use / thinking
stop_reasonend_turn / max_tokens / stop_sequence / tool_use
usage.input_tokens / output_tokensLượ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ệnMô tả
message_startTin nhắn bắt đầu, kèm usage ban đầu
content_block_start / _delta / _stopKhố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_deltaCập nhật trạng thái cấp cao nhất (stop_reason, usage cuối cùng)
message_stopTin nhắn kết thúc
pingNhịp giữ kết nối (keep-alive)
errorLỗ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.