Qoder-2API-Go:把 Qoder 的 AI 服务桥接成 OpenAI 兼容 API

Qoder2API 的 Go 实现,将 Qoder 的 AI 服务完整重写为 OpenAI 兼容 API,单文件部署、支持流式输出与多模态。

Qoder2API 是社区里一个把 Qoder 的 AI 服务桥接成 OpenAI 兼容 API 的 Python 项目。Qoder-2API-Go 把它完整重写成 Go 实现,保留了全部核心功能,同时换来了更简单的部署方式和更低的资源占用。

核心思路:复用 Qoder 的在线 AI 服务作为后端,对外暴露 OpenAI 兼容的 /v1/chat/completions 接口,任何支持 OpenAI API 的客户端都能直接接入,无需为模型单独申请 Key。


为什么重写成 Go

原版 Python 实现功能完整,但对使用者来说有三个痛点:需要 Python 运行时、依赖安装繁琐、多实例部署吃力。Go 版本一次性解决了这些:

  • 单文件部署:编译为单一二进制,零外部依赖,复制到服务器就能跑
  • 资源占用低:常驻服务更省内存,适合跑在棒子、小主机这类低配设备上
  • 交叉编译友好:一条命令即可产出任意平台的二进制

核心特性

  • OpenAI API 兼容:支持 /v1/chat/completions/v1/models 端点,可无缝替换 OpenAI API。
  • 流式响应:支持 SSE 流式输出,打字机式体验不丢失。
  • 多模态支持:支持图片输入。
  • Tool Calls:支持函数调用。
  • 模型动态加载:自动从网关获取可用模型列表,不用手动维护。
  • Web 管理面板:中文界面(支持深浅模式),密码登录,支持 API 密钥管理、PAT 配置、模型查看、请求统计(总量 / 成功失败 / 按模型 / 近 24 小时趋势)。
  • 单文件部署:编译为单一二进制,零外部依赖。

支持的模型

显示名称 内部 Key 视觉
Qwen3.8-Max qmodel_preview 支持
Qwen3.7-Max qmodel_latest 不支持
Qwen3.7-Plus qmodel 支持
Qwen3.6-Flash q36fmodel 支持
DeepSeek-V4-Pro dmodel 不支持
DeepSeek-V4-Flash dfmodel 不支持
GLM-5.2 gm51model 不支持
Kimi-K2.7-Code kmodel 支持
MiniMax-M2.7 mmodel 不支持

以上为内置默认列表,实际可用模型以网关动态返回为准。


工作流程

1
2
3
4
5
6
客户端 → /v1/chat/completions(Bearer sk-xxx)
  → 密钥校验 + 请求体校验(上限 10 MiB)
  → 转换请求格式(RSA + AES 混合加密、MD5 签名)
  → 请求 Qoder 网关(模型动态加载)
  → 返回 OpenAI 兼容响应 / SSE 流
  → 写入请求统计(每 30 秒批量落盘)

收到 SIGINT/SIGTERM 会触发优雅关闭:停止接受新连接、等待在途请求(最长 15 秒)并完成统计最终落盘,避免数据丢失。


技术栈

项目 说明
语言 Go 1.22+
依赖 github.com/google/uuid,其余全部标准库
加密 RSA + AES 混合加密、MD5 签名
HTTP 标准库 net/http,SSE 流式响应
存储 JSON 文件持久化,线程安全读写
部署 单二进制 / Docker / 预编译 Release

部署与使用

三种方式任选:直接 go build 编译运行、Docker 部署,或从 Releases 下载预编译二进制。

启动后访问 http://localhost:10081/admin,用默认密码 password 登录,在「令牌」标签页填入 Qoder PAT,再创建 API 密钥即可调用:

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

默认密码仅用于首次登录,请立即在「设置」标签页修改。登录失败会按客户端 IP 触发指数退避限流,部署到公网时务必启用 HTTPS 反代。


安全设计

面向内网/个人使用,内置了多项加固措施:HTTP 超时抵御 slowloris、请求体上限防超大 payload 耗尽内存、登录指数退避限流、API Key 与管理密码恒定时间比较(crypto/subtle)、会话 Cookie HttpOnly + SameSite=Lax、XSS 防护、工具调用索引边界保护。


相关链接

本项目不隶属于 Qoder 或其关联公司,仅供学习交流使用。请勿用于绕付费、绕限制或任何可能损害服务提供方利益的行为。

使用 Hugo 构建
主题 StackJimmy 设计