零成本将 ChatJimmy 转换为 OpenAI 兼容 API:cj2api 项目体验

痛点场景

当你需要在一个已有项目中替换 AI 后端时,最麻烦的不是改业务逻辑,而是对接各种非标准的 API 接口。ChatJimmy 虽然提供对话能力,但其接口格式与主流工具(LangChain、AnythingLLM、OpenWebUI 等)不兼容。cj2api 正是为解决这个"接口壁垒"而生——无需自建服务器,几分钟内在 Cloudflare Edge 上跑起一个兼容 OpenAI 的 API 网关。

核心技术原理

cj2api 本质是一个 HTTP 代理层,运行在 Cloudflare Worker 的 V8 隔离环境中。它做两件事:

  1. 接收 OpenAI 格式请求POST /v1/chat/completions,解析 JSON body 中的 modelmessages 等字段
  2. 转换为 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-proxyone-api 等,但它们通常需要自购服务器或付费容器。cj2api 的独特之处在于:

特性 cj2api 传统方案
部署成本 免费(Cloudflare Free) ¥30-100/月
冷启动 无(Edge 执行) 1-3 秒
自带测试页
最小依赖 仅 Worker 需 Node + 数据库

适用场景

如果你有以下需求,cj2api 值得一试:

  • 快速在开发环境中测试不同 AI 模型
  • 将 AI 能力嵌入到不支持原生接口的工具中
  • 个人项目或小团队不想承担服务器费用

项目仍在活跃维护中,核心代码简洁易懂,部署后可以根据需要魔改接口逻辑或添加鉴权机制。