OpenCode 对接 51API
本文适合
适合想在终端里通过 OpenCode 使用 51API 的用户。零基础可以照着配置,程序员可以直接复制 opencode.json。
先说结论
OpenCode 当前非常适合直接接 51API。
因为官方文档已经明确支持:
- 自定义 provider
@ai-sdk/openai-compatible- 自定义
options.baseURL - 用
provider_id/model_id形式选模型
这和 51API 的 OpenAI 兼容接口天然匹配。
OpenCode、51API、模型之间是什么关系?
你可以把它理解成:
- OpenCode:运行在终端里的 AI 编码助手
- 51API:统一模型网关
- 模型:真正输出结果的模型,比如
gpt-5-codex、claude-sonnet-4-6
调用链是:
text
你 -> OpenCode -> 51API -> 具体模型1
所以你要做的事,本质上就是:
- 在 OpenCode 里定义一个自定义 provider
- 把这个 provider 指向
https://www.51api.org/v1 - 把默认模型写成
provider_id/model_id
你要准备什么?
1. 一个可用的 51API Key
去 51API 控制台创建 sk-xxx。
2. 安装 OpenCode
官方文档当前常见安装方式:
bash
curl -fsSL https://opencode.ai/install | bash1
或者:
bash
npm install -g opencode-ai1
第一步:设置环境变量
macOS / Linux
bash
export FIFTYONE_API_KEY="sk-你的密钥"1
Windows PowerShell
powershell
$env:FIFTYONE_API_KEY="sk-你的密钥"1
第二步:创建 OpenCode 配置文件
根据 OpenCode 官方文档,配置文件可以放在两个地方:
全局配置
text
~/.config/opencode/opencode.json1
项目配置
text
项目根目录/opencode.json1
如果你只是自己长期使用,建议先从全局配置开始。
第三步:先用最小配置跑通
把下面这份配置贴进去:
json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"fiftyone": {
"npm": "@ai-sdk/openai-compatible",
"name": "51API",
"options": {
"baseURL": "https://www.51api.org/v1",
"apiKey": "{env:FIFTYONE_API_KEY}"
},
"models": {
"gpt-5-codex": {
"name": "GPT-5 Codex"
}
}
}
},
"model": "fiftyone/gpt-5-codex"
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
这份配置怎么理解?
fiftyone是你自己定义的 provider ID,可以改,但后面要统一用npm: "@ai-sdk/openai-compatible"告诉 OpenCode,这个 provider 走的是 OpenAI-compatible 协议baseURL就是 51API 的接口地址apiKey: "{env:FIFTYONE_API_KEY}"告诉 OpenCode 从环境变量里取密钥model: "fiftyone/gpt-5-codex"告诉 OpenCode 默认模型是谁
注意
这里的模型写法不是只写模型名,而是:
text
provider_id/model_id1
也就是:
text
fiftyone/gpt-5-codex1
第四步:启动 OpenCode
进入你的项目目录,执行:
bash
opencode1
第一次建议先问:
text
请先读取当前项目结构,并告诉我这个仓库大概是做什么的。1
如果能正常回答,说明 OpenCode 已经通过 51API 打通。
想切多个模型,怎么配置?
把 models 扩成这样:
json
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"fiftyone": {
"npm": "@ai-sdk/openai-compatible",
"name": "51API",
"options": {
"baseURL": "https://www.51api.org/v1",
"apiKey": "{env:FIFTYONE_API_KEY}"
},
"models": {
"gpt-5-codex": {
"name": "GPT-5 Codex"
},
"gpt-5": {
"name": "GPT-5"
},
"claude-sonnet-4-6": {
"name": "Claude Sonnet 4.6"
},
"gemini-2.5-flash": {
"name": "Gemini 2.5 Flash"
}
}
}
},
"model": "fiftyone/gpt-5-codex",
"small_model": "fiftyone/gemini-2.5-flash"
}1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
这样配置后:
- 主模型走
fiftyone/gpt-5-codex - 轻量任务走
fiftyone/gemini-2.5-flash
另一种做法:先用 /connect 存凭据
OpenCode 官方也支持在 TUI 里通过 /connect 添加 provider 凭据。
如果你更喜欢交互式操作,可以:
- 启动
opencode - 输入
/connect - 选择
Other - provider id 填:
fiftyone - 粘贴你的 51API Key
- 然后再写
opencode.json
这种做法的好处是:
- Key 不一定要直接写在配置里
- 以后改模型时只动配置文件即可
常见模型怎么选?
主力编码
推荐:
text
fiftyone/gpt-5-codex1
通用平衡
推荐:
text
fiftyone/gpt-51
省钱试跑
推荐:
text
fiftyone/gemini-2.5-flash1
长文解释
推荐:
text
fiftyone/claude-sonnet-4-61
常见报错怎么排查?
1. 看不到你自定义的 provider
先检查:
provider下的 key 是不是fiftyonemodel里是不是写成了fiftyone/gpt-5-codexmodels下是否真的声明了这个模型
2. 报 404
通常是 baseURL 写错。
正确写法:
json
"baseURL": "https://www.51api.org/v1"1
3. 报 401 Unauthorized
通常是:
FIFTYONE_API_KEY没有设置成功- Key 失效
- Key 带空格
4. 报模型不存在
通常是:
- 模型名写错
- 你的 51API 令牌没有这个模型权限
常见问题
Q1:OpenCode 里可以同时用 GPT、Claude、Gemini 吗?
可以。
只要你的 provider 里声明了这些模型,并且 51API Key 有权限,就可以切。
Q2:不同模型是不是分开扣费?
不是。
只要都走同一个 51API Key,就共用同一个 51API 余额体系。
Q3:small_model 是干什么的?
OpenCode 官方文档里说明,small_model 用于标题生成等轻量任务。能省则省,所以这里非常适合挂一个便宜模型。
下一步
官方参考
- OpenCode 介绍与安装:https://opencode.ai/docs/
- OpenCode Config:https://opencode.ai/docs/config/
- OpenCode Models:https://opencode.ai/docs/models/
- OpenCode Providers:https://opencode.ai/docs/providers/