所有项目检索实验 / RAG 检索实验

RAG 检索实验找到位置,只是理解的第一步。

stu_rag 把检索拆开练:文本/PDF/图片加载、切分、Chroma 持久化、BM25、FlagEmbedding 向量化与重排、RRF 混合排序,最后接到 LangChain 问答链。后面 MediAtlas 里的多路召回,就是从这里接上去的。

ChromaBM25RRFFlagEmbedding

它在解决什么

stu_rag 不急着做产品,而是把检索拆成可以单独跑通的步骤。面对一份文档,真正不确定的通常不是“要不要上 Agent”,而是:加载对不对、切分会不会切断语义、关键词和向量怎么合、排完之后有没有把噪声抬上来。

拆开练过的部分

  • 加载:文本、JSON、PDF、Markdown,以及图片加载器。
  • 切分:按标点和段落切,也试过基于模型的语义切分。
  • 向量库:Chroma 本地持久化、集合创建、写入和查询,还有客户端 / 服务器两种启动方式。
  • 关键词:中文分词之后的 BM25。
  • 融合与重排:RRF 混合排序,FlagEmbedding 做向量化和 rerank。
  • 问答链:用 LangChain 把检索接到生成,写成一个综合案例。

数据集是练习用的本地文件,不是医疗语料。目的是把接口摸熟,而不是灌一个领域库。

一个还成立的直觉

向量相似度只说明方向接近,不说明内容正确。所以后来写 把知识库想象成一张地图 时,也还是同一句话:找到位置,只是理解的第一步。保留出处、让矛盾可见、证据不够时允许停在“不知道”。

和后面怎么接

MediAtlas 里的多路召回(BM25 + 稠密向量 + 图谱,再 RRF 和重排)就是从这里接上去的。差别在于:练习库可以随便召回;医疗回答必须再加来源门槛,并且允许检索失败后停止,而不是换一种说法继续编。

MUSIC

播放器由 QQ 音乐提供 · 打开歌曲 ↗ · 点封面播放导入的歌单

MY MUSIC

我的歌单

赛丽亚的旅馆(ACT.5-大转移前) - gate new

打开原歌单

正在准备搜索索引…

选择Enter 打开Esc 关闭