迁移指南

更换 AI 网关?哪些可以迁移,哪些不行。

在 ModelRiver 中,model 是一个工作流的名称,工作流里保存了模型、备用模型和各项设置。下面介绍迁移的思路,以及 ModelRiver 目前还不支持的功能。

  • 自带密钥(BYOK)
  • token 不加价
  • 免费版每月 25,000 次请求封顶

模型 中一个名称,背后一个工作流

工作流包含什么,以及为什么 模型 就是它的名称。

工作流是一个带名称的已保存配置,例如 support_bot。它包含一个主模型、最多 2 个备用模型、可选的结构化输出、输入防护、每个模型的美元预算以及响应缓存。遇到 429、5xx、408、404 和连接错误时切换到备用模型,流式响应中同样生效。修改先保存到 Draft,发布前生产环境一直调用 Live 版本,并且可以回滚。您的代码通过现有的 OpenAI SDK 发送这个名称,使用您自己的服务商密钥,模型用量不加价。

support_bot

主模型
OpenAI/gpt-4o
备用 1
Anthropic/claude-sonnet-5
备用 2
Google/gemini-3.5-flash
结构化输出
ticket(JSON schema)
预算
主模型每天 $50
发布
Draft → Live,随时回滚

两行代码 + 一个工作流

继续使用 OpenAI SDK。在创建客户端的那一行修改 base URL 和密钥,在请求那一行把 模型 设为工作流的名称。

步骤 0:在控制台创建一个工作流,设置主模型和备用模型。它的名称就是您发送的 模型。

之前

app.py
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://your-gateway.example/v1",
    api_key=os.environ["GATEWAY_API_KEY"],
)

resp = client.chat.completions.create(
    model="openai/gpt-4o",
    messages=[{"role": "user", "content": "Summarize this ticket."}],
)

之后

app.py
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.modelriver.com/v1",
    api_key=os.environ["MODELRIVER_API_KEY"],
)

resp = client.chat.completions.create(
    model="support_bot",  # workflow name
    messages=[{"role": "user", "content": "Summarize this ticket."}],
)

之前

app.ts
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://your-gateway.example/v1",
  apiKey: process.env.GATEWAY_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "openai/gpt-4o",
  messages: [{ role: "user", content: "Summarize this ticket." }],
});

之后

app.ts
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://api.modelriver.com/v1",
  apiKey: process.env.MODELRIVER_API_KEY,
});

const resp = await client.chat.completions.create({
  model: "support_bot", // workflow name
  messages: [{ role: "user", content: "Summarize this ticket." }],
});

之前

request.sh
curl https://your-gateway.example/v1/chat/completions \
  -H "Authorization: Bearer $GATEWAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "openai/gpt-4o", "messages": [{"role": "user", "content": "Summarize this ticket."}]}'

之后

request.sh
curl https://api.modelriver.com/v1/chat/completions \
  -H "Authorization: Bearer $MODELRIVER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "support_bot", "messages": [{"role": "user", "content": "Summarize this ticket."}]}'

各平台的对应关系

关于 ModelRiver 的事实

用您自己的密钥试试。免费版每月 25,000 次请求封顶,不收超额费用。模型用量由您的供应商按您自己的密钥计费。

免费创建工作流

ModelRiver 目前还不支持

如果您现在就需要其中某项,请继续使用现有方案。

常见问题

为什么 ModelRiver 使用工作流名称而不是模型名?

这样模型选择、备用模型、结构化输出、防护和预算都在一处修改,无需重新部署代码。Draft 与 Live 发布让您可以先测试修改,再回滚。

需要更换 SDK 吗?

不需要。ModelRiver 在 https://api.modelriver.com/v1 提供 OpenAI 兼容接口。您只需修改 base URL、API 密钥和 model 的值。

如果误发了 OpenAI/gpt-4o 会怎样?

API 会返回 404,code 为 "model_not_found";如果项目中有工作流使用该模型,错误信息会给出它的名称。GET /v1/models 会列出可以发送的名称。

ModelRiver 怎么收费?

您使用自己的服务商密钥,Token 费用由服务商向您收取。ModelRiver 不对 Token 加价,按请求量收取套餐费用:Free 免费,每月 25,000 次请求(用完即停止);Pro 每月 $49;Scale 每月 $299。

可以一次只迁移一个工作流吗?

可以。每个工作流相互独立。先迁移一种调用,其余调用继续走现有网关,确认稳定后再迁移下一个。

自带密钥,保留 SDK。

从免费版开始,创建一个工作流,再把 SDK 指向它。

把您的 models[] 请求或 config.yaml 发给我们(请先删除密钥),我们会回复对应的工作流设置。 获取迁移帮助

核对日期 · 报告不准确之处

来源

OpenRouter、LiteLLM、Portkey、Vercel 是其各自所有者的商标。ModelRiver 与它们没有隶属关系,也未获得其认可或赞助。