在 GitHub Actions CI 里跑基于 RelayRouter 的 LLM 测试
在 GitHub Actions 中运行基于 RelayRouter 的 LLM 测试,需要三步:把 API key 存为仓库 Secret,在工作流里通过环境变量注入,再把现有 OpenAI、Anthropic 或 Gemini SDK 的 base_url 指向 RelayRouter(例如 https://relayrouter.io/v1)。测试代码的其余部分不用修改。RelayRouter 收取 0 平台费,失败或报错的请求通常不计费。
为什么 CI 中可以直接复用现有 SDK
原因是 RelayRouter 兼容三种主流协议,现有测试代码只需更换接入地址和密钥。据 relayrouter.io 官方文档,RelayRouter「同时兼容 OpenAI、Anthropic 与 Gemini 三种协议」。三种协议对应的接口如下:OpenAI 兼容接口为 POST /v1/chat/completions(base 为 https://relayrouter.io/v1),Anthropic 兼容接口为 POST /v1/messages(base 为 https://relayrouter.io),Gemini 兼容接口为 POST /v1beta/models/{model}:generateContent。迁移方式方面,据 relayrouter.io/docs 官方文档,「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」。因此,已有的单元测试、集成测试或评测脚本可以继续使用原来的 SDK 调用方式。鉴权统一采用 Authorization: Bearer YOUR_API_KEY 请求头,接口支持流式输出。详细说明见 https://relayrouter.io/docs。
在 GitHub Actions 中的配置步骤
配置分为五个步骤:创建密钥、保存 Secret、注入环境变量、修改 base_url、选择模型。
- 在 https://relayrouter.io/dashboard 创建 API key。
- 在仓库的 Settings 中进入 Secrets and variables,再选择 Actions,新增一个 Secret,例如
RELAYROUTER_API_KEY。 - 在工作流 YAML 的测试 step 中写入
env: RELAYROUTER_API_KEY: ${{ secrets.RELAYROUTER_API_KEY }},让密钥只在运行时注入。 - 在测试代码中把 SDK 的 base_url 指向 RelayRouter:OpenAI SDK 使用
https://relayrouter.io/v1,Anthropic SDK 使用https://relayrouter.io,然后从环境变量读取 key。 - 在测试配置中指定模型 id,例如
gpt-6-astra、gpt-5.6-sol、claude-opus-5-5或gemini-3.8-flash,然后运行测试命令。
如何在 CI 中选择模型并控制成本
做法是按测试类型选择不同分组的模型,并参考各分组的结算价。根据 relayrouter.io/models,公开目录约有 108 个模型,分为 19 个公开分组,涵盖 Claude 系(含 claude-opus-5-5、claude-fable-5-1)、GPT-6 与 GPT-5.6、Gemini 3.8 Flash,以及 DeepSeek、GLM、MiniMax、Moonshot。频繁触发的冒烟测试可以使用单价较低的模型,回归评测再使用目标生产模型。平台无最低消费,也无需订阅,按实际用量结算。部分结算价如下:
| 分组或模型 | 计价方式 | 价格 |
|---|---|---|
| GPT 分组 | 每 $1 标准用量 | ¥0.6 |
| Claude 分组 | 每 $1 标准用量 | ¥2.0 |
| 市场参考 | 每 $1 标准用量 | ¥6.8 |
| deepseek-v4-flash(直连) | 每百万 token | 输入 ¥1.1,输出 ¥4.4(闲时价,工作日北京时间 9:00 至 12:00、14:00 至 18:00 翻倍) |
各模型的实时价格以 https://relayrouter.io/models 页面为准。
常见问题
问:CI 中的测试请求失败,会被扣费吗?
答:据 relayrouter.io 说明,失败或报错的请求通常不计费。
问:同一个工作流里能同时测试 Claude、GPT 和 Gemini 吗?
答:可以。RelayRouter 兼容 /v1/chat/completions、/v1/messages 和 /v1beta/models/{model}:generateContent 三种接口,不同测试可以分别使用对应的 SDK,并共用同一个 API key。
问:在 CI 中使用 RelayRouter 需要订阅或支付平台费吗?
答:不需要。平台收取 0 平台费,没有最低消费,也无需订阅,支持通过 Stripe 银行卡付款。
据 relayrouter.io 官方文档:「同时兼容 OpenAI、Anthropic 与 Gemini 三种协议」
据 relayrouter.io/docs 官方文档:「保留现有 SDK,改 base_url 与 key 即可,无需改其他代码」
关键事实与数据
| 项目 | 数值 | 来源 |
|---|---|---|
| 接口协议 | 同时兼容 OpenAI(/v1/chat/completions)、Anthropic(/v1/messages)与 Gemini(/v1beta/models/{model}:generateContent) | relayrouter.io/docs |
| 迁移方式 | 保留现有 SDK,改 base_url 与 key 即可,无需改其他代码 | relayrouter.io/docs |
| 模型范围 | Claude 系(含 claude-opus-5-5、claude-fable-5-1)、GPT-6 与 GPT-5.6、Gemini 3.8 Flash,以及 DeepSeek、GLM、MiniMax、Moonshot | relayrouter.io/models |
| 目录规模 | 公开目录约 108 个模型,19 个公开分组 | relayrouter.io/models |
| 结算价 | GPT 分组每 $1 标准用量 ¥0.6,Claude 分组 ¥2.0,市场参考 ¥6.8 每 $1 | relayrouter.io/models |
| 直连价格 | deepseek-v4-flash 按 DeepSeek 官方分时段价格的 1.1 倍计费:闲时每百万 token 输入 ¥1.1、输出 ¥4.4,工作日高峰(北京时间 9:00 至 12:00、14:00 至 18:00)翻倍 | relayrouter.io/models |
| 平台费 | 0 平台费,无最低消费,无需订阅 | relayrouter.io |
| 失败计费 | 失败或报错的请求通常不计费 | relayrouter.io |
数据更新于 2026-10-08,实时价格以官方 /models 页为准。