TokenLab

텍스트

메시지 생성

Anthropic Messages API 형식을 사용하여 메시지를 생성합니다

POST
/v1/messages

개요

이 엔드포인트는 Anthropic Messages API와의 네이티브 호환성을 제공합니다. extended thinking과 같은 기능이 있는 Claude 모델에 이것을 사용하세요.

이 엔드포인트는 Anthropic 네이티브 계약을 유지합니다. messages는 user / assistant 메시지 배열이어야 하며, system은 최상위 system 필드에 두어야 하고 max_tokens는 필수입니다. payload가 messages 안에서 OpenAI 역할인 system, developer, tool을 사용한다면 /v1/chat/completions로 보내세요.

Anthropic SDK의 Base URL: https://api.tokenlab.sh (/v1 접미사 없음)

요청 헤더

x-api-keystringheader

TokenLab API 키입니다. x-api-key 또는 Authorization: Bearer <API_KEY> 중 하나로 전송하세요.

anthropic-versionstringheader필수

Anthropic API 버전입니다. 2023-06-01을 사용하세요.

요청 본문

선택 매개변수의 지원 여부, 허용 값, 기본값은 선택한 모델에 따라 다릅니다. 샘플링, 추론 또는 도구 옵션을 설정하기 전에 모델 상세 정보를 확인하세요.

modelstring필수

anthropic_messages 형식을 지원하는 모델 ID입니다. 현재 기능은 모델 상세 정보에서 확인하세요.

messagesarray필수

role 및 content를 포함하는 메시지 객체의 배열입니다.

max_tokensinteger필수

생성할 최대 token 수입니다.

systemstring | array

문자열 또는 콘텐츠 블록 배열로 지정하는 시스템 프롬프트입니다. messages 배열과 별도로 지정합니다.

temperaturenumber

샘플링 온도입니다. 지원 여부, 허용 값, 기본값은 선택한 모델에 따라 다릅니다. 이 필드를 생략하면 모델 기본값을 사용합니다.

streamboolean기본값: false

스트리밍 응답을 활성화합니다.

thinkingobject

네이티브 thinking 설정입니다. 지원하는 모드, 예산, 다른 매개변수와의 조합은 선택한 모델에 따라 다릅니다.

toolsarray

모델에서 사용할 수 있는 도구입니다.

tool_choiceobject

{"type":"auto"}와 같은 네이티브 도구 선택 객체입니다. 지원하는 유형은 선택한 모델에 따라 다릅니다.

top_pnumber

Nucleus sampling 파라미터입니다. temperature 또는 top_p 중 하나만 사용하고, 둘 다 사용하지 마세요.

top_kinteger

각 token에 대해 상위 K개 옵션에서만 샘플링합니다.

stop_sequencesarray

모델이 생성을 중지하게 하는 사용자 지정 stop sequence입니다.

metadataobject

추적 목적으로 요청에 첨부할 metadata입니다.

응답

idstring

고유한 메시지 식별자입니다.

typestring

항상 message입니다.

rolestring

항상 assistant입니다.

contentarray

text, thinking, tool_use 등의 콘텐츠 블록 배열입니다.

modelstring

사용된 모델입니다.

stop_reasonstring

생성이 중지된 이유입니다. 예: end_turn, max_tokens, stop_sequence, tool_use.

usageobject

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

응답

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

비전 입력 예시

비전 지원이 있는 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 설정을 지원하는 모델로 설정하세요. 두 토큰 예산을 해당 모델의 제한에 맞게 조정하세요. 다른 모델에는 다른 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/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

운영 메모:

  • 동일한 TokenLab API key 와 Anthropic 네이티브 헤더를 사용하세요.
  • batch item 이 file_id 를 참조하는 경우 anthropic-beta: files-api-2025-04-14 도 함께 포함하세요.
  • Batch job 은 Anthropic 네이티브 요청/응답 형태를 유지하면서, TokenLab 가 내부 정산 수명주기를 추적합니다.

인증

BearerAuth
AuthorizationBearer <token>

API 키 인증입니다. Dashboard > API > API Keys에서 API 키를 생성하거나 관리하십시오.

위치: header

헤더

X-TokenLab-Delivery-Policy?string

요청별 전송 정책입니다. API 키 및 Workspace 기본값을 재정의합니다. 자동으로 TokenLab Verified를 먼저 시도하며, 출력, 요청 수락 또는 영구 리소스 생성 전에 Official 전용으로 한 번 전환될 수 있습니다.

허용 값

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

요청 본문

application/json

응답

application/json

application/json

application/json

application/json

application/json

application/json