Anthropic Messages
Claude モデル向けの Anthropic ネイティブメッセージ形式です。Claude モデルは、OpenAI 形式の チャット補完 エンドポイントからも呼び出せます。
RequestREQUEST
POST
https://test.kailin.com.cn/v1/messagesResponseRESPONSE
Fill in the request and hit Send — the response shows up here
リクエスト
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" }
]
}'
備考
x-api-key: sk-xxx と Authorization: Bearer sk-xxx のどちらのヘッダーでも認証できます。anthropic-version ヘッダーは任意です。
リクエストボディ
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | Claude モデル名 |
max_tokens | number | はい | 生成する最大トークン数(Anthropic 形式では必須) |
messages | array | はい | メッセージ配列。role は user / assistant のみ |
system | string / array | いいえ | システムプロンプト。messages とは別に渡します |
stream | boolean | いいえ | ストリーム出力(SSE、イベントタイプは下記) |
temperature | number | いいえ | 0–1、デフォルトは 1 |
top_p / top_k | number | いいえ | サンプリングパラメーター |
stop_sequences | array | いいえ | 終了シーケンス |
tools | array | いいえ | ツール定義(name / description / input_schema) |
tool_choice | object | いいえ | {"type": "auto"} / {"type": "any"} / {"type": "tool", "name": "..."} |
システムプロンプトと画像を含む例:
{
"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" }
]
}
]
}
レスポンス(非ストリーミング)
{
"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
}
}
| フィールド | 説明 |
|---|---|
content[] | コンテンツブロック — type は text / tool_use / thinking |
stop_reason | end_turn / max_tokens / stop_sequence / tool_use |
usage.input_tokens / output_tokens | トークン使用量 |
ストリーミングイベント
"stream": true を指定すると、レスポンスは個別の event: タイプを持つ SSE になります:
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"}
| イベント | 説明 |
|---|---|
message_start | メッセージの開始、初期 usage を含む |
content_block_start / _delta / _stop | コンテンツブロックの開始 / 差分 / 終了 — 差分は delta.text に届く |
message_delta | 最上位のステータス更新(stop_reason、最終 usage) |
message_stop | メッセージの終了 |
ping | キープアライブのハートビート |
error | ストリーム内のエラー |
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);
ヒント
SDK では base_url をルートアドレス(/v1 なし)に設定してください — SDK が自動的に /v1/messages を付け足します。