今天看到一个逆向kimi帖子
想接入到lobechat中,发现始皇的chat2api和kimi只能选择一个使用,于是想用Cloudflare Workers去反代,实现调用一个接口,选择不同的模型,就可以分别去调用kimi和chat2api,原理就是通过调用的模型去判断该走哪个接口
准备工作
- 首先你需要有一个Cloudflare有个账号,并且有个域名
创建HTTP路由
- 进入 Workers 路由界面,创建一个HTTP路由
- worker暂时填写无
*之后点击 管理Workers-创建应用程序-创建Workers
部署代码
- 到了部署页面之后,将以下代码填入
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const requestBody = await request.json();
let destinationUrl, newAuthHeader;
if (requestBody.model && requestBody.model.includes('gpt')) {
destinationUrl = 'https://api.oaifree.com/v1/chat/completions';
newAuthHeader = 'Bearer 填入你的token '; // 这里设置chat2api对应的新明文token
} else if (requestBody.model === 'kimi') {
destinationUrl = 'http(s)://****/v1/chat/completions';
newAuthHeader = 'Bearer 填入你的token'; //这里设置kimi对应的新明文token
} else {
return new Response('Model not supported', { status: 400 });
}
const newHeaders = new Headers(request.headers);
newHeaders.set('Authorization', newAuthHeader);
const newRequest = new Request(destinationUrl, {
method: request.method,
headers: newHeaders,
body: JSON.stringify(requestBody),
redirect: request.redirect
});
const response = await fetch(newRequest);
return response;
}
在这段代码中,我是把token直接填到了里面,不知道会不会有泄漏的风险,也请各位大佬指正,还有一个点是,所有的URL(代码中的destinationUrl)不能是ip+端口,只能是域名,否则会报错
配置LobeChat
- 点击保存并部署,将workers设置到刚刚的http路由中
- lobe配置这样填写(key随便填),即可完成配置,注意,需要给lobechat设置密码,防止被别人扫接口滥用
第一次发技术贴,只是自己写的一个小DEMO,如果有问题,还请各位大佬指正