English 简体中文 繁體中文 한국 사람 日本語 Deutsch русский بالعربية TÜRKÇE português คนไทย french
查看: 6|回复: 0

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

[复制链接]
查看: 6|回复: 0

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

[复制链接]
查看: 6|回复: 0

257

主题

0

回帖

781

积分

高级会员

积分
781
VHw8TzVkt

257

主题

0

回帖

781

积分

高级会员

积分
781
6 天前 | 显示全部楼层 |阅读模式

为什么我要开发它?

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

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


文件上传


这部分我花了不少时间优化用户体验。上传很简单,拖拽就行。支持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不是替代人类,而是让我们从重复工作中解放出来,专注于更有创造性的事情,关注我们公众号口袋大数据,一起探索大模型落地的无限可能!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

257

主题

0

回帖

781

积分

高级会员

积分
781

QQ|智能设备 | 粤ICP备2024353841号-1

GMT+8, 2025-5-1 11:33 , Processed in 2.981133 second(s), 23 queries .

Powered by 智能设备

©2025