热榜
#AI 工程

jasonxu114514/opencode2api

把 OpenCode Zen 的三种 API 协议统一成 OpenAI/Anthropic 兼容入口,并管理上游 key 与代理池的自建网关。

1,266
223
Go
GPL-3.0
上线 2 个月

解决什么问题

OpenCode Zen(以及 Go 档)提供的接口形态和主流客户端预期并不完全一致:想接 Chat Completions、Responses 或 Anthropic Messages 的 SDK,往往要各写一套适配,同时还要管多把上游 key、代理和档位偏好。opencode2api 是一个 Go 服务,夹在客户端与 Zen 之间做协议翻译,并替你管理上游凭据。

有什么不同

常见做法是用厂商自带客户端(只支持一种协议),或者用 one-api 这类通用网关,但后者默认上游是 OpenAI 兼容的。这个项目把 Zen/Go 当作一等上游:Zen 与 Go 各自独立的 key 池、可选的匿名 Zen 访问、按连接选择 direct/HTTP(S)/SOCKS5/5H 代理、会话亲和,以及带失败回退的粘性模型组。另外它把管理面单独开在另一个端口,配置编辑、Playground、配额看板、实时日志全打包进同一个二进制,不依赖 Node 运行时或数据库。

适合谁

已经拿到(或打算申请)Zen/Go 访问权限、想把现有 OpenAI 或 Anthropic 客户端直接指过来的开发者和小组,尤其是需要在一台机器上池化多把 key、走代理的场景。只想做 OpenAI 到 OpenAI 的简单转发、需要 embeddings/文件上传/图像生成接口、或者必须依赖有商业支持的多上游服务的人,应该看别的方案——README 明确说不实现这些路由。

上手成本

需要 Go 1.24 以上自行编译,或用官方 GHCR 镜像;配置目录必须可写。config.example.json 里的 server key、上游 key 和 WebUI 密码都是占位值,必须替换。WebUI 默认监听所有网卡,需要限制访问或套反向代理。许可证是 GPL-3.0,如果你要嵌入或再分发需要留意。跨协议桥接明确是有损的:比如 JSON 输出约束和 seed 转发到 Anthropic 时会丢掉,不支持的内容类型可能直接被拒。README 对配置写得很细,但对上游失败后的重试细节和语义说明偏薄。

点评

这是一个只有 71 天、已经 1264 星的项目,一周内在 Go 板块涨了 386 星,更像踩中特定场景的短期热度,而不是多年打磨的结果。范围窄、对边界坦诚,这点值得肯定;主要顾虑是 GPL 许可证和单人维护。如果你本来就在 Zen 生态里,想要一个二进制同时做协议归一和 key 池,值得试;但别在没有锁版本、没读过路由代码的情况下把它当关键基础设施。

本文由 AI 根据项目 README 生成,更新于 2026年10月24日,以项目官方文档为准。