社区里已有多个把 CodeBuddy 的 AI 服务桥接成 OpenAI 兼容 API 的 Python 项目,Buddy-2API-Go 用 Go 把它们完整重写了一遍,并在单账号的使用场景下把体验打磨得更顺手:一份凭证、一个二进制、一个内置 Web 面板,开箱即用。

核心思路:用 CodeBuddy / WorkBuddy 的在线 AI 服务作为后端(默认中国端点 copilot.tencent.com,可切换国际端点),对外暴露 OpenAI 兼容的 /v1/chat/completions 接口,任何支持 OpenAI API 的客户端都能直接接入。


为什么重写成 Go

原版 Python 实现功能完整,但部署依赖 Python 运行时,多实例更吃力。Go 版本把这些痛点一次解决:

  • 单文件部署:go:embed 把前端面板打进同一个二进制,零外部依赖,复制到服务器就能跑
  • 资源占用低:SQLite 用 modernc.org/sqlite(纯 Go、无 cgo),交叉编译随便出任意平台
  • 依赖极简:仅 chi、modernc.org/sqlite、cron/v3 三个非标准库依赖

项目定位为个人单账号使用,明确不接受「号池」(多账号池 / 多凭证轮询)相关的功能,天然与「轻量、自用」的方向一致。


核心特性

  • OpenAI API 兼容:/v1/chat/completions(流式透传 / 非流式聚合)与 /v1/models 端点,可无缝替换 OpenAI API。
  • 模型动态加载:模型列表从上游 /v3/config 实时拉取并缓存,cn / global 两套端点自动适配,不用手动维护。
  • OAuth 设备流登录:管理后台扫码授权即可绑定账号,token 过期自动刷新,401 时刷新后重试一次。
  • 多 API Key 管理:随机 / 自定义 Key,支持备注、启停、使用量统计。
  • 官方余额查询:实时拉取额度包明细,本地缓存,标注到期 / 临期。
  • 每日自动签到:独立开关,cron 定时或时间范围内随机二选一,失败重试 + 末班兜底(23:50 补签),也可手动领取。
  • 请求仪表盘:请求量、Token、模型分布、Key 用量等聚合统计。
  • 指纹头伪装:出站请求复刻官方 CLI 指纹头,且 chat 请求绝不携带 refresh_token。

工作流程

1
2
3
4
5
6
客户端 → /v1/chat/completions(Bearer sk-xxx)
  → API Key 校验(常量时间比较)
  → 转换请求格式,复刻官方 CLI 指纹头
  → 请求 CodeBuddy 网关(cn / global 自动适配)
  → 返回 OpenAI 兼容响应 / SSE 流式透传
  → 写入请求日志(仅元信息:模型、token 数、耗时、状态码)

项目不存储对话内容,数据库只保存元信息,日志也不记录请求 / 响应正文。


技术栈

项目说明
语言Go 1.25+
依赖仅 chi、modernc.org/sqlite(纯 Go 无 cgo)、cron/v3
存储SQLite(API Keys / 请求日志 / 缓存)
前端go:embed 单 HTML,内嵌 Alpine.js + 手写 SVG 图表,无外部依赖
安全bcrypt 密码哈希、常量时间 API Key 比对
部署单二进制 / Docker / 预编译 Release

部署与使用

三种方式任选:下载 Releases 预编译二进制(Linux / Windows / macOS 全平台)、Docker 部署(ghcr.io/echoping07/buddy-2api-go),或 Go 1.25+ 源码构建。

启动后访问管理面板(默认 http://127.0.0.1:10082),默认密码 password 登录后,在「账号」页扫码完成 OAuth 授权,「密钥」页创建 API Key,即可在任意 OpenAI 兼容客户端中使用:

1
2
3
4
curl http://127.0.0.1:10082/v1/chat/completions \
  -H "Authorization: Bearer sk-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","stream":true,"messages":[{"role":"user","content":"你好"}]}'

默认密码仅用于首次登录,请尽快在管理后台修改(或通过环境变量 BUDDY2API_ADMIN_PASSWORD 指定)。二进制直跑默认只监听 127.0.0.1,公网部署务必放到反代后面并加 TLS。


安全设计

面向个人使用,内置了多项加固措施:管理密码 bcrypt 哈希存储、API Key 常量时间比对、日志只记元信息不记正文、chat 请求绝不携带 refresh_token、二进制默认仅监听本机回环地址。


相关链接

本项目仅供学习交流使用。请勿用于绕付费、绕限制或任何可能损害服务提供方利益的行为。