Teks

Buat Message

Membuat sebuah message menggunakan format Anthropic Messages API

POST
/v1/messages

Ringkasan

Endpoint ini menyediakan kompatibilitas native dengan Anthropic Messages API. Gunakan ini untuk model Claude dengan fitur seperti extended thinking.

Endpoint ini tetap mengikuti kontrak native Anthropic. messages harus berupa array pesan user / assistant, system berada pada field top-level system, dan max_tokens wajib dikirim. Jika payload menggunakan role OpenAI seperti system, developer, atau tool di dalam messages, kirim ke /v1/chat/completions.

Base URL untuk Anthropic SDK: https://api.tokenlab.sh (tanpa sufiks /v1)

Header Permintaan

x-api-keystringheader

API key TokenLab Anda. Kirim melalui x-api-key atau Authorization: Bearer <API_KEY>.

anthropic-versionstringheaderwajib

Versi Anthropic API. Gunakan 2023-06-01.

Body Permintaan

Parameter opsional yang didukung, nilai yang diizinkan, dan nilai default bergantung pada model yang dipilih. Periksa detail model sebelum menetapkan opsi sampling, penalaran, atau alat.

modelstringwajib

ID model yang mendukung format anthropic_messages. Periksa detail model untuk kemampuan saat ini.

messagesarraywajib

Array objek message dengan role dan content.

max_tokensintegerwajib

Jumlah token maksimum yang akan dihasilkan.

systemstring | array

Prompt sistem berupa string atau array blok konten, terpisah dari array messages.

temperaturenumber

Temperatur sampling. Dukungan, nilai yang diizinkan, dan nilai default bergantung pada model yang dipilih. Hilangkan kolom ini untuk menggunakan default model.

streambooleanbawaan: false

Aktifkan respons streaming.

thinkingobject

Konfigurasi thinking native. Mode, anggaran, dan kombinasi dengan parameter lain yang didukung bergantung pada model yang dipilih.

toolsarray

Tools yang tersedia untuk model.

tool_choiceobject

Objek pilihan alat native, misalnya {"type":"auto"}. Jenis yang didukung bergantung pada model yang dipilih.

top_pnumber

Parameter nucleus sampling. Gunakan temperature atau top_p, bukan keduanya.

top_kinteger

Hanya ambil sampel dari K opsi teratas untuk setiap token.

stop_sequencesarray

Urutan stop kustom yang akan menyebabkan model berhenti menghasilkan.

metadataobject

Metadata yang dilampirkan ke permintaan untuk tujuan pelacakan.

Respons

idstring

Pengidentifikasi message yang unik.

typestring

Selalu message.

rolestring

Selalu assistant.

contentarray

Array blok konten, seperti text, thinking, atau tool_use.

modelstring

Model yang digunakan.

stop_reasonstring

Alasan pembuatan konten berhenti, seperti end_turn, max_tokens, stop_sequence, atau tool_use.

usageobject

Penggunaan token dengan input_tokens dan output_tokens.

Permintaan

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

Respons

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

Contoh Input Visual

Untuk model Claude dengan dukungan visi, letakkan gambar di dalam messages[].content sebagai blok gambar terstruktur.

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

Contoh Extended Thinking

Atur TOKENLAB_THINKING_MODEL ke model yang mendukung thinking manual dengan type: "enabled" dan budget_tokens. Sesuaikan kedua anggaran token dengan batas model tersebut. Model lain mungkin memerlukan konfigurasi thinking yang berbeda.

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 Batch Pesan

TokenLab kini juga menyediakan alur native Anthropic Message Batches di samping /v1/messages.

Rute yang tersedia:

  • 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

Catatan operasional:

  • Gunakan API key TokenLab yang sama bersama header native Anthropic.
  • Jika item batch mereferensikan file_id, sertakan juga anthropic-beta: files-api-2025-04-14.
  • Batch job mempertahankan bentuk request/response native Anthropic, sementara TokenLab melacak status billing untuk rekonsiliasi.

Otorisasi

BearerAuth
AuthorizationBearer <token>

Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.

Lokasi: header

Header

X-TokenLab-Delivery-Policy?string

Kebijakan Pengiriman per-permintaan. Menggantikan default API key dan Workspace. Secara otomatis mencoba TokenLab Verified terlebih dahulu dan dapat beralih satu kali ke Official saja sebelum output, penerimaan permintaan, atau pembuatan sumber daya persisten.

Nilai yang tersedia

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

Body permintaan

application/json

Respons

application/json

application/json

application/json

application/json

application/json

application/json