cj2api 零成本部署指南:将非 OpenAI AI 服务转换为兼容 API

当工具链只认 OpenAI 格式时

开发团队引入新 AI 模型,最头疼的不是模型本身的能力,而是 API 格式不统一。内部系统、第三方工具大多针对 OpenAI API 格式开发,换一个模型就意味着要写一堆适配代码。

比如你正在使用 ChatJimmy,觉得它响应速度快、价格便宜,但现有的 LangChain 链式调用、现成的 AI 代理框架都不支持它的私有格式。改代码太麻烦,继续用又得放弃其他工具链的优势。

cj2api 正是为解决这个矛盾而生。

什么是 cj2api

cj2api 是一个将 ChatJimmy 转换为 OpenAI 兼容 API 的轻量级工具,运行在 Cloudflare Worker 环境中。项目地址为 https://github.com/chatjimmy/cj2api

它的核心逻辑并不复杂:接收 OpenAI 格式的请求,转换为 ChatJimmy 能理解的协议,再以标准 OpenAI 格式返回响应。流式输出(Server-Sent Events)也是原生支持的,不需要额外配置。

由于运行在 Cloudflare Worker 上,项目天然具备全球低延迟、高可用的特性。

技术原理与架构

从架构上看,cj2api 是一个协议转换中间层。数据流向可以这样理解:

客户端 → [OpenAI 格式] → cj2api → [ChatJimmy 格式] → ChatJimmy 服务
客户端 ← [OpenAI 格式] ← cj2api ← [ChatJimmy 格式] ← ChatJimmy 服务

关键实现涉及三个核心环节。

请求转换:将 /v1/chat/completions 端点的请求体(messages、temperature、max_tokens 等)映射为 ChatJimmy 的接口格式。这个过程本质上是字段名的对应关系,比如 OpenAI 的 model 参数如何传递,ChatJimmy 是否需要额外字段等。

流式输出:通过 TransformStream 将 ChatJimmy 的流式响应转换为 OpenAI 的 data: {...}\n\n 格式。这是实现无缝兼容的关键——调用方无需关心后端实际使用的是什么服务,响应格式完全透明。

认证处理:从请求头提取 OpenAI API Key,转换为 ChatJimmy 要求的认证方式。用户的 API Key 不需要暴露给外部,直接在 Worker 内部完成替换。

零成本部署

Cloudflare Workers 每月提供 10 万次免费请求额度,个人使用或小规模项目完全够用。部署过程只需三步。

第一步,安装 Wrangler CLI:

npm install -g wrangler

第二步,登录 Cloudflare 账号:

wrangler login

浏览器会自动打开 Cloudflare 授权页面,点击授权即可。授权完成后命令行会显示登录成功。

第三步,克隆项目并部署:

git clone https://github.com/chatjimmy/cj2api.git
cd cj2api
wrangler deploy

部署完成后,Wrangler 会输出一个 *.workers.dev 域名,这就是你的新 API 端点。整个过程通常不超过 2 分钟。

如果你已经有自定义域名,也可以将它绑定到 Worker 上,这样可以直接使用自己的域名调用 API。

快速验证

cj2api 自带测试页面,直接访问 Workers URL 就能打开交互式测试界面,无需安装任何客户端。

用 curl 测试非流式请求:

curl -X POST https://your-worker.workers.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

测试流式输出,只需加一个 stream: true 参数:

curl -X POST https://your-worker.workers.dev/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello"}],
    "stream": true
  }'

响应格式完全兼容 OpenAI SDK,替换代码中的 base URL 即可。现有使用 OpenAI 的代码无需修改,只要把 baseURLhttps://api.openai.com/v1 改成你的 Worker 地址就行。

与同类工具对比

对于有类似需求的用户,市面上还有 OneAPI 和 AIProxy 两个选择。它们的功能对比如下:

特性 cj2api OneAPI AIProxy
部署复杂度 低(一键部署) 高(需自建服务器)
成本 零成本 服务器费用 订阅制
协议转换 支持 支持 支持
流式输出 支持 支持 支持
多后端支持 单一 多个 多个

如果你只需要让 ChatJimmy 兼容 OpenAI 生态,cj2api 的轻量方案比复杂的多后端网关更合适。上手门槛低、维护成本低、功能刚好够用,这是它的核心优势。

适用场景

cj2api 适合以下几类场景:

快速集成:现有系统只认 OpenAI 格式,想低成本试水 ChatJimmy。可以直接在调用代码中更换 base URL,不需要任何服务端改造。

原型开发:开发阶段需要快速切换 AI 模型进行对比测试。一个命令部署,一个 URL 替换,就能切换不同的 AI 服务。

边缘部署:希望在靠近用户的边缘节点运行,减少网络延迟。Cloudflare Worker 的全球节点覆盖恰好满足这一点。

结语

如果你正在寻找一个简单、零成本的方式让 ChatJimmy 融入现有 AI 开发栈,cj2api 值得一试。直接访问 GitHub 仓库,按照文档操作,5 分钟内就能跑起来一个可用的 API 端点。