承接前文,那个ChatGPT Html是初级阶段,是直接使用Jquery做异步去调api接口,也容易造成api的泄漏导致滥用,从而被封号,建议都不要再使用那个方法了。
最近站长也一直在研究这项课题,使用OpenAI API的应用在Github上一搜一大把,基本上有两类:
一类是调用官方的API,可以使用 gpt-3.5-turbo-0301 模型,是最稳健的方案,但是会扣费用,目前各位手上的账号都是有赠金的,会优先扣赠金,等扣完了就需要充值,但是充值这条路非常崎岖难走,你可以访问下面的链接,了解一下OpenAI绑定信用卡是有多麻烦。
第二类是使用非官方代理服务器去访问 ChatGPT 的后端API,会绕过Cloudflare(使用真实的的ChatGPT,非常轻量级,但依赖于第三方服务器,并且有速率限制),使用的是accessToken。好处是不扣费用,但不太稳定。
直接使用官方API的项目,例如:https://github.com/ddiu8081/chatgpt-demo
,甚至都不需要服务器,注册个Vercel账号,直接一键部署就完事了。
今天聊另外一个项目,就是能即用官方API的也能用非官方代理服务器访问后端API的项目,特别是现在非常容易封OpenAI API权限,我们就可以使用第二种方法去调用。
本次项目:https://github.com/Chanzhaoyu/chatgpt-web ,我们来做两种部署的介绍,非常简单,跟着步骤来吧!
写在前面
现在使用ChatGPT API极易触发风控,这里有一份站长根据自身经验整理的避坑指南,欢迎领取
鉴于ChatGPT项目极易被封,这里就不放演示链接了。直接给个图就好。
准备工作
- 准备一个可正常登录的chatGPT账号,只要有chatgpt访问的权限就好,api被封的账号也可以用
- 准备一台非中国大陆、香港的服务器,注意IP必须符合OpenAI的相关要求,特别是广播的IP。另外慎用华为云的机器。
如果你还没有注册一个ChatGPT 账号,可以参考下面的教程进行注册:
前置环境要求
看一遍项目README.md,我们选择使用Docker进行部署
首先安装Docker
按以下步骤进行,别看一些博主瞎写的,去装发行版的docker版本。
这里直接使用Docker官方推荐的安装脚本一键安装
# 一键安装Docker
curl -sSL https://get.docker.com | sh
准备OpenAI API_KEY或accessToken
API_KEY的获取,参考一下步骤:
浏览器打开https://platform.openai.com/account/api-keys/
登录你的ChatGPT账号,或登陆后在右上角头像那里点击,找到View API keys
默认没有API密钥,需要手动创建一个,点击Create new secret key
创建成功后,将API key保存到临时文件去,待会要用。
如果是要获取accessToken,首先前往https://platform.openai.com,登录一下你的账号,然后新开一个浏览器页面,在地址栏输入:https://chat.openai.com/api/auth/session,在打开的json里面,把accessToken字段的内容,整段保存到临时文件,回头要用。
开始部署
准备好要的API_KEY和accessToken之后,就可以开始部署了。
镜像直接使用项目作者的,就没必要自己制作docker镜像了,没太大必要。
使用docker的部署
建个目录,在目录里创建docker-compose.yaml,文件内容如下:
version: '3'
services:
app:
image: chenzhaoyu94/chatgpt-web # 总是使用 latest ,更新时重新 pull 该 tag 镜像即可
ports:
- 3002:3002
environment:
# 二选一
OPENAI_API_KEY: xxxxxx
# 二选一
OPENAI_ACCESS_TOKEN: xxxxxx
# API接口地址,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_BASE_URL: xxxx
# API模型,可选,设置 OPENAI_API_KEY 时可用
OPENAI_API_MODEL: xxxx
# 反向代理,可选
API_REVERSE_PROXY: xxx
# 访问权限密钥,可选
AUTH_SECRET_KEY: xxx
# 超时,单位毫秒,可选
TIMEOUT_MS: 60000
# Socks代理,可选,和 SOCKS_PROXY_PORT 一起时生效
SOCKS_PROXY_HOST: xxxx
# Socks代理端口,可选,和 SOCKS_PROXY_HOST 一起时生效
SOCKS_PROXY_PORT: xxxx
要把里面需要填的环境变量给填了。
启动就一条命令就行了:
docker compose up -d
默认监听tcp端口 3002,你可以在前面套个nginx反代一下,可以参考以下的步骤:
配置 Nginx
这里直接使用Docker安装Nginx,不用去编译什么,执行命令:
首先准备配置文件 chatgpt.conf ,your_domain.com
替换为你自己的域名,配置文件内容如下:
server {
server_name your_domain.com;
listen 80;
location / {
proxy_pass http://127.0.0.1:3002;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
然后直接docker 起一个容器出来,注意挂载配置文件进来
docker run -d --network host --name nginx-frontend -v ./chatgpt.conf:/etc/nginx/conf.d/chatgpt.conf:ro -d nginx
这样就好了,然后去把域名解析改一下,访问域名就好了
使用Railway 部署
Raildway 就更简单了,只要注册好就可以跑,但有免费时长的限制,一个月500个小时,用来体验一下就好。
然后在打开的页面中,把环境变量填进去,注意这里有一个双模式的选择,如果都填了API_KEY和accessToken,那么默认优先是API的模式,这里就看个人的选择了。
点击Deploy,等待一段时间,部署就完成了,这时候你可以进控制面板,把自己的域名添加上去,然后做一下cname解析就完事了。
总结
没啥总结的,转载加链接就行了。
您也可以联系文章作者本人进行修改,若内容侵权或非法,可以联系我们进行处理。
任何个人或组织,转载、发布本站文章到任何网站、书籍等各类媒体平台,必须在文末署名文章出处并链接到本站相应文章的URL地址。
本站文章如转载自其他网站,会在文末署名原文出处及原文URL的跳转链接,如有遗漏,烦请告知修正。
如若本站文章侵犯了原著者的合法权益,亦可联系我们进行处理。
hi5个月前0
请问有详细一点的自己搭建的教程吗你好6个月前0
你好,可以再帮我看看吗? 我已经按照你的方法设定了,还是一样,wordpress后台的 Purge Varnish Cache 插件还是清除不到cache,依旧显示 the varnish control terminal is not responding at。谢谢https://mjj.today/i/Srk2Tz https://mjj.today/i/Srkcoi你好6个月前0
对,你说的没错,我配置的时候改了一些东西,现在我按照你的教学,可以启动了,网页可以缓存了,不过wordpress 清除cache 那个插件没用的,我输入本地回环地址127.0.0.1 :6082 ,再输入API key ,插件显示the varnish control terminal is not responding at 127.0.0.1:6082,就你图片那样,然后试一下点击清除cache 那里,他显示error,研究了一天,还是没有不行。你好6个月前1
你好,为啥我按照你的方法,到第三部分,去到真正后源的服务器设定Varnish 部分,我填了真正后源的IP跟端口跟域名,然后重启 Varnish ,就出现这样了? 这是怎么回事? 谢谢[Linux] AMH 7.1 https://amh.sh[varnish-6.6 start] ================================================== =========== [OK] varnish-6.6 is already installed. Could not delete 'vcl_boot.1713549650.959259/vgc.sym': No such file or directory Error: Message from VCC-compiler: VCL version declaration missing Update your VCL to Version 4 syntax, and add vcl 4.1; on the first line of the VCL files. ('/home/usrdata/varnish/default.conf' Line 1 Pos 1) ...#---Running VCC-compiler failed, exited with 2 VCL compilation failedchu6个月前0
很完善的教程‘hu6个月前0
我用gmail EMAIL_SERVER="smtp://********@gmail.com:bpyfv*********chry@smtp.gmail.com:587"叽喳6个月前0
MAIL_SERVER="smtp://no-reply@vort.me:password123@wednesday.mxrouting.net:587"大佬 这个使用outlook 或者gmail 是什么样子的格式? 邮寄已经开启smtp了hu6个月前0
输入框的问题解决了,我没有设置反代,NEXTAUTH_URL改为域名+端口就好了