chatgpt_academic部署
背景
最近chatgpt爆火,它的对话反馈能力不仅在一般的对话场景下强于它的前辈们,在一些专业领域(比如计算机),更是让业内人士都叹为观止。我身边已经有不少人用chatgpt去做代码漏洞审查,代码补全等(和copilot类似了)。在我看来,一些专业知识要求较高的问题chatgpt都能回答的比较完美,在某种程度下,它比百度google更好用。
介绍
chatgpt_academic是github上一个开源项目,主要是基于openai提供的chatgpt api实现论文的一键润色、一键翻译等,还支持论文阅读一键总结,可以说是十分方便。体验下来,chatgpt的翻译水平比google免费翻译强,润色水平也比之前常用的deepl免费版要好,可以说是我们这些英语不好的人写英文论文的一大利器。
部署
chatgpt_academic是用 gr
模块创建的一个基于浏览器的GUI界面,所以我考虑部署到服务器上,并做部署记录。
项目下载
直接
1 | git clone https://github.com/binary-husky/chatgpt_academic.git |
API_KEY配置与代理设置
api_key需要从openai官网获取,在https://platform.openai.com/account/api-keys生成自己的私人密钥并复制到config.py即可。
代理我用的是clash,默认协议为http,需要注意的是
1. 要开启允许局域网连接,否则服务器连不上
2. 要关闭防火墙的网络defense,否则其他主机连不上
如上图,我们需要设置的proxy如下
proxies = {
# [协议]:// [地址] :[端口]
“http”: “http://ip:7890“,
“https”: “http://ip:7890“,
}
安装依赖
瞄了一眼requirements.txt,包不多,所以我本来想直接在主环境安装依赖的,结果发现gradio>=3.23需要python3.7之后,而我的python3.6没这个版本,只好用conda去配一个新虚拟环境
1 | conda create -n gptac_venv python=3.11 |
运行
服务器一般是不对外开放web端口的,所以我们需要指定端口并提前设置好开放,比如端口49499
先在config.py里修改端口(否则是随机端口)
然后防火墙开放该端口
sudo iptables -A INPUT -p tcp --dport 49499 -j ACCEPT
sudo service iptables save
接下来就可以用http://服务器ip:49499 愉快使用学术chatgpt了
PS
首先是一个注意点,chatgpt账户的api是有免费额度的,之前是18美元后来是5美元,大概够反馈100万个token的,后续gpt3.5收费是0.002刀/1k token,所以要节省使用
然后是一个有意思的地方。如果用vscode的terminal而不是正常shell运行上述代码,Web服务会直接在本机开启而不是服务器,换句话说,你执行了服务器的代码,但指定的server是本机。这就有点疑惑了,按理来说在vscode的terminal上执行远程服务器代码,走的一样的ssh,虽然lauch的是0.0.0.0,但应该和xshell这些没啥区别啊,疑惑.jpg
参考
[2] https://chatgpt.cn.obiscr.com/blog/posts/2023/How-to-get-api-key/