TokenLab

핵심 가이드

API 형식

Chat Completions, Responses, Messages, Gemini 선택하기

하나의 TokenLab API 키로 네 가지 API 형식을 사용할 수 있습니다. 앱에서 이미 사용하는 형식을 우선하고 모델 페이지 또는 GET /v1/models/{model}의 tokenlab.accepted_request_formats를 확인하세요. 모든 모델이 네 형식을 지원하지는 않습니다.

Chat Completions

POST /v1/chat/completions · openai_chat_completions

기존 OpenAI 호환 채팅 클라이언트, 대화 기록, 스트리밍, 선택한 모델이 지원하는 함수 호출에 적합합니다. 다른 형식 전용 필드는 지원이 보장되지 않습니다.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKENLAB_API_KEY"],
    base_url="https://api.tokenlab.sh/v1",
)

response = client.chat.completions.create(
    model="gpt-5.6-luna",
    messages=[{"role": "user", "content": "Hello!"}],
)

print(response.choices[0].message.content)

Responses

POST /v1/responses · openai_responses

모델의 accepted_request_formats에 openai_responses가 있을 때 사용하세요. 생성, 조회, 압축, 삭제, 스트리밍, WebSocket 생성과 이어가기 및 지원 모델의 백그라운드 응답을 제공합니다. 저장된 응답을 삭제해도 진행 중인 응답은 취소되지 않습니다.

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["TOKENLAB_API_KEY"],
    base_url="https://api.tokenlab.sh/v1",
)

response = client.responses.create(
    model="gpt-5.6-terra",
    input="Explain why the sky is blue in two sentences.",
)

print(response.output_text)

Anthropic Messages

POST /v1/messages · anthropic_messages

Anthropic SDK의 base URL에는 TokenLab 호스트를 사용하고 /v1을 붙이지 마세요. Claude 도구 호출, thinking 블록, 프롬프트 캐시 필드는 Messages 형식으로 유지하세요.

import os
from anthropic import Anthropic

client = Anthropic(
    api_key=os.environ["TOKENLAB_API_KEY"],
    base_url="https://api.tokenlab.sh",
)

message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=512,
    messages=[{"role": "user", "content": "Hello!"}],
)

print(message.content[0].text)

Gemini

POST /v1beta/models/:model:generateContent · gemini_generate_content

기존 Gemini contents, parts, 파일, 캐시, 도구를 사용할 때 적합합니다. ProtoJSON lowerCamelCase와 원래 snake_case 이름을 모두 받지만 한 요청에서 같은 필드를 두 표기로 동시에 보내지 마세요.

curl "https://api.tokenlab.sh/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{"parts": [{"text": "Hello!"}]}]
  }'

대화 형식 유지

형식마다 대화 상태와 도구 결과를 표현하는 방법이 다릅니다. 대화 전체에서 같은 형식을 사용하고 기록을 이전할 때는 앱에서 먼저 변환하고 검증하세요.

알 수 없는 필드

필드가 전달되었다고 모델이 지원하는 것은 아닙니다. 선택한 모델에 명시된 기능만 사용하고 지원하지 않는 필드 오류를 처리하세요.

관련 문서

이 페이지의 내용