写在ai-shifu的v1.0.3
AI-Shifu 这个项目,我们是从一开始发布的时候,就做好了开源准备;
但是其实当时能力有限,并没有把开源这件事情做到一种极致和理想的状态;
在这一年多的迭代过程中,我们终于觉得它有点像一个及格的开源项目了,所以今天过来好好的说一下,也算是个人从传统码农到开源工程师的一个自我复盘吧。
站在我的角度,AI-Shifu解决了什么问题
产品形态上,我们是一个“在线教育”的平台,我们把内容的单元,称为“师傅”,对标于教育场景,更像是一种课程的体现。
所以我们的系统,也分成了老师端(管理后台)和学生端(C端)两个部分。
当你在管理后台编辑师傅时,更直观的是一种写作的体验,可以理解成按照自己的思路去写一篇文档,这篇文档可以是固定的内容,也可以是一些提示词的组合。
我提到了提示词,是的,没错,每个独立的段落,在不加特殊标记的情况下,在对外呈现都会做为一个提示词,包含在系统管理的上下文中,从而向学习者提供一个AI交付的个性化呈现。
有意思的是,你可以在这个文档中定义一些交互,比如一个按钮,一个输入框,用户输入以后,可以将用户的输入集成到上下文中,从而让AI进行个性化的输出。当然,这些交互也是很简单的格式化的文字。
由于这些固定内容,动态内容,交互内容的结合,事情就变得有意思起来,虽然在写文字,但是你的产出是一套个性化输出+交互的流程
它更类似于一个agent编写的平台,只不过这个平台是用在互动教学的场景。
从闭源工程师到开源工程师,我的经历与思考
我本人在ai-shifu之前,其实没有真正的接触开源项目,大多也就是拿来用一用。
而AI-Shifu开源之后,对我的触动是很大的,之前的开发工作都是交付功能的,只要功能实现,测试通过,大家对代码的质量要求没有那么高,更多的像是一种“面子工程”,但是开源完全不一样,开源是交付代码,这是一种面子里子都要展示出来的过程,不仅追求功能,更追求代码质量,乃至于代码的美感: 一个变量的命名,一个提交的原子性,甚至一个提交