最近Dify上线了一个新功能——知识管道(Knowledge Pipeline)。知识管道可以像乐高一样编排你的信息,以数据源(Data Source)作为起始节点,以知识库节点作为结束节点。其一般步骤为:从数据源导入文档 -> 使用抽取器提取文档内容 -> 将内容切分并清洗为结构化的片段 -> 存储到知识库中。
我大概学习了一下这个功能,发现还是非常有意思的,这样知识库入库就可以自定义解析和切片方式,而且数据来源也不止除了本地上传文件,还可以从Google Drive,Github,AWS S3等在线数据源获取。
这两天我刚好在捣鼓Cloudflare上的功能,发现Cloudflare上的对象存储R2是完全兼容S3协议的,而Dify上目前只有AWS S3的数据源插件,没有提供Cloudflare R2的数据源。与其提issue等官方来实现,不如自力更生一下干脆自己开发一个,反正R2和S3是完全协议兼容的,只要遵照官方给的AWS S3数据源插件代码改一改,应该不难。
于是经过阅读Dify插件开发文档和查阅互联网资料,我把连接AWS S3的代码成功改写成连接Cloudflare R2的代码。但代码功能完成并不等于插件开发完成,还需要编写README文档说明使用方法和PRIVACY文档说明隐私政策,最后需要打包乘difypkg文件,再上传到Dify的Github插件仓库上等待审核,审核完成后就会上架到Dify官方插件市场,就可以看到自己的大名和开发的插件啦。
该插件的Github仓库地址:https://github.com/aopstudio/dify-cloudflare-r2-datasource