メインコンテンツへスキップ
TokenLabはマルチフォーマットです:OpenAI互換のクライアント、AnthropicネイティブのMessages呼び出し、GeminiネイティブのREST呼び出し、およびメディアエンドポイントをその自然な形で保持できます。最も安全な移行は、すべてのワークロードを1つのユニバーサルフォーマットに変換しないことです。アプリケーションに必要な動作を所有するルートを選択してください。

ルートマッピング

既存のワークロードTokenLabベースURLプライマリエンドポイント移行ノート
OpenAIチャット完了https://api.tokenlab.sh/v1/chat/completionsOpenAI互換のチャットおよび関数呼び出しに対する最小限の変更
OpenAIレスポンスhttps://api.tokenlab.sh/v1/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互換の移行

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.4",
    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-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain TokenLab in one sentence."}],
)
Claudeネイティブのツール使用、思考フロー、およびAnthropicメッセージセマンティクスには/v1/messagesを使用してください。意図的にOpenAI互換の動作変更を望まない限り、Chat Completionsを通じてAnthropic専用フィールドを翻訳しないでください。

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の組み込みツール、ファイルAPI参照、キャッシュされたコンテンツ、関数宣言、およびネイティブコンテンツ部分を/v1betaで保持してください。

メディア移行

  1. GET /v1/models?recommended_for=image|video|music|3dをクエリします。
  2. リストレスポンスでtokenlab.public_contract_summaryを読み、利用可能な場合は完全なtokenlab.public_contractを読みます。
  3. 特に画像エンドポイントの場合は明示的にmodelを送信します。
  4. 非同期ジョブのためにtask_idpoll_url、エンドポイント、モデル、および独自のジョブIDを保存します。
  5. プロバイダーのタスクIDではなく、使用記録とbilling_transaction_idを通じてコストを調整します。
メディアワークロードには、レイテンシ、リトライ、および最終資産がチャット完了とは異なる動作をするため、独自の展開計画が必要です。

プロダクション展開計画

フェーズ目標チェック
1. インベントリエンドポイント、モデル、リクエストフィールド、ストリーミング/非同期動作、および請求所有者をリスト公開されていると仮定される隠れたプロバイダー専用フィールドはありません
2. シングルルートパイロット1つのエンドポイントと1つのモデルファミリーを移行レスポンスの形状、コスト、およびログが期待に一致
3. シャドウまたはサンプル選択した出力を以前のプロバイダーと比較ユーザーに見える品質とレイテンシが許容範囲内
4. 段階的展開キー、組織、または機能フラグによってトラフィックを増加4xx5xx、レイテンシ、バランス、および重複した非同期ジョブを監視
5. クリーンアップ安定した使用の後にのみ古いプロバイダーパスを削除ロールバックパスとサポートプレイブックが文書化されている

移行の落とし穴

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

APIリファレンス

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