テキスト
メッセージを作成
Anthropic Messages API 形式を使用してメッセージを作成します
概要
このエンドポイントは、Anthropic Messages API とのネイティブ互換性を提供します。extended thinking などの機能を備えた Claude モデルにはこれを使用してください。
このエンドポイントは Anthropic のネイティブ契約を維持します。messages は user / assistant メッセージの配列である必要があり、system はトップレベルの system フィールドに置き、max_tokens は必須です。messages 内で OpenAI の system、developer、tool などの role を使う payload は /v1/chat/completions に送ってください。
Anthropic SDK の Base URL: https://api.tokenlab.sh(/v1 サフィックスなし)
リクエストヘッダー
TokenLab API キー。x-api-key または Authorization: Bearer <API_KEY> のいずれかで送信してください。
Anthropic API version。2023-06-01 を使用してください。
リクエストボディ
任意パラメーターの対応状況、指定可能な値、既定値は選択したモデルによって異なります。サンプリング、推論、ツールのオプションを設定する前にモデルの詳細を確認してください。
anthropic_messages 形式に対応するモデルの ID。現在の機能はモデルの詳細で確認してください。
role と content を持つ message object の配列。
生成する最大 token 数。
文字列またはコンテンツブロックの配列で指定するシステムプロンプト。messages 配列とは別に指定します。
サンプリング温度。対応状況、指定可能な値、既定値は選択したモデルによって異なります。省略するとモデルの既定値を使用します。
falseストリーミングレスポンスを有効にします。
ネイティブの thinking 設定。対応するモード、予算、他のパラメーターとの組み合わせは選択したモデルによって異なります。
モデルで利用可能なツール。
{"type":"auto"} などのネイティブなツール選択オブジェクト。対応する種類は選択したモデルによって異なります。
Nucleus sampling パラメータ。temperature または top_p のいずれか一方のみを使用し、両方は使用しないでください。
各 token について上位 K 個の選択肢からのみサンプリングします。
モデルの生成を停止させるカスタム stop sequence。
トラッキング目的でリクエストに付加する metadata。
レスポンス
一意のメッセージ識別子。
常に message。
常に assistant。
text、thinking、tool_use などのコンテンツブロックの配列。
使用されたモデル。
生成が停止した理由。例:end_turn、max_tokens、stop_sequence、tool_use。
input_tokens と output_tokens を含む token 使用量。
リクエスト
curl -X POST "https://api.tokenlab.sh/v1/messages" \
-H "x-api-key: sk-your-api-key" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "Hello, Claude!"}
]
}'レスポンス
{
"id": "msg_abc123",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "Hello! How can I help you today?"
}
],
"model": "claude-sonnet-5",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 15,
"output_tokens": 10
}
}ビジョン入力の例
画像対応の Claude モデルでは、画像を messages[].content 内に構造化された画像ブロックとして配置してください。
{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Please describe this image."
},
{
"type": "image",
"source": {
"type": "url",
"url": "https://example.com/demo.jpg"
}
}
]
}
]
}{
"model": "claude-sonnet-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": [
{
"type": "text",
"text": "Please describe this image."
},
{
"type": "image",
"source": {
"type": "base64",
"media_type": "image/jpeg",
"data": "/9j/4AAQSkZJRgABAQ..."
}
}
]
}
]
}Extended Thinking の例
TOKENLAB_THINKING_MODEL に、type: "enabled" と budget_tokens による手動の思考設定に対応するモデルを指定してください。両方のトークン予算をモデルの制限に合わせて調整します。他のモデルでは異なる thinking 設定が必要な場合があります。
import os
from anthropic import Anthropic
client = Anthropic(
api_key="sk-your-api-key",
base_url="https://api.tokenlab.sh"
)
message = client.messages.create(
model=os.environ["TOKENLAB_THINKING_MODEL"],
max_tokens=16000,
thinking={
"type": "enabled",
"budget_tokens": 10000
},
messages=[{"role": "user", "content": "Solve this math problem..."}]
)
for block in message.content:
if block.type == "thinking":
print(f"Thinking: {block.thinking}")
elif block.type == "text":
print(f"Response: {block.text}")Anthropic メッセージバッチ
TokenLab では /v1/messages に加えて、Anthropic Message Batches のネイティブフローも提供しています。
利用できるルート:
POST /v1/messages/batchesGET /v1/messages/batchesGET /v1/messages/batches/:message_batch_idGET /v1/messages/batches/:message_batch_id/resultsPOST /v1/messages/batches/:message_batch_id/cancelDELETE /v1/messages/batches/:message_batch_id
運用メモ:
- 同じ TokenLab API key と Anthropic ネイティブヘッダーを使用してください。
- batch item が
file_idを参照する場合は、anthropic-beta: files-api-2025-04-14も付けてください。 - Batch job は Anthropic ネイティブのリクエスト/レスポンス形式を維持しつつ、TokenLab 側で内部の精算ライフサイクルを追跡します。
認証
BearerAuth APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。
場所: header
ヘッダー
リクエストごとの配信ポリシー。APIキーおよびWorkspaceのデフォルト設定を上書きします。自動的にまず TokenLab Verified を試行し、出力、リクエストの受け入れ、または永続的なリソース作成の前に、一度だけ Official に切り替える場合があります。
指定できる値
- "auto"
- "verified"
- "official"
リクエストボディ
application/json
レスポンス
application/json
application/json
application/json
application/json
application/json
application/json