One API 的 OpenAI 渠道如何接入 Cloudflare AI Gateway
【免费下载链接】one-apiLLM API 管理 & 分发系统,支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型,统一 API 适配,可用于 key 管理与二次分发。单可执行文件,提供 Docker 镜像,一键部署,开箱即用。LLM API management & key redistribution system, unifying multiple providers under a single API. Single binary, Docker-ready, with an English UI.项目地址: https://gitcode.com/GitHub_Trending/on/one-api
如果你希望 One API 的 OpenAI 渠道把请求经由 Cloudflare AI Gateway 转发到上游,而不是直连 OpenAI,官方给出的接入方式非常直接:不需要改代码,在渠道设置的代理部分填入 gateway 地址即可。本文基于仓库 README 的功能说明与 OpenAI 适配器的源码,给出从渠道配置到验证的完整操作路径。
适用前提:一个已部署运行的 One API 实例,渠道类型为 OpenAI。这条路径不适用于 Cloudflare Workers AI 等其他渠道类型。
准备条件
- One API 实例正在运行。如果还没有部署,可以使用 README.md 中的 Docker 部署命令(SQLite 版):
docker run --name one-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data justsong/one-api其中-p 3000:3000的第一个3000是宿主机端口,可按需修改;-v挂载的目录需存在且具有写入权限,也可以改成其他合适目录。并发量较大时,务必追加SQL_DSN环境变量改用 MySQL(例如-e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi")。
使用初始账号登录系统:用户名
root,密码123456。README 明确要求使用 root 用户初次登录后务必修改默认密码。准备好会出现在 gateway 地址里的两个值:你的 Cloudflare 账号标识和要使用的 AI Gateway 名称。README 给出的接入格式如下,其中
ACCOUNT_TAG和GATEWAY是需要替换的占位符:
https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai这两个占位符对应什么,可以从仓库源码注释中确认:relay/adaptor/cloudflare/adaptor.go 中的注释展示了同一 gateway 域名的路径参数位置为{account_id}和{gateway_id},即分别替换为你自己的账号 ID 与 gateway ID。
在 OpenAI 渠道中填写 Gateway 地址
在渠道页面添加渠道,选择 OpenAI 渠道类型并填写上游 API Key。README 功能列表对这条接入路径的原文说明是:
支持 Cloudflare AI Gateway,渠道设置的代理部分填写
https://gateway.ai.cloudflare.com/v1/ACCOUNT_TAG/GATEWAY/openai即可。
也就是说,渠道类型保持 OpenAI 不变,把 gateway 地址(替换为你自己的账号标识和 gateway 名称)填入该渠道的代理字段:
https://gateway.ai.cloudflare.com/v1/<你的账号标识>/<你的 gateway 名称>/openai结尾的openai段与 README 模板保持一致,它决定 One API 实际拼接出的请求路径。这个拼接规则在 relay/adaptor/openai/helper.go 中:当渠道 BaseURL 以https://gateway.ai.cloudflare.com开头时,OpenAI 渠道会把请求路径中的/v1前缀去掉后再拼到 BaseURL 后面(Azure 渠道则去掉/openai/deployments前缀)。因此 chat completions 请求最终会发往.../<GATEWAY>/openai/chat/completions,即 gateway 提供的 OpenAI 兼容端点。
验证接入
按 README.md 的使用方式,验证分两步:
- 渠道测试:在渠道页面为该渠道选择测试模型(
test_model)后点击测试按钮,前端调用的是/api/channel/test/{id}?model={model}接口(见 web/default/src/components/ChannelsTable.js)。测试通过说明 One API 经 gateway 到上游的链路可达。 - 令牌请求验证:在
令牌页面新增访问令牌,然后用令牌以与 OpenAI API 一致的方式访问 One API——把 API Base 设置为你的部署地址(格式取决于客户端,例如 OpenAI 官方库使用https://<HOST>:<PORT>/v1的形式),API Key 填令牌值:
OPENAI_API_KEY="sk-xxxxxx" OPENAI_API_BASE="https://<HOST>:<PORT>/v1"其中<HOST>:<PORT>替换为你实例的部署地址。
如果该渠道与其他 OpenAI 渠道共存、希望确认请求确实走了这条 gateway 渠道,可以在令牌后附加渠道 ID 指定渠道处理本次请求(例如Authorization: Bearer ONE_API_KEY-CHANNEL_ID);注意需要管理员用户创建的令牌才能指定渠道 ID,不指定则走多渠道路由。
已知报错与边界
- README 常见问题中列出的渠道测试报错
invalid character '<' looking for beginning of value:原因是返回值不是合法 JSON 而是一个 HTML 页面,大概率是部署站的 IP 或代理节点被 CloudFlare 封禁。如果接入 gateway 后渠道测试报这个错误,应优先检查服务器出口 IP 是否被 Cloudflare 拦截。 - 本文路径针对"OpenAI 渠道经 gateway 访问 OpenAI 提供商"。Cloudflare Workers AI 在 One API 中是独立的渠道类型,其 gateway 地址以
/workers-ai结尾(见 relay/adaptor/cloudflare/adaptor.go 注释),配置路径不同,不在本文范围内。
渠道测试通过、令牌请求能返回正常模型响应,即表示接入完成:该 OpenAI 渠道的后续请求都会经你指定的 Cloudflare AI Gateway 转发。
【免费下载链接】one-apiLLM API 管理 & 分发系统,支持 OpenAI、Azure、Anthropic Claude、Google Gemini、DeepSeek、字节豆包、ChatGLM、文心一言、讯飞星火、通义千问、360 智脑、腾讯混元等主流模型,统一 API 适配,可用于 key 管理与二次分发。单可执行文件,提供 Docker 镜像,一键部署,开箱即用。LLM API management & key redistribution system, unifying multiple providers under a single API. Single binary, Docker-ready, with an English UI.项目地址: https://gitcode.com/GitHub_Trending/on/one-api
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考