Skip to content
FunCoding

Search

Search docs, Skills and MCP

自定义提供商

接入 OpenAI 兼容服务,并配置协议、模型 ID、认证和上下文限制。

This page has not been translated into English yet. The original Chinese version is shown below.

服务未出现在 /connect 列表中时,可以通过 Other 添加自定义提供商。保存凭据和定义提供商是两步,不能只输入 Key 就期待模型自动出现。

保存身份并配置服务

运行 /connect,选择 Other,输入唯一 provider ID 和 Key。记下 ID,它必须与配置中的键一致。

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "myprovider": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "My model service",
      "options": {
        "baseURL": "https://api.example.com/v1"
      },
      "models": {
        "served-model-id": {
          "name": "My model"
        }
      }
    }
  }
}

这是需要替换 ID、域名与模型键的结构示例,不是一个现成服务。完成后在 /models 检查目录,再验证真实请求。

选择正确协议

npm 指定 AI SDK 包:@ai-sdk/openai-compatible 用于 /v1/chat/completions 兼容接口,@ai-sdk/openai 用于 /v1/responses。name 只是 UI 显示名,实际请求使用模型键与端点。

如果提供商只是表面兼容,仍需确认工具调用、流式响应和所需模型选项能正常工作;配置文件能解析不是接口兼容的充分证明。

凭据与自定义 Headers

如果不使用已保存认证,可以通过 options.apiKey 设置值,推荐结合 {env:...} 或 {file:...},见变量替换。options.headers 可配置每次请求发送的额外 headers。

不要把示例 Authorization 值写成真实共享配置;也不要同时填入互相矛盾的 Key 和自定义认证 header 后假定优先级。本页只描述官方支持字段,具体认证方式按服务要求配置。

模型容量

models.<id>.limit.context 和 limit.output 用于告知 OpenCode 上下文与输出容量,常规提供商从 Models.dev 获取这些信息。

自定义时使用服务真实支持的数值。增大配置不会扩大模型本身的能力;官方示例中的 200000 和 65536 不是所有兼容服务的默认限制。

模型不出现或调用失败

依次检查保存凭据时的 provider ID、配置 ID、SDK 包、baseURL、模型 ID 与权限。先修正协议和身份,再检查模型能力;不能用显示名替代服务实际返回的标识。