VHw8TzVkt 发表于 7 天前

我开源了一个轻量级知识库工具:EasyRAG使用分享


为什么我要开发它?

老实说,市面上类似工具不少,但要么太重,要么需要联网,所以我就想做个够用、够轻、够简单的工具,主要解决这几个我自己的痛点:

[*]本地文档太多,找起来头疼
[*]不想把文档传到云端(有些是公司内部资料)
[*]普通笔记本性能有限,不想装太多大型软件
[*]希望能快速获取多文档的关键信息
主界面


文件上传


这部分我花了不少时间优化用户体验。上传很简单,拖拽就行。支持PDF、Word、TXT等格式。还有批量处理功能,因为经常会一次性处理一个项目的多个文档,一个个上传太烦了。后台会自动提取内容。
开发EasyRAG时,我特别重视文档分块这一环节,因为它直接影响检索质量。我最终实现了六种分块策略:text_semantic结合了语义和文本特征,是我处理大多数文档的首选;对于内容连贯性强的论文,我通常用纯semantic方法;遇到结构化文档时,hierarchical和markdown_header策略效果更好;而对于没有明显结构的长文本,recursive_character递归分块表现不错;特别是在搜索场景中,bm25分块算法的准确率有明显提升。这套多策略分块系统让EasyRAG能够智能处理各种类型的文档,而不是用一刀切的方式,这也是我反复测试后最满意的一个功能点。
文档检索


我这块检索是利用了向量库faiss以及gte embedding模型和gte的rerank模型来实现的,效果上基本可以满足语义检索的要求。
智能问答


会自动下载一个7b的小模型对检索的内容进行总结回答。
配置要求

做这个项目时我有个很明确的目标:一定要能在普通电脑上流畅运行。因为我自己的笔记本也就是普通配置,不想搞得电脑动不动就卡死。

[*]完全本地部署,数据不出本机
[*]最低配置要求:4GB内存,2核CPU
[*]不需要GPU,用CPU就能跑得不错
[*]占用资源比较少,后台运行不影响其他工作
在数据处理方面,我加了一些自己的小创新:

[*]自动根据文档特点选择不同的分块策略
[*]只索引重要内容,过滤掉废话
[*]检索算法做了优化,在保证准确率的同时提高速度
使用建议

用了一段时间后,我发现几个提升体验的小技巧:

[*]PDF文件最好是文本型的,图片型的识别率会低一些(也是基于本地ocr模型跑的,如果使用的cpu的话解析速度也会很感人)
[*]文件不要太大,最好拆分一下,处理速度会更快
[*]用固态硬盘的话速度会有明显提升(我换了SSD后快了不少)
[*]内存够用的话可以适当提高并发数,处理多文件会更快
后续计划

这个项目还在不断完善中,我计划增加这些功能:

[*]增加多语言支持
[*]提供更多自定义选项
[*]增加结构化数据库的同步支持
[*]对接dify知识库的接口支持
如果你也有好的想法,欢迎在GitHub上提issue或者PR:EasyRAG项目地址:https://github.com/BetaStreetOmnis/EasyRAG
写在最后

2025年的今天,AI创新已如井喷,几乎每天都有新的技术出现。作为亲历三次AI浪潮的技术人,我坚信AI不是替代人类,而是让我们从重复工作中解放出来,专注于更有创造性的事情,关注我们公众号口袋大数据,一起探索大模型落地的无限可能!
页: [1]
查看完整版本: 我开源了一个轻量级知识库工具:EasyRAG使用分享