TokenLab

Văn bản

Tạo Tin nhắn

Tạo một tin nhắn bằng định dạng Anthropic Messages API

POST
/v1/messages

Tổng quan

Endpoint này cung cấp khả năng tương thích gốc với Anthropic Messages API. Hãy sử dụng endpoint này cho các model Claude với các tính năng như extended thinking.

Endpoint này giữ nguyên hợp đồng native của Anthropic. messages phải là mảng tin nhắn user / assistant, system nằm ở field cấp cao nhất system, và max_tokens là bắt buộc. Nếu payload dùng role kiểu OpenAI như system, developer, hoặc tool bên trong messages, hãy gửi sang /v1/chat/completions.

Base URL cho Anthropic SDK: https://api.tokenlab.sh (không có hậu tố /v1)

Header của Request

x-api-keystringheader

API key TokenLab của bạn. Gửi qua x-api-key hoặc Authorization: Bearer <API_KEY>.

anthropic-versionstringheaderbắt buộc

Phiên bản Anthropic API. Sử dụng 2023-06-01.

Body của Request

Các tham số tùy chọn được hỗ trợ, giá trị hợp lệ và giá trị mặc định phụ thuộc vào mô hình đã chọn. Xem chi tiết mô hình trước khi đặt tùy chọn lấy mẫu, suy luận hoặc công cụ.

modelstringbắt buộc

ID của mô hình hỗ trợ định dạng anthropic_messages. Xem chi tiết mô hình để biết khả năng hiện tại.

messagesarraybắt buộc

Mảng các object tin nhắn với role và content.

max_tokensintegerbắt buộc

Số lượng token tối đa để tạo.

systemstring | array

Lời nhắc hệ thống dạng chuỗi hoặc mảng khối nội dung, tách biệt với mảng messages.

temperaturenumber

Nhiệt độ lấy mẫu. Khả năng hỗ trợ, giá trị hợp lệ và giá trị mặc định phụ thuộc vào mô hình đã chọn. Bỏ qua trường này để dùng mặc định của mô hình.

streambooleanmặc định: false

Bật phản hồi dạng streaming.

thinkingobject

Cấu hình thinking gốc. Các chế độ, ngân sách được hỗ trợ và cách kết hợp với tham số khác phụ thuộc vào mô hình đã chọn.

toolsarray

Các công cụ khả dụng cho model.

tool_choiceobject

Đối tượng chọn công cụ gốc, chẳng hạn {"type":"auto"}. Các loại được hỗ trợ phụ thuộc vào mô hình đã chọn.

top_pnumber

Tham số nucleus sampling. Chỉ dùng temperature hoặc top_p, không dùng cả hai.

top_kinteger

Chỉ lấy mẫu từ K lựa chọn hàng đầu cho mỗi token.

stop_sequencesarray

Các chuỗi dừng tùy chỉnh sẽ khiến model ngừng tạo.

metadataobject

Metadata được đính kèm vào request nhằm mục đích theo dõi.

Phản hồi

idstring

Định danh duy nhất của tin nhắn.

typestring

Luôn là message.

rolestring

Luôn là assistant.

contentarray

Mảng khối nội dung, chẳng hạn text, thinking hoặc tool_use.

modelstring

Model được sử dụng.

stop_reasonstring

Lý do dừng tạo nội dung, chẳng hạn end_turn, max_tokens, stop_sequence hoặc tool_use.

usageobject

Mức sử dụng token với input_tokens và output_tokens.

Yêu cầu

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!"}
    ]
  }'

Phản hồi

Response
{
  "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
  }
}

Ví dụ đầu vào thị giác

Với các mô hình Claude có hỗ trợ thị giác, hãy đặt hình ảnh bên trong messages[].content dưới dạng các khối ảnh có cấu trúc.

{
  "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..."
          }
        }
      ]
    }
  ]
}

Ví dụ về Extended Thinking

Đặt TOKENLAB_THINKING_MODEL thành mô hình hỗ trợ thinking thủ công với type: "enabled" và budget_tokens. Điều chỉnh cả hai ngân sách token theo giới hạn của mô hình đó. Mô hình khác có thể cần cấu hình thinking khác.

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}")

Các lô tin nhắn Anthropic

TokenLab hiện cũng cung cấp luồng Anthropic Message Batches gốc bên cạnh /v1/messages.

Các route khả dụng:

  • POST /v1/messages/batches
  • GET /v1/messages/batches
  • GET /v1/messages/batches/:message_batch_id
  • GET /v1/messages/batches/:message_batch_id/results
  • POST /v1/messages/batches/:message_batch_id/cancel
  • DELETE /v1/messages/batches/:message_batch_id

Ghi chú vận hành:

  • Sử dụng cùng một TokenLab API key với các header Anthropic gốc.
  • Nếu batch item tham chiếu file_id, hãy thêm cả anthropic-beta: files-api-2025-04-14.
  • Batch job vẫn giữ nguyên hình dạng request/response gốc của Anthropic, trong khi TokenLab theo dõi vòng đời quyết toán nội bộ của chúng.

Xác thực

BearerAuth
AuthorizationBearer <token>

Xác thực bằng Khóa API. Tạo hoặc quản lý khóa API trong Dashboard > API > API Keys.

Vị trí: header

Header

X-TokenLab-Delivery-Policy?string

Chính sách phân phối theo yêu cầu. Ghi đè các mặc định của API key và Workspace. Tự động thử TokenLab Verified trước và có thể chuyển đổi một lần sang Official chỉ trước khi xuất, chấp nhận yêu cầu hoặc tạo tài nguyên cố định.

Giá trị hợp lệ

  • "auto"
  • "verified"
  • "official"

Nội dung yêu cầu

application/json

Phản hồi

application/json

application/json

application/json

application/json

application/json

application/json