跳到正文
LinuxDo· 奥尔良全🐓·· 3 小时前AI 评分50

opencode 配置教程:把同一中转站的多个分组密钥/模型合并到同一个 provider

opencode 配置合并同一中转站的多个分组密钥/模型到同一个provider

AI 导读

opencode 可通过在单个 provider 下为每个模型单独设置 headers 和 provider 字段,把同一中转站的不同分组密钥与模型合并到一个 provider 中。

正文

2026 年10 月 6 日 15:38 1

简单搜了一下站内没有相关教程,就简单写了一个

正常配置长这样,同一个 baseUrl 的不同模型都属于不同的 provider:

"provider": {
  "xxx-grok": { "npm": "@ai-sdk/openai-compatible", "options": { "apiKey": "sk-grok-..." }, "models": { /* ... */ } },
  "xxx-ds":   { "npm": "@ai-sdk/anthropic",         "options": { "apiKey": "sk-ds-..." },   "models": { /* ... */ } },
  "xxx-gpt":  { "npm": "@ai-sdk/openai",            "options": { "apiKey": "sk-gpt-..." },  "models": { /* ... */ } }
}

改进写法:

"provider": {
  "myrelay": {
    "npm": "@ai-sdk/openai-compatible",
    "name": "myrelay",
    "options": {
      "baseURL": "https://api.example.com/v1",
      "apiKey": "sk-grok-xxx",   // 占位即可,模型级 headers 会覆盖
      "setCacheKey": true
    },
    "models": {
      "grok-4.7": {
        "name": "grok-4.7",
        "reasoning": true,
        "tool_call": true,
        "headers": { "Authorization": "Bearer sk-grok-xxx" }
      },
      "deepseek-v4-1-flash": {
        "provider": { "npm": "@ai-sdk/anthropic" },   // 模型级覆盖 SDK 接口
        "name": "deepseek-v4-1-flash",
        "headers": { "Authorization": "Bearer sk-ds-xxx" }
      },
      "gpt-5.6-sol": {
        "provider": { "npm": "@ai-sdk/openai" },   // 模型级覆盖 SDK 接口
        "name": "gpt-5.6-sol",
        // ...
        "headers": { "Authorization": "Bearer sk-gpt-xxx" }
      }
    }
  }
}

1 个赞

来源:LinuxDo · linux.do