- 新增 AI 监控插件 (ai-monitor),支持全链路协议转换监控 - 捕获 AI 接口请求参数(转换前后) - 监控流式和非流式响应(转换前后) - 支持内部请求转换监控 - 新增日志清空功能,支持前端和服务器端同时清空当日日志 - 默认禁用 api-potluck 和 ai-monitor 插件 - 更新多语言文档和配置示例 - 优化提供商适配器开发指南
111 lines
4.3 KiB
Markdown
111 lines
4.3 KiB
Markdown
# OpenCode 配置示例及重点解释
|
||
|
||
本文档提供了一个典型的 `opencode` 配置文件示例,并对其中的关键配置项进行了详细解释,帮助您快速理解如何配置不同的 AI 服务提供商。
|
||
|
||
## 配置示例 (`config.json`)
|
||
|
||
```json
|
||
{
|
||
"plugin": [],
|
||
"provider": {
|
||
"kiro": {
|
||
"npm": "@ai-sdk/anthropic",
|
||
"name": "AIClient2API-kiro",
|
||
"options": {
|
||
"baseURL": "http://localhost:3000/claude-kiro-oauth/v1",
|
||
"apiKey": "123456"
|
||
},
|
||
"models": {
|
||
"claude-opus-4-5": {
|
||
"name": "Claude Opus 4.5 Kiro"
|
||
},
|
||
"claude-sonnet-4-5-20250929": {
|
||
"name": "Claude Sonnet 4.5 Kiro"
|
||
}
|
||
}
|
||
},
|
||
"qwen": {
|
||
"npm": "@ai-sdk/openai-compatible",
|
||
"name": "AIClient2API-qwen",
|
||
"options": {
|
||
"baseURL": "http://localhost:3000/openai-qwen-oauth/v1",
|
||
"apiKey": "123456"
|
||
},
|
||
"models": {
|
||
"qwen3-coder-plus": {
|
||
"name": "Qwen3 Coder Plus Openai "
|
||
}
|
||
}
|
||
},
|
||
"gemini-antigravity": {
|
||
"npm": "@ai-sdk/google",
|
||
"name": "AIClient2API-antigravity",
|
||
"options": {
|
||
"baseURL": "http://localhost:3000/gemini-antigravity/v1beta",
|
||
"apiKey": "123456"
|
||
},
|
||
"models": {
|
||
"gemini-2.5-flash-preview": {
|
||
"name": "gemini-2.5-flash-antigravity"
|
||
},
|
||
"gemini-3-flash-preview": {
|
||
"name": "gemini-3-flash-antigravity"
|
||
},
|
||
"gemini-3-pro-preview": {
|
||
"name": "gemini-3-pro-antigravity"
|
||
}
|
||
}
|
||
},
|
||
"gemini-cli": {
|
||
"npm": "@ai-sdk/google",
|
||
"name": "AIClient2API-geminicli",
|
||
"options": {
|
||
"baseURL": "http://localhost:3000/v1beta",
|
||
"apiKey": "123456"
|
||
},
|
||
"models": {
|
||
"gemini-2.5-flash-preview": {
|
||
"name": "gemini-2.5-flash-geminicli"
|
||
},
|
||
"gemini-3-flash-preview": {
|
||
"name": "gemini-3-flash-geminicli"
|
||
},
|
||
"gemini-3-pro-preview": {
|
||
"name": "gemini-3-pro-geminicli"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
"$schema": "https://opencode.ai/config.json"
|
||
}
|
||
```
|
||
|
||
## 配置重点解释
|
||
|
||
### 1. `provider` (服务提供商配置)
|
||
这是配置的核心部分,每个键(如 `kiro`, `qwen`, `gemini-cli`)代表一个独立的服务提供商实例。
|
||
|
||
* **`npm` (SDK 适配器)**:
|
||
* 指定底层使用的 AI SDK。例如:
|
||
* `@ai-sdk/anthropic`: 用于 Anthropic (Claude) 系列模型。
|
||
* `@ai-sdk/openai-compatible`: 用于兼容 OpenAI 接口标准的模型(如通义千问 Qwen)。
|
||
* `@ai-sdk/google`: 用于 Google Gemini 系列模型。
|
||
* **重点**: 必须确保 `npm` 字段与您要使用的模型协议匹配,否则会导致连接失败。
|
||
|
||
* **`options` (连接参数)**:
|
||
* **`baseURL`**: API 的访问地址。在示例中,许多是内网或中转地址(如 `http://localhost:3000/...`)。
|
||
* **`apiKey`**: 访问 API 所需的身份验证密钥。
|
||
|
||
* **`models` (模型映射)**:
|
||
* 定义该提供商下可用的模型列表。
|
||
* **键名 (ID)**: 实际调用时使用的模型 ID(例如 `claude-opus-4-5`)。
|
||
* **`name`**: 在 UI 界面上显示的友好名称。
|
||
* **重点**: 这里的键名必须与服务端实际支持的模型标识符一致。
|
||
|
||
### 2. 区分同类型的不同实例
|
||
在示例中,有两个 `gemini` 相关的配置:`gemini-antigravity` 和 `gemini-cli`。
|
||
* 它们虽然都使用 `@ai-sdk/google`,但通过不同的 `baseURL` 区分。
|
||
* 这允许您在同一配置中接入来自不同网关或环境的同类模型,并通过自定义的 `name`(如 `gemini-2.5-flash-antigravity` vs `gemini-2.5-flash-geminicli`)在前端进行区分。
|
||
|
||
### 3. `$schema`
|
||
* 用于提供 JSON 模式验证。在支持的编辑器(如 VS Code)中,它可以为您提供自动补全和实时错误检查。
|