概述
OpenCode Go 是一个低订阅费(首月 $5,之后 $10/月)的 API 服务,提供经过筛选的开源编程模型,包括 DeepSeek V4 Flash/Pro、Kimi K2.7 Code、Qwen3.7 Max/Plus、GLM-5.1、MiniMax M3 等。
其 API 完全兼容 OpenAI 格式,终点为 https://opencode.ai/zen/go/v1/chat/completions。建议 OpenWiki 将其加入 AI Provider 列表,让订阅了 opencode-go 的用户可以直接在设置中选择使用。
需要改什么
1. 前端 — src/stores/settingsStore.ts
a) AIProvider 类型增加 "opencode-go"
export type AIProvider = "anthropic" | "openai" | "openrouter" | "dashscope" | "google" | "minimax" | "deepseek" | "ollama" | "lmstudio" | "custom" | "opencode-go";
b) 添加 Provider 标签
export const PROVIDER_LABELS: Record<AIProvider, string> = {
// ... 已有项
"opencode-go": "OpenCode Go",
};
c) 添加模型列表
opencode-go 目前支持的模型(OpenAI 兼容接口):
"opencode-go": [
"deepseek-v4-flash", // 便宜快,$0.14/$0.28 per 1M tokens
"deepseek-v4-pro", // 深度思考,$1.74/$3.48
"kimi-k2.7-code", // Kimi 编程版
"kimi-k2.6", // Kimi 通用版
"glm-5.1", // 智谱最新
"glm-5", // 智谱
"qwen3.7-max", // 通义千问旗舰
"qwen3.7-plus", // 通义千问增强
"qwen3.6-plus", // 通义千问
"mimo-v2.5", // MiniMax 超便宜
"mimo-v2.5-pro", // MiniMax 专业版
"minimax-m3", // MiniMax 最新(Anthropic 接口)
"minimax-m2.7", // MiniMax
],
d) 注意 MiniMax 系列
MiniMax M3 / M2.7 使用 Anthropic 兼容接口(https://opencode.ai/zen/go/v1/messages),其他模型使用 OpenAI 兼容接口。可以在前端按模型名区分 endpoint 路线,或者先只加 OpenAI 路线的模型,把 MiniMax 留到后续。
2. 后端 — src-tauri/src/ai/client.rs
a) AiProvider 增加 OpenCodeGo 变体
#[derive(Debug, Clone)]
pub enum AiProvider {
Anthropic,
OpenAi,
OpenRouter,
OpenCodeGo,
}
impl AiProvider {
pub fn from_str(s: &str) -> Self {
match s.to_lowercase().as_str() {
"openai" => AiProvider::OpenAi,
"openrouter" => AiProvider::OpenRouter,
"opencode-go" => AiProvider::OpenCodeGo,
_ => AiProvider::Anthropic,
}
}
}
b) 实现 call_opencode_go 方法
由于 opencode-go 使用 OpenAI 兼容格式,可以直接复用 call_openai 的请求/响应结构,只需改 URL:
async fn call_opencode_go(&self, system_prompt: &str, user_message: &str) -> Result<AiResponse, String> {
let url = "https://opencode.ai/zen/go/v1/chat/completions";
// 请求体与 call_openai 完全相同(OpenAiRequest)
// 只需修改 base_url 和 headers
}
建议进一步抽象:将 OpenAI 兼容的调用统一为一个方法,传入 base_url 参数,避免代码重复。
3. 后端 — src-tauri/src/ai/attention_analyzer.rs
a) AnalysisProvider 增加 OpenCodeGo 变体
pub enum AnalysisProvider {
Anthropic,
OpenAi,
OpenRouter,
DashScope,
MiniMax,
DeepSeek,
OpenCodeGo,
Custom { base_url: String },
// ...
}
b) API 调用
OpenCodeGo 走 OpenAI 兼容路线,直接使用现有的 call_analysis_api 中 OpenAI 的逻辑,将 endpoint 改为 https://opencode.ai/zen/go/v1/chat/completions。
4. API 密钥格式
opencode-go 的密钥从 OpenCode Zen 获取,格式以 sk- 开头,与现有 OpenAI 密钥的正则匹配范围兼容。
实现参考
- OpenCode Go 文档
- 现有
OpenRouter 实现(client.rs)可作为模板,两者都是 OpenAI 兼容 API + 自定义 base_url
- 现有
DashScope 前端配置(settingsStore.ts)可作为新增 provider 的参考模板
备注
这个改动影响范围小(约 3 个文件),核心逻辑已有现成实现可复用。建议的优先级:① client.rs 加调用 → ② settingsStore.ts 加 UI → ③ attention_analyzer.rs 补全支持。
概述
OpenCode Go 是一个低订阅费(首月 $5,之后 $10/月)的 API 服务,提供经过筛选的开源编程模型,包括 DeepSeek V4 Flash/Pro、Kimi K2.7 Code、Qwen3.7 Max/Plus、GLM-5.1、MiniMax M3 等。
其 API 完全兼容 OpenAI 格式,终点为
https://opencode.ai/zen/go/v1/chat/completions。建议 OpenWiki 将其加入 AI Provider 列表,让订阅了 opencode-go 的用户可以直接在设置中选择使用。需要改什么
1. 前端 —
src/stores/settingsStore.tsa) AIProvider 类型增加
"opencode-go"b) 添加 Provider 标签
c) 添加模型列表
opencode-go 目前支持的模型(OpenAI 兼容接口):
d) 注意 MiniMax 系列
MiniMax M3 / M2.7 使用 Anthropic 兼容接口(
https://opencode.ai/zen/go/v1/messages),其他模型使用 OpenAI 兼容接口。可以在前端按模型名区分 endpoint 路线,或者先只加 OpenAI 路线的模型,把 MiniMax 留到后续。2. 后端 —
src-tauri/src/ai/client.rsa) AiProvider 增加 OpenCodeGo 变体
b) 实现
call_opencode_go方法由于 opencode-go 使用 OpenAI 兼容格式,可以直接复用
call_openai的请求/响应结构,只需改 URL:建议进一步抽象:将 OpenAI 兼容的调用统一为一个方法,传入 base_url 参数,避免代码重复。
3. 后端 —
src-tauri/src/ai/attention_analyzer.rsa) AnalysisProvider 增加 OpenCodeGo 变体
b) API 调用
OpenCodeGo 走 OpenAI 兼容路线,直接使用现有的
call_analysis_api中 OpenAI 的逻辑,将 endpoint 改为https://opencode.ai/zen/go/v1/chat/completions。4. API 密钥格式
opencode-go 的密钥从 OpenCode Zen 获取,格式以
sk-开头,与现有 OpenAI 密钥的正则匹配范围兼容。实现参考
OpenRouter实现(client.rs)可作为模板,两者都是 OpenAI 兼容 API + 自定义 base_urlDashScope前端配置(settingsStore.ts)可作为新增 provider 的参考模板备注
这个改动影响范围小(约 3 个文件),核心逻辑已有现成实现可复用。建议的优先级:① client.rs 加调用 → ② settingsStore.ts 加 UI → ③ attention_analyzer.rs 补全支持。