cj2api:将 ChatJimmy 转换为 OpenAI 兼容 API 的零成本方案

技术痛点:想用 ChatJimmy,应用却只认 OpenAI 格式

当你找到一款不错的 AI 服务,却发现自己的项目只支持 OpenAI 的 API 格式——这大概是每个开发者都经历过的尴尬。

ChatJimmy 是一款有自己的接口规范的 AI 服务,但很多开源项目、SDK 和应用都是基于 OpenAI 的 /v1/chat/completions 格式开发的。直接对接意味着要改代码、做适配,麻烦且容易出错。

cj2api 就是为解决这个"接口不兼容"问题而生的。

项目简介

cj2api 是一个轻量级的转换层,运行在 Cloudflare Worker 上。它的核心功能只有一个:把 ChatJimmy 的请求/响应格式翻译成 OpenAI 兼容的形式

关键特性:

  • 零成本部署(利用 Cloudflare 免费额度)
  • 原生支持 SSE 流式输出
  • 自带 Web 测试页面
  • 单文件部署,配置简单

技术架构

项目采用标准的 Cloudflare Worker 架构,核心逻辑分为三层:

请求转换层:接收 OpenAI 格式的请求,提取 modelmessages 等字段,转换为 ChatJimmy 的接口格式。

代理转发层:使用 fetch API 将转换后的请求发送到 ChatJimmy 服务,支持流式和非流式两种模式。

响应转换层:将 ChatJimmy 的响应重新格式化为 OpenAI 的 chat/completions 标准格式。

// 核心代理逻辑示例
export default {
  async fetch(request, env) {
    const url = new URL(request.url);
    
    // 路由到 ChatJimmy
    const targetUrl = `https://api.chatjimmy.com/v1/chat/completions`;
    
    // 转发请求
    const response = await fetch(targetUrl, {
      method: 'POST',
      headers: { 'Content-Type': 'application/json' },
      body: JSON.stringify(await request.json())
    });
    
    return new Response(response.body, {
      headers: {
        'Content-Type': 'text/event-stream',
        ...Object.fromEntries(response.headers)
      }
    });
  }
};

部署流程

使用 Wrangler CLI 部署,整个过程不超过 5 分钟:

# 安装 Wrangler
npm install -g wrangler

# 克隆项目
git clone https://github.com/yourrepo/cj2api.git
cd cj2api

# 登录 Cloudflare
wrangler login

# 部署
wrangler deploy

部署完成后,你会获得一个 *.workers.dev 域名,API 端点即可直接使用。

使用示例

部署完成后,按以下方式调用:

curl 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
  }'

项目自带的测试页面(/test 路由)提供了可视化的调试界面,可直接在浏览器中发送请求、查看响应。

与同类工具的对比

特性 cj2api 商业 API 转换服务 自建代理服务器
成本 免费 按调用计费 服务器费用
部署难度 5 分钟 即用 数小时
维护成本
延迟 略高 取决于服务器

核心差异在于零成本开箱即用。对于个人项目、小团队或临时需求,不需要为每个月几十美元的服务器账单操心。

适用场景

cj2api 特别适合以下场景:

  • 快速验证:想测试 ChatJimmy 效果,但不想改现有代码
  • 个人项目:预算有限,不想为 API 转换付费
  • 边缘计算:需要低延迟的全球化 API 访问

如果你正在寻找一个简单、免费且可靠的接口转换方案,cj2api 值得一试。