核心指南
迁移指南
把现有 OpenAI、Anthropic、Gemini 和媒体客户端接到 TokenLab
不需要把所有请求改成同一种格式。现有 OpenAI 兼容客户端、Anthropic Messages、Gemini REST 和媒体接口,都有对应的 TokenLab API 地址。
API 地址对照
| 现有 API | TokenLab Base URL | API | 注意 |
|---|---|---|---|
| OpenAI Chat Completions | https://api.tokenlab.sh/v1 | /chat/completions | 适合继续使用已有 OpenAI 兼容聊天代码 |
| OpenAI Responses | https://api.tokenlab.sh/v1 | /responses | 应用依赖 Responses 输入、事件或工具时使用 |
| Anthropic SDK | https://api.tokenlab.sh | /v1/messages | 请勿在 SDK 基础 URL 后添加 /v1 |
| Gemini REST | https://api.tokenlab.sh | /v1beta/models/:model:generateContent | 继续使用 Gemini 字段 |
| 媒体生成 | https://api.tokenlab.sh/v1 | /images, /videos, /music, /3d | 按任务查找模型,并保存异步任务 ID |
| 管理与账单 | https://api.tokenlab.sh/v1 | /management/... | 服务端使用管理令牌,不使用模型 API 密钥 |
常见迁移方式
从 OpenAI 迁移至 TokenLab
把 SDK 的 base_url / baseURL 改为 https://api.tokenlab.sh/v1,换成 TokenLab API 密钥,并从 GET /v1/models 选择模型 ID。
从 OpenRouter 迁移至 TokenLab
把 OpenRouter Base URL 换成 https://api.tokenlab.sh/v1。TokenLab 模型 ID 不带 OpenRouter 的 provider 前缀。只有应用确实需要 Anthropic Messages 或 Gemini 字段时,才改用相应格式。
从 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 原生接口
继续向 https://api.tokenlab.sh/v1beta/models/{model}:generateContent 发送 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。图片请求必须明确传入模型,具体输入见图片生成指南。
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 工具调用、thinking blocks 和 Anthropic 消息字段应使用 /v1/messages,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 原生行为时,请在 /v1beta 上保留 Gemini 内置工具、File API 引用、缓存内容、函数声明和原生内容部分。
迁移图片、视频等媒体功能
用 GET /v1/models?recommended_for=image|video|music|3d 查找候选模型,并用 GET /v1/models/{model} 确认输入和价格。创建请求要明确传入 model。
异步生成返回后,立即保存 task_id、poll_url、模型和你自己的任务 ID。创建请求超时后,确认没有任务再重发,避免同一次用户操作生成两份结果。费用以 TokenLab Usage 和 billing_transaction_id 为准。
迁移陷阱
- 应用需要 Anthropic、Gemini 或 Responses 专属字段时,请使用对应 API 格式。
- 图片请求不要依赖旧默认值,明确传入
model。 - 异步创建超时后,确认没有任务再重新提交。
- 产品中使用 TokenLab 任务 ID 和 Usage 记录,不把第三方任务 ID 当作账单 ID。
API 参考
| 主题 | 参考 |
|---|---|
| API 格式 | 选择 API 格式 |
| OpenAI SDK | OpenAI SDK |
| Anthropic SDK | Anthropic SDK |
| Gemini | 生成 Gemini 内容 |
| 图片生成 | 图片生成 |
| 异步任务 | 异步任务与状态查询 |