从 OpenRouter 迁移到 TeamoRouter:模型 ID 对照表与改法

从 OpenRouter 切过来只改三处:Base URL、API Key、模型 ID(去掉 厂商/ 前缀)。OpenAI SDK 的其他配置都不用动。

新账号余额为 0,先充值再调用。 第一次请求前先充值,$5 起。如果请求返回 402(OpenAI 格式为 400)、提示「钱包余额不足」,说明余额为 0,不是 Base URL 或 Key 配错了,充值后重试即可。

一、要改哪几处

OpenRouter TeamoRouter
Base URL(OpenAI 格式) https://openrouter.ai/api/v1 https://api.teamorouter.cn/v1
API Key sk-or-v1-... sk-teamo-...,在控制台创建
鉴权头 Authorization: Bearer <key> OpenAI 格式:Authorization: Bearer <key>
模型 ID 厂商/模型,例如 deepseek/deepseek-v4-pro 不带厂商前缀,例如 deepseek-v4-pro

二、模型 ID 对照表

去掉 厂商/ 前缀即可。带厂商前缀的 ID 会返回 400 model_not_available。

OpenRouter 模型 ID TeamoRouter 模型 ID
deepseek/deepseek-v4.1-flash-1017 deepseek-flash-1017
deepseek/deepseek-v4.1-flash deepseek-flash
deepseek/deepseek-v4-flash-vision-exp deepseek-v4-flash-vision-exp
deepseek/deepseek-v4-pro deepseek-v4-pro
deepseek/deepseek-v4-flash deepseek-v4-flash
moonshotai/kimi-k3.1-pro kimi-k3.1-pro
moonshotai/kimi-k3 kimi-k3
qwen/qwen3.8-flash qwen3.8-flash
qwen/qwen3.7-max qwen3.7-max
qwen/qwen3.7-flash qwen3.7-flash
z-ai/glm-5.3-flash glm-5.3-flash
z-ai/glm-5.3 glm-5.3
z-ai/glm-5.2 glm-5.2

上表只列两边都有的主力模型,按 2026-11-04 两边公开的模型列表生成。其他模型和实时价格见模型广场,或调 GET /v1/models。

  • openrouter/auto 和 ~厂商/...-latest 这类别名没有对应,请从表里选一个固定的模型 ID。
  • :nitro、:floor、:online、:batch 这类后缀不支持,去掉即可。免费模型是单独的 ID,以 -free 结尾,在模型广场里有标注。

三、可以删掉的请求头

OpenRouter 的 HTTP-Referer、X-OpenRouter-Title(旧名 X-Title)、X-OpenRouter-Categories、X-OpenRouter-App-Visibility 只用来把你的应用登上它的公开排行榜。TeamoRouter 不用这些头,切换时删掉即可。

四、代码怎么改

Python(OpenAI SDK)

改之前:

python
from openai import OpenAI

client = OpenAI(
    base_url="https://openrouter.ai/api/v1",
    api_key="sk-or-v1-xxxxxx",
)

resp = client.chat.completions.create(
    model="deepseek/deepseek-v4-pro",
    messages=[{"role": "user", "content": "你好"}],
    extra_headers={"HTTP-Referer": "https://example.com", "X-OpenRouter-Title": "My App"},
    extra_body={"provider": {"order": ["deepseek"]}},
)
print(resp.choices[0].message.content)

改之后:

python
from openai import OpenAI

client = OpenAI(
    base_url="https://api.teamorouter.cn/v1",
    api_key="sk-teamo-xxxxxx",
)

resp = client.chat.completions.create(
    model="deepseek-v4-pro",
    messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)

JavaScript / TypeScript(OpenAI SDK)

改之前:

javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://openrouter.ai/api/v1",
  apiKey: process.env.OPENROUTER_API_KEY,
  defaultHeaders: { "HTTP-Referer": "https://example.com", "X-OpenRouter-Title": "My App" },
});

const resp = await client.chat.completions.create({
  model: "deepseek/deepseek-v4-pro",
  messages: [{ role: "user", content: "你好" }],
});

改之后:

javascript
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.teamorouter.cn/v1",
  apiKey: process.env.TEAMOROUTER_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "deepseek-v4-pro",
  messages: [{ role: "user", content: "你好" }],
});

五、OpenRouter 有、TeamoRouter 没有的

OpenRouter 功能 TeamoRouter
自动路由(openrouter/auto)和 ~...-latest 别名 没有。请写固定的模型 ID。
models 备选模型列表 没有。请在代码里捕获报错,换一个模型重试。同一个模型背后有多条线路,TeamoRouter 会自动切换,但不能指定走哪条。
provider 偏好参数(order、only、ignore、sort、allow_fallbacks、data_collection、zdr、max_price、quantizations) 没有。请删掉 provider 字段。
模型后缀(:nitro、:floor、:online、:batch) 没有。去掉后缀即可。
plugins(联网搜索、文件解析)和 transforms 没有。请删掉这两个字段。
返回结果里的费用(usage.cost) 返回的 usage 里只有 token 数,每次请求扣了多少钱在控制台看。
/api/v1/credits、/api/v1/key、/api/v1/generation 没有对外接口,余额和用量在控制台看。
自带上游 Key(BYOK) 没有。

六、验证是否切换成功

bash
curl https://api.teamorouter.cn/v1/chat/completions \
  -H "Authorization: Bearer sk-teamo-xxxxxx" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4-pro","messages":[{"role":"user","content":"你好"}]}'
  • 401:Key 不对。应以 sk-teamo- 开头,而不是 sk-or-。
  • 402(OpenAI 格式为 400),提示「钱包余额不足」:余额为 0,充值后重试。
  • 400 model_not_available:模型 ID 还带着 厂商/ 前缀,或不在我们的模型列表里,对照上面的表改。

更多错误码和限流说明见 API 接入文档 和限流说明。

准备好了?三步即可开始登录控制台 · 购买额度 · 创建 API Key
DiscordGet community help instantly