背景
随着AI技术的不断成熟,加上ChatGPT如火如荼的发布新版本迭代更新,人工智能的热度也升温到史无前例的高度。 我们有理由相信,现在身边还不愿主动去接触这项技术,深入了解的小伙伴,在不久的将来,一定会被时代淘汰,至少幸存下来的成本会比我们低很多。 言归正传,前段时间注册了ChatGPT的账号后,也尝试部署了Telegram版本的ChatGPT聊天功能,颇为成功,当时用的还是OpenAI的API。 最近想着既然ChatGPT发布了自己的API,民间会不会有些新的动作? 果不其然,网上已经有大神完成了私有的版本,这使得部署在本地,训练属于自己的AI成为可能!
部署
本地化部署起来并不难,有些网络和Linux基础的童鞋会更加容易些。
准备一个满足要求的Linux系统环境
我这里用的是以下环境:CentOS Linux release 7.9.2009 (Core) 这里假定读者都是没有安装OS的门槛的,同时也有自己可用的代理套件,就不再赘述。
进行部署
- 使用git将工程文件clone下来,进入到目录后,复制一份配置文件出来
git clone https://github.com/869413421/chatgpt-web.git
cd chatgpt-web/
cp config.dev.json config.json
- 编辑配置文件config.json 粘贴入以下信息,这里的api_key需要替换成你自己的。 port和proxy都是可以自行定义的。显然在国内不定义proxy基本上是没法用的。
{
"api_key": "sk-tnsMqcfmpyz6kExx5EuR88TbkFJ8OUzsCPyH2oIci",
"port": 9999,
"listen": "",
"bot_desc": "Kiss me more.",
"proxy": "http://10.11.100.44:1080",
"model": "gpt-3.5-turbo-0301",
"max_tokens": 512,
"temperature": 0.9,
"top_p": 1,
"frequency_penalty": 0.0,
"presence_penalty": 0.6,
"auth_user": "",
"auth_password": ""
}
- 安装go编译语言工具 由于该项目使用go语言编写,所以需要有相应的语言工具来执行程序。
yum install go
go mod download github.com/alecthomas/kong
go get github.com/869413421/chatgpt-web/bootstarp
go get github.com/869413421/chatgpt-web/app/http/controllers
- 执行以下命令即可启动服务
go run main.go
首次执行后,命令会卡10秒左右,然后看到这样的输出画面
启动后,就可以在本地浏览器里通过URL进行访问。 我这里Server的IP为10.21.100.94,那么网址就是http://10.11.100.19:9999
成功访问后,在后台是可以看到反馈的
设置为系统服务
每次都用那个命令启动服务,会比较繁琐。 我们一般都习惯于使用systemctl start/stop service_name
来开启和停止服务。
这里可以将执行语句定义为一个Service。 新建服务。 touch /lib/systemd/system/chat.service
然后编辑: vi /lib/systemd/system/chat.service
[Unit]
Description=ChatGPT Test
[Service]
User=root
Group=root
Type=simple
Restart=always
RestartSec=20
StartLimitInterval=0
Nice=10
WorkingDirectory=/root/downloads/chatgpt-web/
ExecStart=/usr/lib/golang/bin/go "run" "/root/downloads/chatgpt-web/main.go"
StandardOutput=null
TimeoutStartSec=30
[Install]
RequiredBy=multi-user.target
注意:这里的WorkingDirectory和ExecStart是我自己的目录,你需要修改为你存放项目文件的目录。
这里的几个参数可以解释下:
Restart=always 进程挂了就重启 RestartSec=20 20秒检查一次 StartLimitInterval=0 无限次重启,忽略失败次数
最后重启守护进程,并且重启服务,并设置为自启动。 systemctl daemon-reload
systemctl restart chat
systemctl enable chat
查看状态可以看到已经Active,成功启动。当然也可以用netstat来验证下端口。 systemctl status chat
Troubleshooting
当然在配置过程中,因为种种环境因素等原因,大家配置未必都会一样顺利。 这里列举一些常见的问题,希望对大家有所帮助。
- 执行命令
go run main.go
后,网页依然打不开
这时可以先在Server上执行该命令查看服务对应的端口是否正常监听着:netstat -tnlp | grep 9999
如果没有结果,那就是服务压根没启动成功。如果有,则往下阅读
在访问网页的系统里用以下命令测试:telnet 10.21.100.94 9999
如果有反馈结果,则说明没问题,如果显示任何错误提示,例如connection refused或timeout之类等等,说明访问不到服务器。
一般可能的原因是防火墙挡住了。你可以粗暴地直接关闭防火墙来验证 systemctl stop iptables
systemctl stop firewalld
上面的两条必有一条生效。 验证后,可以通过以下命令添加防火墙策略并保存。
iptables -I INPUT 6 -p tcp --dport 9999 -j ACCEPT
iptables-save > /etc/sysconfig/iptables
注意,不同的OS版本,保存配置的命令会有所不同。
- 在前端网页访问时,输入对话提示超时错误 错误语句为:请求出错,Post “ api.openai.com/v1/chat/com… “: dial tcp 185.45.6.57:443: connect: connection refused
这里的IP显然是ChatGPT的Server IP
原因是我们没有设置Proxy。这里需要设置为你自己的代理的IP。 设置格式语法如下: "proxy": "http://10.21.100.46:1080",
"proxy": "socks5://127.0.0.1:10808"
如何学习AI大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。