コアガイド

移行ガイド

OpenAI、Anthropic、Gemini、およびメディアワークロードを、本番環境で安全かつ最小限の変更でTokenLabへ移行する方法を解説します。

TokenLabはマルチフォーマットに対応しています。OpenAI互換クライアント、AnthropicネイティブのMessages呼び出し、GeminiネイティブのREST呼び出し、そしてメディアエンドポイントを、それぞれの自然な形式のまま維持できます。最も安全な移行方法は、すべてのワークロードを一つの汎用フォーマットに変換しようとしないことです。アプリケーションが必要とする動作を保持するルートを選択してください。

ルートマッピング

既存のワークロードTokenLabベースURLプライマリエンドポイント移行の注意点
OpenAI Chat Completionshttps://api.tokenlab.sh/v1/chat/completionsOpenAI互換のチャットおよび関数呼び出しへの最小限の変更
OpenAI Responseshttps://api.tokenlab.sh/v1/responsesアプリがResponses固有の入力、ツール、または出力処理に依存している場合に使用
Anthropic SDKhttps://api.tokenlab.sh/v1/messagesSDKのベースURLに /v1 を追加しないでください
Gemini RESThttps://api.tokenlab.sh/v1beta/models/:model:generateContentGeminiネイティブのフィールドはGeminiルートで維持してください
メディア生成https://api.tokenlab.sh/v1/images, /videos, /music, /3drecommended_for でモデルを検索し、ドキュメントに従って非同期ポーリングを想定してください
管理および請求https://api.tokenlab.sh/v1/management/...サーバーサイドでの利用や請求照合には管理用トークンを使用してください

クイック移行レシピ

OpenAIからTokenLabへ

SDKの base_url / baseURL を https://api.tokenlab.sh/v1 に変更するだけです。ロールアウトを容易にするため、既存のOpenAI APIキーの環境変数名はそのまま使用可能です。モデルIDは GET /v1/models を確認した後に置き換えてください。

OpenRouterからTokenLabへ

以前OpenRouterのOpenAI互換ベースURLを使用していた箇所で https://api.tokenlab.sh/v1 を使用してください。プロバイダー接頭辞付きのモデルIDを削除し、/v1/models から取得したTokenLabのパブリックモデルIDを使用します。ワークロードがClaude MessagesやGeminiの generateContent を必要とする場合は、OpenAI互換チャット経由で無理に実行せず、ネイティブのTokenLabエンドポイントへ移行してください。

LiteLLMからTokenLabへ

LiteLLMの custom_openai/<model> ルートを使用し、api_base: https://api.tokenlab.sh/v1 を設定してください。LiteLLMのエイリアスと実際のTokenLabモデルIDを分離しておくことで、アプリケーションのプロンプトを変更することなくルーティングポリシーを変更できます。

TokenLab経由のClaude Messages

Anthropic SDKクライアントの接続先を https://api.tokenlab.sh に設定し、messages.create を呼び出します。SDKのベースURLに /v1 を追加しないでください。SDKが /v1/messages パスを管理します。

TokenLab経由のGeminiネイティブ

Geminiのペイロードは https://api.tokenlab.sh/v1beta/models/{model}:generateContent に維持してください。アプリがGeminiの動作に依存している場合、Geminiネイティブの contents、parts、ファイル、キャッシュされたコンテンツ、関数宣言、および組み込みツールはこのルートで維持する必要があります。

OpenAI互換の移行

from openai import OpenAI

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

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

既存のリトライ、タイムアウト、ストリーミングコードはそのまま維持できますが、本番環境のトラフィックを流す前に GET /v1/models でモデルIDを検証してください。画像生成については、model を明示的に送信し、画像ガイドを確認してください。画像モデルはチャットモデルよりも差異が大きいためです。

Anthropicの移行

from anthropic import Anthropic

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

message = client.messages.create(
    model="claude-sonnet-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Reply with: Connected to TokenLab."}],
)

Claudeネイティブのツール使用、思考フロー、およびAnthropicのメッセージセマンティクスには /v1/messages を使用してください。OpenAI互換の動作変更を意図的に行いたい場合を除き、Anthropic専用フィールドをChat Completions経由で変換しないでください。

Geminiの移行

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

アプリがGeminiネイティブの動作に依存している場合は、Geminiの組み込みツール、File API参照、キャッシュされたコンテンツ、関数宣言、およびネイティブのコンテンツパーツを /v1beta で維持してください。

メディアの移行

  1. GET /v1/models?recommended_for=image|video|music|3d をクエリします。
  2. リストレスポンス内の GET /v1/models および利用可能な場合は完全な GET /v1/models/{model} を読み取ります。
  3. 特に画像エンドポイントでは、model を明示的に送信します。
  4. 非同期ジョブ用に task_id、poll_url、エンドポイント、モデル、および独自のジョブIDを保存します。
  5. 費用の照合はプロバイダーのタスクIDではなく、使用量レコードと billing_transaction_id を通じて行います。

メディアワークロードは、レイテンシ、リトライ、最終的なアセットの挙動がチャット補完とは異なるため、独自のロールアウト計画が必要です。

本番環境ロールアウト計画

フェーズ目標チェック項目
1. インベントリエンドポイント、モデル、リクエストフィールド、ストリーミング/非同期動作、請求所有者をリスト化プロバイダー固有の隠れたフィールドがパブリックであると想定されていないか
2. 単一ルートのパイロット1つのエンドポイントと1つのモデルファミリーを移行レスポンスの形状、コスト、ログが期待通りか
3. シャドウまたはサンプル選択した出力を以前のプロバイダーと比較ユーザーから見える品質とレイテンシが許容範囲内か
4. 段階的ロールアウトキー、組織、またはフィーチャーフラグごとにトラフィックを増加4xx、5xx、レイテンシ、残高、重複する非同期ジョブを監視
5. クリーンアップ安定稼働を確認した後にのみ古いプロバイダーのパスを削除ロールバックパスとサポートプレイブックが文書化されているか

移行の落とし穴

  • アプリがネイティブのAnthropic、Gemini、またはResponsesの動作を必要とする場合、すべてのモデルを1つのOpenAI Chat Completionsパスの背後に配置しないでください。
  • 古い画像のデフォルト設定を前提としないでください。model は明示的に送信してください。
  • タスクが既に作成されているかを確認せずに、非同期作成リクエストをリトライしないでください。
  • プロバイダー固有の識別子をログやUIに公開しないでください。
  • 請求額をプロバイダーのタスクIDで比較しないでください。TokenLabの使用量レコードを使用してください。

APIリファレンス

トピックリファレンス
マルチフォーマットAPIMulti-Format API
OpenAI SDKOpenAI SDK
Anthropic SDKAnthropic SDK
GeminiネイティブGemini Native API
画像生成画像生成
非同期ジョブとポーリング非同期ジョブとポーリング

このページの内容