cj2api 实战:用 Cloudflare Worker 将 ChatJimmy 转换为 OpenAI 兼容 API

当你的应用需要 ChatJimmy,却遇到 API 不兼容

想象这个场景:你的产品已经对接了 OpenAI API,整个架构围绕 /v1/chat/completions 格式设计。现在产品经理说要在特定场景切换到 ChatJimmy——但 ChatJimmy 的 API 格式完全不同,你需要改大量代码,还要处理认证、错误处理各种细节。

有没有一种方案,能让 ChatJimmy "伪装"成 OpenAI API?

cj2api 正是为解决这个问题而生。

核心技术原理

cj2api 本质是一个协议转换层,运行在 Cloudflare Worker 环境中。它的核心逻辑非常清晰:

  1. 接收符合 OpenAI API 规范的请求
  2. 将请求参数映射为 ChatJimmy API 格式
  3. 调用 ChatJimmy 接口获取响应
  4. 将响应重新格式化为 OpenAI 兼容格式返回
// 核心转换逻辑示意
export default {
  async fetch(request) {
    const openaiRequest = await request.json();
    
    // 映射到 ChatJimmy 格式
    const chatJimmyPayload = {
      model: openaiRequest.model,
      messages: openaiRequest.messages,
      stream: openaiRequest.stream
    };
    
    // 调用 ChatJimmy
    const response = await fetch(CHATJIMMY_ENDPOINT, {
      method: 'POST',
      headers: { 'Authorization': `Bearer ${API_KEY}` },
      body: JSON.stringify(chatJimmyPayload)
    });
    
    return formatAsOpenAI(response, openaiRequest.stream);
  }
}

Cloudflare Worker 选择了 V8 隔离环境而非 Node.js,这意味着更快的冷启动和更低的内存占用。对于轻量级 API 代理场景,这种选择恰到好处。

零成本部署的秘密

Cloudflare Workers 有每日 10 万次免费请求额度,对于个人项目或小规模使用几乎等同于免费。这让 cj2api 真正实现了零成本部署。

部署流程只需三步:

# 1. 安装 Wrangler CLI
npm install -g wrangler

# 2. 克隆项目
git clone https://github.com/your-repo/cj2api.git
cd cj2api

# 3. 一键部署
wrangler deploy

部署完成后,你会获得一个 *.workers.dev 域名,立即可用的 OpenAI 兼容 API 就诞生了。

流式输出:技术细节与体验

对于需要实时展示 AI 回复的场景,流式输出(Server-Sent Events)至关重要。cj2api 完整实现了这一能力:

curl -X POST 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": "你好"}],
    "stream": true
  }'

响应会像真正的 OpenAI API 一样,以 data: {...} 格式逐字推送。

项目自带测试页面(/test 路由),你可以直接在浏览器中验证流式效果,无需写代码调用。

与同类工具的差异

特性 cj2api 传统代理服务
部署成本 免费(Cloudflare 额度) 需要服务器费用
冷启动 < 50ms(V8 隔离) 数秒(容器启动)
全球加速 Cloudflare 边缘节点 单地域
维护成本 几乎为零 需要运维监控

对于只是想快速让 ChatJimmy 适配现有 OpenAI 生态的开发者,cj2api 提供了一个零运维、零成本的捷径。

适用场景

cj2api 特别适合以下情况:

  • 快速原型验证:不想在 API 适配层浪费时间的开发阶段
  • 多模型切换:同一套代码需要兼容 OpenAI 和 ChatJimmy
  • 边缘计算场景:需要在靠近用户的节点处理请求
  • 成本敏感项目:学生、个人开发者或初创团队

如果你的团队已经有成熟的 API 网关方案,可能不需要这个工具。但对于轻量级需求,cj2api 的简洁设计值得一试。

项目地址:GitHub 搜索 cj2api,Star 数虽不高(24),但胜在实用。