一个密钥,
同时接入 OpenAI 与 Claude
部署在 Cloudflare Pages 上的中转站。内置完整注册登录、邮箱验证、 自动换号与自动重试,一个账号池里混放 OpenAI 密钥与 Claude 密钥, 客户端用哪种协议都能直接调用。
核心能力
不是一个简单的反向代理,而是一套带账号池调度与协议转换的完整网关。
自动换号
账号池按「并发最低 + 最久未用」轮转。某个号被限流或鉴权失效时自动切到下一个,请求对客户端完全无感。
自动重试
遇到 429 / 401 / 5xx / 超时自动重试。遵循 Retry-After,并对故障账号做指数退避熔断,避免雪崩。
双协议互转
Claude Code 用 Anthropic 协议请求,账号池里放的是 OpenAI 密钥 —— 请求与流式响应都会被自动转换。
邮箱验证
注册需邮箱验证码,6 位数字、10 分钟有效、带重发冷却与错误次数限制,防刷防爆破。
会话与密钥
PBKDF2 哈希密码,HttpOnly 签名 Cookie 会话,每个用户可创建多把独立密钥,支持随时停用。
零成本部署
纯 Cloudflare Pages Functions + D1 + Workers KV 之外的服务,无需服务器。边缘节点全球加速。
三行接入
注册后在控制台创建密钥,替换下面的 sk-xxx 即可。
Claude Code(Anthropic 协议)
把 ANTHROPIC_BASE_URL 指向本站根地址即可,Claude Code 会自行拼接 /v1/messages。
export ANTHROPIC_BASE_URL="https://云渡中转站"
export ANTHROPIC_AUTH_TOKEN="sk-你的中转密钥"
# 可选:覆盖模型
export ANTHROPIC_MODEL="claude-3-5-sonnet"
ANTHROPIC_API_KEY 变量名,Claude Code 同样支持,两者任选其一。
用 Claude Code 协议请求 OpenAI 账号
在控制台添加一个 provider = openai 的账号,Claude Code 发的 /v1/messages 会被转成 /chat/completions 发出去,工具调用与流式输出都会正确还原。
OpenAI 官方 SDK
from openai import OpenAI
client = OpenAI(
api_key="sk-你的中转密钥",
base_url="云渡中转站/api/relay/v1",
)
resp = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "你好"}],
)
print(resp.choices[0].message.content)
Node.js 同理:new OpenAI({ apiKey, baseURL: 'https://你的域名/api/relay/v1' })。
cURL · OpenAI 协议
curl https://云渡中转站/api/relay/v1/chat/completions \
-H "Authorization: Bearer sk-你的中转密钥" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "你好"}]
}'
cURL · Anthropic 协议
curl https://云渡中转站/v1/messages \
-H "x-api-key: sk-你的中转密钥" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-3-5-sonnet",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "你好"}]
}'
Anthropic SDK / Python
from anthropic import Anthropic
client = Anthropic(
api_key="sk-你的中转密钥",
base_url="https://云渡中转站",
)
with client.messages.stream(
model="claude-3-5-sonnet",
max_tokens=1024,
messages=[{"role": "user", "content": "写一首关于夜晚的短诗"}],
) as stream:
for text in stream.text_stream:
print(text, end="")
流式响应会在中转站逐块转换下发,不会整体缓冲,首字延迟接近直连。
模型别名
用同一个模型名调用,系统会根据目标账号的协议自动换成对应型号。也可在 MODEL_MAP 中自定义。
| 模型别名 | → OpenAI 账号 | → Claude 账号 |
|---|---|---|
| 加载中… | ||