零成本部署 cj2api:让 ChatJimmy 兼容 OpenAI API 的 Cloudflare Worker 方案

痛点:想用 ChatJimmy,代码却只认 OpenAI 格式

很多团队在 AI 项目开发中会遇到这样的尴尬:手里的 ChatJimmy 用起来很顺手,但现有代码库、代理工具、甚至 LangChain 都只支持 OpenAI 的 API 格式。换一套成本太高,继续用又得魔改——直到我发现了 cj2api 这个开源项目。

cj2api 是一个跑在 Cloudflare Worker 上的轻量级服务,它的唯一使命就是把 ChatJimmy 的请求/响应格式,翻译成 OpenAI 兼容的样子。

核心原理:请求转换与响应适配

cj2api 的工作流程很清晰:

  1. 接收 OpenAI 格式的请求 — 你的代码调用 /v1/chat/completions 时发送的标准 JSON
  2. 转换为 ChatJimmy 格式 — 重新组装请求体,适配 ChatJimmy 的接口规范
  3. 转发并获取响应 — 通过 Cloudflare 的全球边缘网络请求 ChatJimmy
  4. 流式处理 — 将 ChatJimmy 的流式响应实时转发给客户端

关键在于流式输出的处理。cj2api 实现了 Server-Sent Events (SSE) 的解析和重组,确保 streaming 模式下字一个一个字蹦出来的体验不会断。

架构特点:为什么选 Cloudflare Worker

特性 说明
零成本 Cloudflare Worker 每日 10 万次免费请求,足够个人和小型项目
全球边缘部署 请求自动路由到最近节点,延迟低
无服务器运维 不需要买机器、搭环境、改配置
自带测试页 部署后可直接在 Workers 域名上测试

和传统 Node.js 服务相比,Cloudflare Worker 不需要管理服务器、不需要配置 Nginx、也没有流量费用的担忧。

部署步骤:三分钟上手

确保本地安装了 Wrangler CLI:

npm install -g wrangler

克隆并部署 cj2api:

git clone https://github.com/your-repo/cj2api.git
cd cj2api
wrangler deploy

部署成功后,你会得到一个 .workers.dev 域名。打开它,页面自带一个交互式测试工具,输入 ChatJimmy 的 API Key,直接在浏览器里发一条消息试试效果。

对比同类工具

类似的方案还有用 Node.js 搭代理服务、用 Python FastAPI 做中转。相比之下,cj2api 的优势在于:

  • 开箱即用:不需要写一行代码,改配置文件就能跑
  • 资源占用极低:一个 Worker 实例只有 128MB 内存
  • 自动支持流式:不需要自己处理 SSE 流

缺点是目前主要针对 /v1/chat/completions 端点,复杂的多模型路由场景暂不支持。

适用场景

cj2api 适合以下情况:

  • 个人开发者想低成本实验 ChatJimmy
  • 现有 OpenAI SDK 的遗留代码需要接入 ChatJimmy
  • 需要在多个 AI 服务间快速切换做对比测试

如果你已经在用 Cloudflare Workers 做其他事情(比如网站加速),完全可以顺手把这个 Worker 也加上,不额外花钱。

项目地址在 GitHub 有 26 颗星,算是个小众但实用的工具。有需求的朋友可以去看看。