cj2api:将 ChatJimmy 转换为 OpenAI 兼容 API 的零成本方案
痛点场景
你在开发一个 AI 应用,原计划接入 Claude/GPT 等模型,代码已经写好,接口调用逻辑也都调通了。但实际测试时发现目标模型 Jimmy 并没有提供 OpenAI 格式的 API,导致整个请求层需要重写。不想改代码?不想换模型?cj2api 就是来解决这个问题的。
项目简介
cj2api 是一个轻量级 Cloudflare Worker,它扮演着协议转换层的角色:将 ChatJimmy 的请求格式转换为 OpenAI 兼容的响应格式。这样一来,你的应用只需要发送标准 OpenAI 请求,就能无缝调用 Jimmy 模型。
核心特性:
- 零成本部署:使用 Cloudflare Workers 免费额度,日均 10 万次请求足够
- 流式输出:完整支持 Server-Sent Events,无需轮询
- 自带测试页:部署后可直接在浏览器中验证功能
技术原理
Client (OpenAI格式请求)
↓
Cloudflare Worker (协议转换)
↓
ChatJimmy API
↓
Worker (响应格式转换)
↓
Client (OpenAI格式响应)
Worker 接收符合 OpenAI Chat Completions 规范的请求,将其重组为 ChatJimmy 所需的格式。响应返回时,Worker 将 Jimmy 的数据流转换为 SSE 格式,实现真正的流式输出。整个过程在 Edge 网络完成,延迟更低。
快速部署
部署 cj2api 只需几分钟:
# 安装 Wrangler CLI
npm install -g wrangler
# 克隆项目
git clone https://github.com/xxx/cj2api.git
cd cj2api
# 部署到 Cloudflare
wrangler deploy
部署完成后,你会获得一个 Worker URL,这既是你的 API 端点。
使用示例
在代码中调用时,只需将 baseURL 指向你的 Worker 地址:
from openai import OpenAI
client = OpenAI(
api_key="jc YOUR_JIMMY_API_KEY",
base_url="https://cj2api.your-account.workers.dev/v1"
)
response = client.chat.completions.create(
model="jimmy-pro",
messages=[
{"role": "user", "content": "解释一下什么是 Cloudflare Worker"}
],
stream=True
)
for chunk in response:
print(chunk.choices[0].delta.content, end="")
API Key 前缀 jc 用于 Worker 识别请求来源,区分不同用户的 Jimmy 账号。
与同类工具的差异
| 特性 | cj2api | 通用 API 代理 |
|---|---|---|
| 部署成本 | 免费(Cloudflare) | 需要自备服务器 |
| 流式支持 | 原生 SSE | 可能需要额外配置 |
| 测试方式 | 内置 Web UI | 需借助 Postman 等工具 |
| 配置复杂度 | 零配置 | 需调整多项参数 |
适用场景
cj2api 适合以下情况:现有项目需要快速接入 Jimmy 模型,但不想修改业务代码;个人开发者或小型团队没有预算维护独立 API 服务;需要在多个工具间切换 AI 模型提供商。
如果你正在寻找一个简单、免费且可靠的方式来打通 Jimmy 与现有 AI 开发工具链,这个项目值得一试。
---END---