作为一名长期和代码战斗的新时代代码民工,我这几天通过"uniapp"开发一个微信小程序,并自己在本地部署了一套Ragflow服务,通过和RAGFlow的API对接实现了一个自定义聊天助手(小程序)并打通私有化知识库的功能。
简单说,就是“知识库+聊天助手”,解决私域知识场景的快速问答问题。
产品属于MVP阶段,勿喷×,仅仅为了持续磨合和探索vibe-coding的深浅。
接下来我不介绍开发细节,而是把这次在通过跨平台遇到的问题及解决思路共享给大家,希望能够帮助到有类似需求的小伙伴们。
- 先看看呈现的效果(小程序 & RAGflow后端)
- 小程序(自定义开发,by uniapp)
- RAGflow 本地部署版本
- 核心编程工具
- Claude Code + 一系列常用Skills + Minimax 2.7
- HBuilder(uniapp开发工具)
- 微信开发者工具(小程序开发工具)
- 龙虾(主要是帮我写了Ragflow启动文件和测试整套环境可用性)
-
重点部分,聊聊我遇到了什么问题
- docker-compose文件配置错误
龙虾给我写了一个docker compose启动Ragflow的脚本,一开始我直接启动,很高兴发现所有服务都启动正常,并且可以访问到后台界面,以为是部署完全正确,不禁感慨我虾真伟大!
可是,记忆和搜索功能偶尔出现一些小错误,没有理会他,以为是正常的现象,先忍着。
直到第二天,我用小程序开发者工具,快速通过Claude Code开发了一个列表,想要调用它的API的时候,发现API怎么都访问不了,我一度怀疑它给出的API文档有问题,找了Github、小破站大神视频和ragflow.io都看过,确定没有错。
最后,我排查到一个问题,龙虾给我写的nginx脚本的代理居然是错误的,不仅代理路径错了,很多SSE(流式数据)相关的nginx配置也没有设置。
我是直接从Github的地址查看了 官方给出的nginx配置和api路径一直请求不到(或报404)大致猜测到问题在这里。
当我排查到这里的时候,申请就简单了,我做了几个关键处理解决了这个问题:
- 让龙虾去下载了ragflow github站点的nginx目录文件。
- 告诉它,对比它和我的nginx配置,并重新写nginx配置,以官方的参考为准。
- 修复相关的docker compose映射和配置。
默默等待它执行任务,最终我的龙虾帮我修复了这个问题,执行"docker compose up -d"以后,一切恢复了正常:API可用,之前报错的小问题也消除了。
- 小程序UI样式问题
一开始,我还是比较天真的,以为过了这么久,AI对于小程序的语法应该能够掌握非常好才对,结果让我意外的时,很多UI样式问题,怎么和Caude Code沟通,最后都是无法修复,例如:
底部间距错误:
流式数据交互错误,怎么沟通都没有办法解决小程序流式数据处理错误问题,至少在通过微信开发者工具去开发解决不了。
于是,我查了一些资料,确实发现AI对于小程序这种“小众”语法支持不好,于是我选择了跨平台,转到AI熟悉的战场:vue3。
为了支持跨平台,我选择了uniapp+小程序开发模式,结果发现之前的一些问题居然好了。
其实,这里最大的切换点,在于小程序不要直接用原生开发语言开发,而是选用跨平台框架,尽量采用vue3 或者React去开发,Claude Code可以非常得心应手,很快就走上了正轨。
开发效率,起飞。
- 流式数据处理问题
这个流式数据处理问题,也是有点小麻烦,反复折腾Claude Code没有解决在小程序里面的兼容问题:流式数据格式处理错误、中文乱码等。
迷茫之际,我想到一个小技巧,就是谷歌一下,搜索“小程序流式数据处理”,找到了一篇我认为应该是有帮助的博客([微信小程序实现流式传输(打字机效果)]juejin.cn/post/728862…),然后我通过Cluade Code 将这篇博客转为我本地的docs文档并存入我的源代码目录。
接着,我直接回到我的Claude Code,让它直接阅读这篇md文件,最后预料之中,流式数据处理完全正确!
这里给大家的建议:如果遇到AI解决不了的问题,去找到准确的博客、官方文档,直接准确告诉它这么做就可以了,不要想着它可以聪明到什么问题都可以自己去解决,很多知识盲区不可避免会碰到。
- 怎么让AI更懂小程序开发
为了让我的Claude Code在当前上下文中,更加了解和避免开发过程中踩坑,我让于是复刻第三步的方法,去谷歌里面搜索“uniapp 小程序开发 踩坑”关键词,找到了一篇我认为写得还算有用的博客(也许还有更好的,但是我没时间去继续找了,为了更快迭代起来),相关文章:
血泪合集!uniapp小程序开发的超长实践总结!](juejin.cn/post/702068…)
我让Claude Code 将它获取并转为markdown格式存入我的项目知识库文档(docs),接着告诉AI阅读并写入CLAUDE.md引用,让AI下次开发小程序兼容问题注意避免这里的问题,结果后面的每一个页面开发,丝滑,丝滑!
一切都符合预期,产品最终效果如下:
简单总结一下,并附上我使用的skills,这些工具还是效率惊人:
- 当Claude Code(其他agent工具也可以),开发遇到反复沟通无法解决的,尝试找到精准的文章,直接喂给他。
- 开发特定小众产品,把相关开发知识存入项目文档,并引用它。
- 反复沟通无法解决的问题,不要一直和AI硬刚到底,直接回滚再来一遍才是王道,复杂的上下文不仅消耗token,还会让AI越来越“傻”。
附上我的Claude Code Skills清单: