cj2api 实战:将 ChatJimmy 接入 OpenAI 生态的零成本方案
痛点场景
如果你在用 Jimmy Chen 的 AI 服务(ChatJimmy),但项目代码已经基于 OpenAI SDK 编写,改造成本会让人头疼。更麻烦的是,某些边缘计算场景下,你只想用 Cloudflare Worker 的免费额度跑个小工具,却不想维护额外的 API 转发服务。
cj2api 正是为解决这个矛盾而生:它是一个跑在 Cloudflare Worker 上的轻量级代理,将 ChatJimmy 的 API 响应转换为 OpenAI 兼容格式。
核心原理
项目本质是一个 HTTP 代理层,工作流程如下:
- 接收 OpenAI 格式的请求(
/v1/chat/completions) - 将请求体转换为 ChatJimmy 期望的格式
- 转发给 ChatJimmy API
- 将响应转回 OpenAI 兼容格式返回
关键技术点在于流式输出的处理。ChatJimmy 的流式响应需要通过 Server-Sent Events(SSE)解析,再重新组成为 OpenAI 的 data: 前缀格式。这部分代码是项目的核心价值所在。
部署步骤
部署只需几步,零成本使用 Cloudflare Workers 免费额度:
# 克隆项目
git clone https://github.com/your-repo/cj2api.git
cd cj2api
# 安装 Wrangler CLI(如未安装)
npm install -g wrangler
# 登录 Cloudflare
wrangler login
# 部署
wrangler deploy
部署完成后,你会得到一个 .workers.dev 域名,直接可用于生产环境。
配置与使用
项目支持通过环境变量配置 ChatJimmy 的 API 地址和密钥:
// wrangler.toml 或 Cloudflare 控制台设置
CJ_API_KEY = "your-chatjimmy-api-key"
CJ_API_BASE = "https://api.chatjimmy.com"
调用方式与 OpenAI API 完全一致:
curl https://your-worker.workers.dev/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer your-chatjimmy-key" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [{"role": "user", "content": "Hello"}],
"stream": true
}'
独特优势
相比自建代理服务,cj2api 有几个明显优势:
- 零成本:Cloudflare Workers 每日 10 万次免费请求
- 无服务器运维:自动扩缩容,无需管理基础设施
- 内置测试页:访问 Worker 根路径即可打开交互式测试界面
- 边缘延迟低:请求就近处理,用户体验更好
适用场景
这个方案特别适合:快速原型验证阶段不想投入 API 网关成本、需要在边缘节点调用 AI 能力、已有 OpenAI SDK 代码希望快速切换 provider 的开发者。
项目代码量小、结构清晰,也适合作为学习 Cloudflare Worker + AI API 集成的参考实现。