GangDan知识库导出改进-可以直接导出下载好的文章原文了

GangDan 是个开源的 RAG 知识库工具,能下载 arXiv 论文全文、保存多种格式源文件、转成 Markdown 写进知识库。

项目地址:https://github.com/cycleuser/GangDan

需要安装ollama,然后先有ollama的本地模型(放心,只要很小的模型即可,低配机器用CPU即可运行):

ollama pull qwen3:0.6b #非常轻量级的对话模型  
ollama pull qwen3-embedding:0.6b #制作知识库用的嵌入模型

安装更新和运行的方式:

pip install gangdan -U  
gangdan --port 5001

然后浏览器访问 127.0.0.1:5001 即可使用。


前情提要:

我写了一个完全离线的 AI 编程助手-纲担(GangDan),聊聊背后的设计思路

完全离线本地运行的参考文献重命名、格式转换、知识库构建与问答工作流-Chou+NuoYi+Gangdan 三个工具联合使用

GangDan(纲担)升级:开源本地知识库 + 支持本地模型和在线模型的深度研究助手

GangDan 的知识库是怎么炼成的

GangDan 更新:可用在线模型+从写综述到写完整文章

GangDan(纲担)升级:给知识库加了个 Wiki,顺便聊聊为什么 RAG 不够用

GangDan(纲担)重构-几乎重做了一遍

GangDan 继续更新:知识库分析全面升级,精准文献综述一键生成

GangDan 五月中的集中更新:精准选文、知识库分析、学习模块全面修复


之前 GangDan 下载文章转换知识库的过程没考虑周全,没注意到有的文章并没有完整的 HTML 版本全文,只有摘要页面的 HTML。辛辛苦苦搜到一篇重要的 arXiv 论文,兴冲冲地把它加入知识库,结果问它任何细节,它都只会复述那段 500 字的摘要。

你问它论文第三节的实验细节,它翻来覆去就那几句话——因为库里压根就没有全文。

这问题其实挺隐蔽的。下载转换那段代码做得没话说,HTML、PDF、TeX 源文件都下载了,Markdown 全文也生成了,32KB 就放在 data/preprint_exports/ 目录里。可到了写入知识库那步,前端传过来的数据里只有搜索结果的摘要信息,没有全文路径。后端一看没有路径,就老老实实把摘要写进去了——全文就在隔壁目录躺着,它压根没去找。

更气人的是当初我图省事写了简单的 500 字符的截断,在content_preview = md_content[:500] 这行。知识库索引用的是截断后的 500 字符,RAG 检索自然也只搜得到碎片。你存了篇 32KB 的论文,检索时只能看到前 500 字,当时测试的时候确实方便,但真用起来可就完了。

而且好像很多之前稍微早一点的论文压根没有完整的 HTML 版本,只有摘要页面,PDF 和 TeX 倒是全的。之前代码没处理好这个情况,HTML 转换失败就歇菜了,其实 PDF 和 TeX 都可以兜底。

修复的思路不复杂:写入知识库那步如果没拿到全文路径,就去 preprint_exports 目录按 arXiv ID 找。找到了就整篇写入,找不到才退回去用摘要。HTML 转换失败就自动换 PDF,PDF 也不行就换 TeX,好歹能把全文捞出来。content_preview 那一刀截断也去掉了,全文索引,全文检索。

另外顺手把文件命名统一,保证不同格式的都能匹配。之前 Markdown 文件叫 Bai et al. (2023) - Qwen-VL.md,源文件却叫 2308.12966_source.pdf,光看名字对不上号。现在都改成 Bai et al. (2023) - Qwen-VL [2308.12966]_source.pdf 这种格式,方括号里是 arXiv ID,同一篇文章的文件排在一起,一眼就知道谁是谁。

之前的版本只能删除知识库里面的文章,现在知识库管理增加了文章导出的功能,能够将 KB 目录内的文件正常打包一份,pdf、html、tex和转出来的markdown都有。

预览时标签不可点