메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt

Use this file to discover all available pages before exploring further.

개요

TokenLab는 공정한 사용과 플랫폼 안정성을 보장하기 위해 rate limit을 적용합니다. 제한은 계정 tier에 따라 달라집니다.

Rate Limit Tier

TierRequests/min설명
User1,000모든 계정의 기본 tier
Partner3,000integration partner용
VIP10,000대용량 사용자용
Rate limit은 변경될 수 있습니다. 사용자 지정 제한이 필요하면 support@tokenlab.sh로 문의하세요.

Rate Limit 응답

Rate limit을 초과하면, API는 재시도 전에 얼마나 기다려야 하는지를 나타내는 Retry-After header와 함께 429 상태 코드를 반환합니다.

Rate Limit 초과

제한을 초과하면 429 응답을 받게 됩니다:
{
  "error": {
    "message": "Rate limit exceeded. Please retry later.",
    "type": "rate_limit_exceeded",
    "code": "rate_limit_exceeded"
  }
}
응답에는 Retry-After header가 포함됩니다:
Retry-After: 60  # Seconds to wait before retrying

Rate Limit 처리

지수 백오프

자동 재시도를 위해 exponential backoff를 구현하세요:
import time
from openai import OpenAI, RateLimitError

client = OpenAI(
    api_key="sk-your-api-key",
    base_url="https://api.tokenlab.sh/v1"
)

def make_request_with_backoff(messages, max_retries=5):
    for attempt in range(max_retries):
        try:
            return client.chat.completions.create(
                model="gpt-4o",
                messages=messages
            )
        except RateLimitError as e:
            if attempt == max_retries - 1:
                raise

            wait_time = 2 ** attempt  # 1, 2, 4, 8, 16 seconds
            print(f"Rate limited. Waiting {wait_time}s...")
            time.sleep(wait_time)

요청 큐잉

대용량 애플리케이션의 경우 요청 큐를 구현하세요:
import asyncio
from collections import deque

class RateLimitedClient:
    def __init__(self, requests_per_minute=60):
        self.rpm = requests_per_minute
        self.interval = 60 / requests_per_minute
        self.last_request = 0

    async def request(self, messages):
        # Wait if needed to respect rate limit
        now = asyncio.get_event_loop().time()
        wait_time = max(0, self.last_request + self.interval - now)
        if wait_time > 0:
            await asyncio.sleep(wait_time)

        self.last_request = asyncio.get_event_loop().time()
        return await self.client.chat.completions.create(
            model="gpt-4o",
            messages=messages
        )

배치 처리

대량 작업의 경우 지연 시간을 두고 배치로 처리하세요:
def process_batch(items, batch_size=50, delay=1):
    results = []
    for i in range(0, len(items), batch_size):
        batch = items[i:i + batch_size]
        for item in batch:
            result = client.chat.completions.create(
                model="gpt-4o",
                messages=[{"role": "user", "content": item}]
            )
            results.append(result)
        time.sleep(delay)  # Pause between batches
    return results

모범 사례

제한을 선제적으로 준수할 수 있도록 rate limit header를 추적하세요.
API 호출을 줄이기 위해 동일한 요청에 대한 응답을 캐시하세요.
더 빠른 모델(예: gpt-5-mini)은 더 높은 처리량을 허용합니다.
더 높은 제한이 필요하면 support@tokenlab.sh로 문의하세요.

Tier 업그레이드

tier 업그레이드를 요청하려면:
  1. Dashboard에 로그인합니다
  2. Settings → 계정로 이동합니다
  3. 사용 사례와 함께 support에 문의합니다
또는 다음 내용을 포함하여 support@tokenlab.sh로 이메일을 보내세요:
  • 계정 이메일
  • 예상 요청량
  • 사용 사례 설명