chatgpt_academic部署

背景

最近chatgpt爆火,它的对话反馈能力不仅在一般的对话场景下强于它的前辈们,在一些专业领域(比如计算机),更是让业内人士都叹为观止。我身边已经有不少人用chatgpt去做代码漏洞审查,代码补全等(和copilot类似了)。在我看来,一些专业知识要求较高的问题chatgpt都能回答的比较完美,在某种程度下,它比百度google更好用。

介绍

chatgpt_academic是github上一个开源项目,主要是基于openai提供的chatgpt api实现论文的一键润色、一键翻译等,还支持论文阅读一键总结,可以说是十分方便。体验下来,chatgpt的翻译水平比google免费翻译强,润色水平也比之前常用的deepl免费版要好,可以说是我们这些英语不好的人写英文论文的一大利器。

image-20230405152418056

部署

chatgpt_academic是用 gr 模块创建的一个基于浏览器的GUI界面,所以我考虑部署到服务器上,并做部署记录。

项目下载

直接

1
2
git clone https://github.com/binary-husky/chatgpt_academic.git
cd chatgpt_academic

API_KEY配置与代理设置

api_key需要从openai官网获取,在https://platform.openai.com/account/api-keys生成自己的私人密钥并复制到config.py即可。

代理我用的是clash,默认协议为http,需要注意的是

 1. 要开启允许局域网连接,否则服务器连不上
 2. 要关闭防火墙的网络defense,否则其他主机连不上

image-20230405155839566

如上图,我们需要设置的proxy如下

proxies = {

​ # [协议]:// [地址] :[端口]

​ “http”: “http://ip:7890“,

​ “https”: “http://ip:7890“,

}

安装依赖

瞄了一眼requirements.txt,包不多,所以我本来想直接在主环境安装依赖的,结果发现gradio>=3.23需要python3.7之后,而我的python3.6没这个版本,只好用conda去配一个新虚拟环境

1
2
3
conda create -n gptac_venv python=3.11
conda activate gptac_venv
python -m pip install -r requirements.txt

运行

服务器一般是不对外开放web端口的,所以我们需要指定端口并提前设置好开放,比如端口49499

先在config.py里修改端口(否则是随机端口)

image-20230405160810001

然后防火墙开放该端口

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

参考

[1] binary-husky/chatgpt_academic: 科研工作专用ChatGPT拓展,特别优化学术Paper润色体验,支持自定义快捷按钮,支持自定义函数插件,支持markdown表格显示,Tex公式双显示,代码显示功能完善,新增本地Python/C++/Go项目树剖析功能/项目源代码自译解能力,新增PDF和Word文献批量总结功能 (github.com)

[2] https://chatgpt.cn.obiscr.com/blog/posts/2023/How-to-get-api-key/