零成本将 ChatJimmy 转换为 OpenAI 兼容 API:cj2api 项目体验
痛点场景
当你需要在一个已有项目中替换 AI 后端时,最麻烦的不是改业务逻辑,而是对接各种非标准的 API 接口。ChatJimmy 虽然提供对话能力,但其接口格式与主流工具(LangChain、AnythingLLM、OpenWebUI 等)不兼容。cj2api 正是为解决这个"接口壁垒"而生——无需自建服务器,几分钟内在 Cloudflare Edge 上跑起一个兼容 OpenAI 的 API 网关。
核心技术原理
cj2api 本质是一个 HTTP 代理层,运行在 Cloudflare Worker 的 V8 隔离环境中。它做两件事:
- 接收 OpenAI 格式请求:
POST /v1/chat/completions,解析 JSON body 中的model、messages等字段 - 转换为 ChatJimmy 调用:重新构造请求,发往 ChatJimmy 原生接口,再将响应转回 OpenAI 格式
流式输出通过 Server-Sent Events 实现。Worker 端实时接收 ChatJimmy 的流式数据,逐块转发给客户端,延迟几乎为零。
架构优势
- 边缘部署:Cloudflare 在全球拥有 300+ 数据中心,请求会自动路由到最近节点,延迟通常 < 50ms
- 零成本:Worker 日请求 10 万次以内免费,个人项目完全够用
- 无服务器运维:不需管理虚拟机或容器,更新代码直接
wrangler deploy - 自带测试页:部署后访问
/test即可打开内置 UI,无需 Postman 即可调试
快速部署
确保已安装 Wrangler CLI(Node.js 环境):
npm install -g wrangler
克隆项目并部署:
git clone https://github.com/你的fork/cj2api.git
cd cj2api
wrangler login # 浏览器授权 Cloudflare 账户
wrangler deploy # 部署到 Edge
部署成功后,终端会输出 Worker URL,格式如 https://cj2api.你的子域名.workers.dev。现在就可以直接调用了:
curl https://cj2api.xxx.workers.dev/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer dummy-key" \
-d '{
"model": "jimmy",
"messages": [{"role": "user", "content": "你好"}],
"stream": true
}'
与同类工具的差异
类似项目还有 chatgpt-api-proxy、one-api 等,但它们通常需要自购服务器或付费容器。cj2api 的独特之处在于:
| 特性 | cj2api | 传统方案 |
|---|---|---|
| 部署成本 | 免费(Cloudflare Free) | ¥30-100/月 |
| 冷启动 | 无(Edge 执行) | 1-3 秒 |
| 自带测试页 | ✅ | ❌ |
| 最小依赖 | 仅 Worker | 需 Node + 数据库 |
适用场景
如果你有以下需求,cj2api 值得一试:
- 快速在开发环境中测试不同 AI 模型
- 将 AI 能力嵌入到不支持原生接口的工具中
- 个人项目或小团队不想承担服务器费用
项目仍在活跃维护中,核心代码简洁易懂,部署后可以根据需要魔改接口逻辑或添加鉴权机制。