【Serv00】Serv00搭建xqdoo00o/ChatGPT-to-API

askylin · 2024-8-12 11:06:09 · 260 次点击

之前跟着站内的教程入坑了s8赛季,并部署了new api。但在建立渠道过程中,发现因为IP原因,无法使用始皇的oai free进行chat转API从而愉快的薅我的PLUS账户(服务器位置在波兰,被Ban了)。因此开始寻找有无替代方案。因为本人比较菜,只能当个脚本小子,在尝试构建chat2api失败后,我发现了https://github.com/xqdoo00o/ChatGPT-to-API这个项目(Aurora的参考项目),该项目是golang写的,能够直接在serv00编译成功并使用。我看站内目前没有搭建这个项目的教程,就打算抛砖引玉,分享一下我部署的过程与遇到的坑。



对于serv00中部署应用,站内有很多教程,跟着步骤走就行,这里简单说一下。

首先,访问你的serv00,在serv00中,点击Additional services->Run your own applications->Status->Enable



然后点击Port reservation->Add port,random根据你的情况选择



之后就是建一个website,点击WWW websites->Add new website->Advanced settings,域名填入你的域名,具体可以参考站内教程( 【serv00系列教程】部署go-proxy-bingai演示站 - 软件分享 - LINUX DO在serv00上搭建DNS管理系统并绑定cloudflare - 软件分享 - LINUX DO),website type选proxy,proxy port选择你刚刚开启的端口。



以上操作结束后,用ssh工具连接到你的服务器,你可以建立一个临时文件夹,从GitHub上clone下来ChatgptToAPI项目,构建和使用的教程可以直接参考作者项目的中文文档xqdoo00o/ChatGPT-to-API/README_ZH.md


git clone https://github.com/xqdoo00o/ChatGPT-to-API
cd ChatGPT-to-API
go build
./freechatgpt

将构建好的程序放入domains/<你的域名>/public_html中,然后建立并编写一份.env


SERVER_PORT=填入你在serv00中开启的端口
ADMIN_PASSWORD=默认是"TotallySecurePassword",为管理员密码,可以不填,如有需求,参考项目中文教程中的用户管理文档部分
GIN_MODE=可选环境变量,debug或者release

因为服务器在波兰,可以直连chatgpt,我这里没有设置代理,因此不用创建proxies.txt。

然后就是配置账号,如果你是chatgpt的账号,那么直接在程序同级目录建立accounts.txt,里面填写你的账号密码,格式


邮箱A:密码
邮箱B:密码:2
邮箱C:密码:2/5
...

密码后的数字表示轮询次数,默认为1次。上例表示第一次对话使用账户A,而后两次对话使用账户B,账户C为Teams账户,接着五次对话使用账户C的Teams,然后两次使用账户C的个人,如此循环。

所有登录后的Access tokens和PUID会存放在access_tokens.json,并且项目每天会自动更新Access tokens和PUID。

如果你和我一样,是第三方登录的用户,则还需要在同级目录下建立cookies.json,在accounts.txt 添加第三方账户和任意密码(第一方账号也同样适用)。文件内容如下


{
"第三方账户名如xxxxx@gmail.om": [
{
"Name": "__Secure-next-auth.session-token",
"Value": "网页登录第三方账户后,cookies中的__Secure-next-auth.session-token值",
"Path": "/",
"Domain": "",
"Expires": "0001-01-01T00:00:00Z",
"MaxAge": 0,
"Secure": true,
"HttpOnly": true,
"SameSite": 2,
"Unparsed": null
}
]
}

如果使用refresh_token,把Name的值改为"refresh_token",Value的值改为refresh_token。第三方用户获取refresh token参见站内大佬教程 ( 苹果设备获取device token教程 帮助非三级号(不包括俺 已经三级了:grin:)实现refresh token自由 - 软件分享 - LINUX DO自己搞 refresh token - 常规话题 / 精华神贴 - LINUX DO)

然后还需要在程序同级目录下建立一个harPool文件夹,里面放入HAR文件,HAR文件获取见项目中文教程。完成以上后,应该程序就可以正常运行了



可以看到程序提供的接口,注意带admin的接口就需要ADMIN_PASSWORD去认证,具体管理接口参见API Documentation

然后就是serv00程序保活,这里直接参考站内教程即可 重大更新:serv00部署服务加保活脚本 - 软件分享 - LINUX DO,注意保活前需要先在程序目录中新建一个start.shrestart.sh(也可以其他目录,只要程序的路径正确即可)。然后就可以将 http://127.0.0.1:<你程序的端口>/v1/chat/completions放入new api或者one api进行测试并使用啦


【后续】为这个项目添加IP白名单防止被白嫖 【配置调整】为CHATGPT-TO-API添加IP访问白名单 - 软件分享 - LINUX DO

【再后续】十分感谢 @setmefree 飞友的解答,不用添加IP白名单,只需要配置api_key.txt即可,在文件中放入虚拟的api key(自己设置),调用的使用在请求头加入-H "Authorization: 或者接入new api时填写这个虚拟密钥就行。果然论坛里能学到好多东西!

举报· 260 次点击
登录 注册 站外分享
19 条回复  
handsome 限制会员 2024-8-12 11:06:09

太强了大佬

lsolol 初学 2024-8-12 11:06:09

感谢

Emp 初学 2024-8-12 11:06:09

mark

1-debtor 初学 2024-8-12 11:06:09

感谢分享 Mark

moemoe 初学 2024-8-12 11:06:09

mark

firedirx 初学 2024-8-12 11:06:09

感谢分享,有个问题



  1. 如何让这个项目长期运行呢?nohup吗?

  2. 如果我配置多账号的话,har文件该怎么区分,还是只是一个就行了

lgguan 初学 2024-8-12 11:06:09

可以,跑起来了

beal_bin 初学 2024-8-12 11:06:09

请问还能用吗?

happylwws 初学 2024-8-12 11:06:09

好好好,有空了试一下。

12下一页
返回顶部