自建Cloudflare Worker反代
简介
本文主要说明如何自建一个基于Cloudflare Worker的API反代服务,实现API原始数据记录+自定义模型重写功能。
由于偶尔会有部分用户想自定义模型名称以便兼容某些行为奇怪的客户端,有些用户想要获得API交互的原始数据以排查错误,但是我们出于兼容性和保护客户隐私的方面考虑,不太愿意在服务端直接对这些功能添加支持,因此我们设计了一个基于CF Worker的小脚本简单实现这些功能的同时,兼顾安全性和隐私。
效果展示:
API模型重写claude-3-haiku=>claude-3-5-haiku,claude-3.5-haiku-8080=>claude-3-5-sonnet
:
API交互原始数据记录:
配置
创建Worker
进入您的Cloudflare Dashboard控制面板
点击Worker & Pages
=> Overveiw
=> Create
创建新的Worker
名字随意,点击创建即可
编辑Worker代码
创建成功后点击编辑代码:
将原有代码清空,然后把下面整段代码全部复制进去,然后点击Deploy
保存并更新部署
创建并初始化D1数据库
Worker & Pages
=> D1
=> Create
按钮创建新的数据库
名称随意,输入完后点击创建即可
初始化数据库,执行建表语句:
将上面这段SQL复制到蓝框中执行
这样就算成功:
配置Worker
绑定D1数据库
找到刚刚创建的Worker
绑定D1数据库:
变量名这里填写DB
,数据库就选择刚刚初始化的那个,点击Deploy部署即可
配置Worker环境变量
默认情况下,此时此Worker已经可以转发API了,但是不会进行任何行为
可以在这里设置Worker的环境变量
如果需要启用日志记录:
新增环境变量: API_LOGGING
将其设置为 enabled
如果需要使用日志下载接口,需要配置API密钥:
环境变量: API_SEC_KEY
设置为一个只有您知道的私密密钥
如果您需要模型重写功能:
设置环境变量: API_MODEL_REWRITE
格式: model1=>model2,model3=>model4
开始请求
假设您的Worker地址是:
wandering-poetry-3106.hash070.workers.dev
那么您如果想要访问OpenAI的Chat.Completions API接口,可以对这个接口发起请求 https://wandering-poetry-3106.hash070.workers.dev/v1/chat/completions
, 如果想要访问Messages API接口,可以对 https://wandering-poetry-3106.hash070.workers.dev/v1/messages
发起请求
如果您需要下载日志:
可以在浏览器中打开形如下面这个URL(注意地址和Key按照这个格式替换成你自己搭建的
其中URL中的这个key参数应当填写为您设置的API_SEC_KEY变量,format指导出数据格式,可以是json
或csv
表格
如果您需要清除数据:
可以在浏览器中直接访问这个URL
附:
API 接口说明
日志导出
示例:
日志清理
示例: