cj2api 完整指南:零成本将 ChatJimmy 转换为 OpenAI 兼容 API

痛点:现有代码不想重写,ChatJimmy 怎么接入

很多团队在项目中已经深度使用 OpenAI 的 SDK 和 API 格式。当想尝试 ChatJimmy 时,却发现它没有提供兼容的 API 接口——HTTP 调用代码、LangChain 集成、基于 OpenAI 格式的中间件,全部需要改造。

cj2api 正是为解决这个问题而生。这是一个轻量级的适配层,部署在 Cloudflare Worker 上,把 ChatJimmy 的请求/响应格式转换为标准的 OpenAI 兼容格式。

技术原理

cj2api 的请求处理流程如下:

客户端请求 (OpenAI 格式)
       ↓
Cloudflare Worker 接收请求
       ↓
解析并转换为 ChatJimmy 格式
       ↓
转发给 ChatJimmy 服务
       ↓
接收响应,转为流式 SSE
       ↓
返回给客户端

Worker 运行在 Cloudflare 的 V8 隔离环境中,响应延迟低,且在全球边缘节点部署,用户访问时自动路由到最近节点。

为什么选 Cloudflare Worker

零成本:Cloudflare Workers 每日 10 万次免费请求额度,个人项目或小团队使用绑绑有余。

无需服务器:传统方案需要购买 VPS、配置环境、申请域名。Worker 只需一个 Cloudflare 账号,几分钟即可上线。

全球低延迟:请求自动路由到最近边缘节点,适合对响应速度敏感的 AI 应用。

开箱即用的 HTTPS:Worker 提供免费 SSL 证书,API 调用更安全可靠。

部署步骤

部署 cj2api 只需几个步骤:

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

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

# 3. 配置环境变量
wrangler secret put CHAT_JIMMY_API_KEY

# 4. 部署
wrangler deploy

部署完成后会获得一个 *.workers.dev 域名,直接可用于 API 调用。环境变量 CHAT_JIMMY_API_KEY 是你的 ChatJimmy 密钥,建议通过 wrangler secret put 安全存储,避免明文暴露。

代码示例:Python SDK

部署完成后,现有代码几乎不需要改动:

from openai import OpenAI

client = OpenAI(
    api_key="any-key",  # 可以填写任意值,实际不验证
    base_url="https://your-worker.workers.dev/v1"
)

response = client.chat.completions.create(
    model="chatjimmy-model",
    messages=[{"role": "user", "content": "你好"}],
    stream=True
)

for chunk in response:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

这段代码使用 OpenAI 官方 SDK,仅修改了 base_url 就能调用 ChatJimmy。流式输出也完美支持。

代码示例:Node.js SDK

如果你使用 JavaScript/TypeScript:

import OpenAI from 'openai';

const client = new OpenAI({
    apiKey: 'any-key',
    baseURL: 'https://your-worker.workers.dev/v1'
});

const stream = await client.chat.completions.create({
    model: 'chatjimmy-model',
    messages: [{ role: 'user', content: '你好' }],
    stream: true
});

for await (const chunk of stream) {
    process.stdout.write(chunk.choices[0].delta.content || '');
}

自带测试页面

cj2api 内置了一个 Web 测试页面,直接在浏览器中就能发送请求、查看响应、调试流式输出。无需 Postman 或其他工具。

访问部署后的域名,会看到一个简洁的界面,输入消息后点击发送,即可看到实时流式响应。调试接口时非常方便。

适用场景

cj2api 特别适合以下情况:

  • 现有项目基于 OpenAI API 构建,想将 ChatJimmy 作为替代方案进行测试
  • 需要快速原型验证,不想花时间开发 API 适配层
  • 个人项目或小团队,预算有限但需要稳定的 API 服务
  • 学习 AI 应用开发,需要一个可控的本地化模型接口

了解更多

项目源码托管在 GitHub,可以 clone 到本地进行二次开发或提交 issue。

如果你正在寻找一个零成本、零运维的 ChatJimmy API 兼容方案,cj2api 值得一试。