随记 - OSPP 开发小结
一晃两个月的暑假过去了,OSPP 也进入到了最后的一个月,按照之前的项目申请书,这个月基本上就是要准备收尾了,最近刚好在写项目文档和项目总结,以此来谈谈我自己的感受和想法
申请
刚开始申请的时候,是准备申请三个项目
第一个项目是一个游戏面板,我刚开始接触运维的时候玩过这个面板,而且我本身也做过一段时间的社团游戏服主,而且也比较了解 Docker,当时给那个老师写了邮件,没有回
第二个项目就是我现在参与的这个项目,邮件发了过去之后老师第二天马上就回了,说会整理一些资料,整理完成之后就马上发给我,然后我又马上回了一份邮件,说我对这个项目非常感兴趣,愿意加入到这个项目里面之类的
然后我等了可能有半个礼拜,老师还是没回我邮件,然后我就开门见山,问老师能不能直接加他微信,然后老师回邮件也很快啊,就马上把他的微信给我了,并且和我说他最近比较忙,没有来得及回
然后导师和我说这个项目他其实也不是很熟悉,就给我介绍了另外一位老师(我后来正式加入社区了才知道他是架构师),然后那位老师就拉我进社区的飞书,商榷具体的开发目标,实现路径等等
现在想想,包括在之后实际开发的过程中,我做的有些事情、说的有些话其实是有些鲁莽的,好在确实碰到个好导师
第三个项目瞄准了一个 Go 开发,我没记错的话好像是和 K8s 相关的,做一个和网关的项目,写一个插件,但是因为我已经和第二个导师联系了,就没有去和第三个导师沟通
之后就是很漫长的等待,也算是意料之内的中标成功了
开发
这个社区有两个项目,一个项目就是我负责的这个,和传统的后端开发有点类似;另外一个是偏向硬件的陪伴机器人
我导师就给重新拉了个群,一共五个人
因为我这个项目的落地和实际的社区需求挂钩,而我们这个社区又比较特殊,人员流动比较快,经常会出现“这个人写的接口,但是人找不到”的情况,我为此困惑了很久,导致前期的开发进度比较缓慢
后来我导师就给我拉进了社区的核心开发者群,里面的老师就给我找到主要做开发的老师,然后告诉我目前社区主要用的架构是啥,前后端接口大概是怎么定义的(主要是用 FastGPT,所以我的项目前后端基本上都是按照 FastGPT 的响应和请求格式定义的)
这时候思路就很清晰了,我做了一个很巧妙的设计,先按照 FastGPT 的响应和请求格式定义好数据模型,然后再定义好一个基类,最后再用注册表模式去注册每个 Agent
这样的话后期的维护就变得非常简单了,而且这样 Vibe Coding 也友好,后面的一些 Agent 我是把它的接口文件爬下来,直接喂给 Cursor,基本上一下子就兼容完了
做到这里,项目基本上就进行了大半,这时候已经是七月下了
当时比较闲,因为 OSPP 要求必须在原有的仓库里面先 Fork,最后再 PR/MR,我 PR 的这个仓库,里面文档比较乱,我就尝试用 VitePress,做成了一个类似 Wiki 的东西,当时也是“无心插柳柳成荫”,我把这个部署到了 Cloudflare Pages 上,给社区的老师看了
然后那个老师很开心啊,说捡到宝了,然后向我伸出了橄榄枝,问我愿不愿意加入到社区的其他项目中,我欣然接受
另一个项目
我加入到这个社区接受的第一个非 OSPP 相关的项目是一个 Next.js 项目,这个项目原本是部署到类似 Vercel 这样的平台上,但是那个平台不是那个文档,需求是能本地部署
然后我就尝试把它封到容器里面,并且修复了一些 Bug,因为当时运维的一些问题,没有办法部署到社区的服务器上,我就丢到了自己阿里云的服务器上,这里是使用统计
之后去了广州,去广州基本上没有做什么开发,社区的另外一位老师,他是在读博士,突然来问我愿不愿意搞 RAG,说实话我对其几乎没有任何系统性经验,更多的经验可能是自己折腾 FastGPT 或者玩 Dify 得到的一些不那么准确的总结性经验,但我还是想试一试
我学到了什么
技术上
使用的语言是 Python,技术栈是 FastAPI+MongoDB+MinIO
如果说要学到什么,那就是看了很多的 Agent 平台的 API 文档和 SDK,对各种 Agent 的使用和接入有了比较深的理解
刚开始开发的时候,我碰到了 Python 虚拟环境混用的问题,macOS 会自动激活本地 conda 的 base 环境,导致我uv pip install
安装的很多模块都进了 conda,而且我还做了件非常傻逼的事情,尝试删掉本地项目下的 requirements.txt
,导致依赖完全丢失,最后一个一个手补回来的
社会能力上
本人擅长写 README
要勇敢,我之前很害怕被拒绝,但我要是没有发出那封邮件,我会不会就和这次的 OSPP 项目失之交臂了呢?我如果没有壮起胆子和各种老师去交流,去提问,也许项目不会有那么顺利地进行,也许这个项目也能做完,但是肯定没有现在这样的完善,这样的有意思
还写了个比较长的文章,发在了某神秘平台上,出于羞耻就不发出来了
未来我还会继续在这个社区里面做一些贡献,也许明年我也会尝试继续去申请项目,不一定是 OSPP,也可能是 GSOC