关于AI编程项目的迭代

关于AI编程项目的迭代

关于AI编程项目的迭代

最近用TRAE更新了自己的个人网站,再次面对一个棘手的问题:当我们上线产品后,隔段时间再回来更新项目,AI的上下文几乎全部丢失了,以前的记忆大概率没有用处,还会和上一个项目的记忆混淆。这时候AI只能通过已有代码和文档回顾过去,导致不少规则需要重申。

针对这个情况,我有一些心得,在行文之前抛出来:

  • 每次重新回归项目,尤其是切换项目之后回归,要让AI重新读取一遍项目文档和源代码,以寻回上下文。
  • 开发新功能,一定让AI参考之前已完成的功能,否则相同的逻辑它不但会更换方法函数,还可能更换实现方案和技术栈!
  • 遇到问题注意报错码,不需要看一长串的报错代码,关注报错码就可能找到根源。不是所有问题都是代码问题,不少问题是云服务器设置不对引起的。
  • 不要局限于一个软件和模型,疑难杂症可以给多个大模型共同参考,可能会更快解决问题。
  • 重新部署前一定要备份!生产环境的依赖、变量配置、Nginx配置是可复用的,不要一冲动全删了。
  • Docker Hub的镜像源需要科学上网,可以试试阿里云和清华大学的镜像源,也可以本地下载好再传到云服务器。
  • 个人不赚钱的产品以最小成本实现,先跑起来,不要执着于完整,抛弃完美主义!

接下来是一些流水账了,首先是这次迭代内容。

迭代内容

个人网站地址www.luyu668.com, 以下是这次更新的内容:

### 用户端更新
- 新增自研产品模块:展示自己开发的产品,以后会有更多。
- 在桌面端显示网站概况,文章分类卡片和标签云卡片。
- 文章列表支持置顶功能。
- 文章列表按照更新时间倒序展示改为按照首次发布时间展示。
- 文章卡片大屏适配:适配1800px分辨率的大屏幕。
- 增加文章归档功能:以时间轴的方式展示文章,方便用户翻阅历史文章。
- 增加文章大纲,支持6级标题,并支持通过标题定位内容。
- 文章阅读体验优化:移动端宽度修复,增大小屏幕下左右边距,优化标题和正文文字大小。
- 文章详情页代码块宽度自适应屏幕。
- 文章内容支持换行符。
- AI导航页面,桌面端的Tab导航由定位功能改为筛选功能
### 管理后台更新
- 新增文章标签管理:主要是增删改查。
- 新增产品管理:能够在后台对自研产品进行增删改查。
- 新增AI导航管理:能够在后台对导航网站进行增删改查。
- 删除媒体库功能:直接用COS客户端。
### 部署优化
- 重置云服务器的系统
- 使用Docker重新部署
### bug修复
- 修复管理后台文章页面无法翻页问题
- 修复管理后台创建文章页面上传图片功能
- 修复电脑端导航栏没有居中对齐的问题

接下来的工作是部署方案优化调整。

部署调整

调整原因

由于之前使用Linux原生部署,每次从本地环境切换到生产环境,经常出现环境不兼容带来的问题。 我知道是AI没有设置好变量和各种请求地址,反复出现问题,为了排除环境干扰,干脆推翻重来,改用Docker部署,因此从学习容器知识到真正部署上去,花了很多时间。

尝试路径

在屡次出现“本地能跑生产环境出问题”之后,我尝试了Github Action,1Panel,腾讯云构建CI/CD三种方式,试图降低每次更新迭代的部署成本。 效果都不太理想,Github Action由于服务器在美国,被我的云服务器识别高危,而且调试成本太高,跑一次CI/CD流程要十几二十分钟,被我放弃了。 1Panel有点类似于宝塔,但我还保留对Linux原生的期待,研究了一会儿放弃了。 腾讯云原生构建其实有一些惊喜,我甚至把远程代码仓库从GitHub切到它这里,但还是没解决环境问题,可能是一开始对容器化部署不了解,反复调试失败之后就放弃了。 最后选择了Docker部署,可能以后我会再试试云原生构建,如果大佬有更好的方案,欢迎评论区留言。

部署心得

这次迭代,主要工作量是重新部署,除了大量弥补云服务器相关知识,也真正用明白了TRAE的“远程资源管理器”。它和AI结合,给我带来了全新的部署体验。 在 TRAE 里,开发环境写完代码打包之后,可以通过它直连云服务器,可视化操作Linux服务器,跟本地开发体验一模一样。下图是连上云服务器之后的界面。

由于我之前没有亲自操作部署过项目,所以它有三点非常吸引我:

一、在云服务器上也可以和AI对话,可以让它根据生产环境报错及时调整生产环境依赖、环境变量和Nginx参数,以及执行修复重启Docker镜像等其他生产环境必备操作,比在本地电脑通过SSH操作直观省事,对部署小白很友好;

二、上传文件只需要把本地电脑里文件拖到云服务器文件夹里,比任何FTP体验都好;

三、本地环境和云环境联动,生产环境排查出的源代码问题可以贴给本地开发环境的AI实时处理,快速修复,全程可视化,不用像传统的命令行一样开盲盒。

之前在Cursor里也尝试过用Remote-SSH插件,没用明白,这次算是玩会了。

其他心得

由于我一直用TRAE,稍微摸索到了一些它的模式切换用法,当我要开始一个新的功能模块时,可以使用SOLO模式,它会先给你写需求文档和技术设计文档,然后再开始写代码。 当我需要调整细节时,切回普通IDE模式,因为每一步都可以选择接收/拒绝。 当一个问题,AI一直改不好时,可以选中那个文件或者那段代码,让它重写,哪怕是简单的语法问题,重写都可能比来回调试快。一般我是五次沟通搞不定,就考虑重写。 实在解决不了的问题,新开一个窗口,打开Max模式,或者用其他大模型。 最后再不行,先放一放,放到第二天,也许大模型又开窍了。

总结

由于之前每次迭代都要耗费很大精力在部署调试、环境适配上,我一度有点排斥去更新AI做出来的产品。 经过这次迭代,推倒重来并进行系统性地学习,现在我可以大致定位问题出在哪里,终于消除了这种心理,能够短时间内把个人能力提升一个档次,这就是AI的魅力。

不要怀疑AI的能力,我们可以运用它上线真正的产品,也不要指望现阶段的AI让你一步登天,踏踏实实跟它协作,向它学习,就算吃到了红利。

本文到这里就结束了,感谢您的阅读和关注。