升级私人GPT:chatgpt-web-midjourney-proxy开源程序更新指南

引言

很多人很喜欢这个Dooy-AI>>项目,并且偷偷修改了作者的源码,也重新构建了镜像并成功启动,随着时间的推移,作者开源程序也随之更新了版本,我们想要保留更改内容的同时,还想要合并作者的新改动(增量更新,又想好又想巧!),笨办法是把作者最新源码拿过来再重新改一遍,这种方法虽然简单粗暴,但是费时费力,并且有些东西自己改过之后都忘记了,做一两次可以,久而久之每次更新修改着实麻烦,所以急需一种简单高效的更新方案。

注意,本文是基于上一篇《拥有私人GPT:chatgpt-web-midjourney-proxy完整部署指南》的续篇,着重补充讲解关于如何快速增量更新已经搭建好的AI程序。如果您已完成了该程序(以下简称Dooy-AI)的Docker搭建,可以继续阅读,否则建议先返回阅读上篇内容。

本文讲解开源程序的更新方法,适用于Dooy-AI的同时,方法也可沿用到其它开源程序,可谓一劳永逸。

阅读并按照本文实操后,您将大概率获得如下所有能力:

  • 效率提升:更新由原来的折腾至少1小时缩短为5分钟搞定,大大提升了效率;
  • 失误率下降:遗漏修改代码的几率大大降低;
  • 开源程序更新技能:永久性习得所有Docker类程序增量同步更新技能。

操作步骤

1、准备工作

特别说明:本文阅读需要有一定的计算机基础,对于纯小白并不是十分友好。如果你是新手,大概率准备工作是没有涉猎的,一头雾水,这边建议你不要慌,慢一点,按照提示逐步操作和实现,必要时候查询互联网或者请教GPT>>,达成目标是早晚的事,毕竟不能一口吃个胖子。

前往Github>>下载并安装、登录Github Desktop程序,注意:Github需要魔法才能访问的问题请自行解决。另外,该程序有一定几率没有下载速度,解决方法是可以修改本地电脑的host文件,将以下代码加入文档末尾并保存(host文件可以通过火绒程序 >>快速打开)。

				
					192.30.253.112 github.com
103.245.222.133 assets-cdn.github.com
151.101.25.194 github.global.ssl.fastly.net
151.101.24.133 assets-cdn.github.com
151.101.72.133 avatars1.githubusercontent.com
151.101.72.133 avatars2.githubusercontent.com
151.101.229.194 github.global.ssl.fastly.net

				
			

火绒修改host

保存host

不同的地区可能对应的该区域响应IP不一样,如果以上IP加入后速度没有提升,还可以精准查询当前区域适配的Github服务器IP,查询方法请参考文章《Github 上传、下载过慢的解决方案》。

Github桌面版完成以上操作后,你将看到以下界面:

GitHub Desktop截图

2、从宝塔下载更新前程序源码。

如果你上次构建完镜像没有其它动作,大概率你的程序还在宝塔面板的“文件”菜单中,找到你的程序文件并右键创建压缩包文件,并下载。

选择程序文件并下载

下载到指定位置

3、为Dooy-AI新建Github仓库。

我们需要在Github上新建一个空的代码仓库,这样做一方面可以连接上游作者原仓库进行合并代码的动作,另一方面还可以一键部署到Vercel进行错误检查,毕竟构建镜像并在docker容器启动程序更复杂一些,这样先从Vercel跑一遍能极大的降低程序部署返工几率。

新建代码仓

新建代码仓2

4、把新建的代码仓库克隆到本地。

因为Github网页端操作功能十分有限,所以我们需要用Github desktop将云端仓库克隆到本地电脑进行操作。

点击此按钮进行克隆

找到仓库并完成克隆

完成克隆后,你可以从程序中看到这个仓库的信息,如下图所示,可以点击靠右侧的Fetch origin进行云端和本地的数据同步。

完成克隆

5、本地加入我们的程序代码并同步云端。

找到Github本地仓库文件位置,并解压第2步从宝塔下载的程序文件到当前代码仓文件夹内(注意,复制过程提示的.git文件无需覆盖,跳过即可)。

添加仓库内容

完成复制后,返回Github desktop会收到提交提示,填写并提交即可。

提交代码

6、合并更新

合并的原理是通过Git命令可以关联上游仓库(也就是作者仓库)作为本仓库的一个分支upstream,然后更新该分支内容使其与上游作者仓库内容一致,最后将分支与本仓库代码合并(merge)即可获得增量更新,如果遇到冲突请在VScode中手动解决即可。具体内容可参考早期文章《Github中clone仓库项目的版本更新方法(非fork)》。

第一步,打开Github desktop的Command Prompt命令工具,并输入以下命令:

				
					git remote add upstream https://github.com/Dooy/chatgpt-web-midjourney-proxy.git
				
			

第二步,拉取上游仓库更新的内容。如果这里的远程仓库名字不叫upstream,请替换成你实际的远程仓库名,比如cangku等,这些都是你在第一步自己命名的,前后保持一致即可。

				
					git fetch upstream
				
			

第三步,本地仓库代码与远程上游作者代码合并。

合并仓库merge

选择main合并

第四步,处理冲突。

解决冲突

第五步,本地合并后的代码推送给github。

推送代码

至此代码合并完成。

7、Vecerl部署测试

注意,此步骤可跳过。如果你想验证修改是否满意,而不希望构建完成镜像后运行出错再返工,则建议你执行该步骤。

打开Vercel>>并通过你的Github账号授权登录则会同步代码仓。

找到Add New并新建一个项目。

找到Dooy-AI代码仓并导入。

代码导入

点击Deploy完成部署(无需配置其它参数)。如果部署成功,你将可以通过Vercel分配给你的项目url打开。仔细检查打开的程序修改是否满意,如果有不满意,可以在本地代码仓直接修改并更新,Vercel会自动更新项目至最新代码,最终确认无误后可进入第8步的镜像构建环节。

项目部署

8、构建镜像和容器

将本地代码文件夹转为zip格式的压缩包,并上传至宝塔,重复上一章《拥有私人GPT:chatgpt-web-midjourney-proxy完整部署指南》内容构建新的镜像并运行即可。

压缩上传

				
					cd www/wwwroot/dooy-ai2024
docker build -t chatgptxxxx .
				
			

9、删除原容器和镜像,并在ssh中构建新的容器。

删除容器

重新构建容器的命令请参考上文《拥有私人GPT:chatgpt-web-midjourney-proxy完整部署指南》。

至此,恭喜你的程序已完成和作者同步的更新工作!

总结

通过本文方法增量更新Dooy-AI程序,核心环节在于将本地代码仓与远程上游代码仓建立关系,并通过Git的分支功能进行合并,从而实现高效增量的开源代码更新工作。这样一来,比传统笨办法节约很多时间,可以把我们的精力释放出来并用于更重要的事情上了,全文内容到此结束。

获取更多AI应用原创文章请收藏本站。微信公众号【产品试金石】也会同步更新。

公众号二维码

这是我的底线