ルートマッピング
クイック移行レシピ
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互換の移行
GET /v1/models でモデルIDを検証してください。画像生成については、model を明示的に送信し、画像ガイドを確認してください。画像モデルはチャットモデルよりも差異が大きいためです。
Anthropicの移行
/v1/messages を使用してください。OpenAI互換の動作変更を意図的に行いたい場合を除き、Anthropic専用フィールドをChat Completions経由で変換しないでください。
Geminiの移行
/v1beta で維持してください。
メディアの移行
GET /v1/models?recommended_for=image|video|music|3dをクエリします。- リストレスポンス内の
GET /v1/modelsおよび利用可能な場合は完全なGET /v1/models/{model}を読み取ります。 - 特に画像エンドポイントでは、
modelを明示的に送信します。 - 非同期ジョブ用に
task_id、poll_url、エンドポイント、モデル、および独自のジョブIDを保存します。 - 費用の照合はプロバイダーのタスクIDではなく、使用量レコードと
billing_transaction_idを通じて行います。
本番環境ロールアウト計画
移行の落とし穴
- アプリがネイティブのAnthropic、Gemini、またはResponsesの動作を必要とする場合、すべてのモデルを1つのOpenAI Chat Completionsパスの背後に配置しないでください。
- 古い画像のデフォルト設定を前提としないでください。
modelは明示的に送信してください。 - タスクが既に作成されているかを確認せずに、非同期作成リクエストをリトライしないでください。
- プロバイダー固有の識別子をログやUIに公開しないでください。
- 請求額をプロバイダーのタスクIDで比較しないでください。TokenLabの使用量レコードを使用してください。