Repolode
Raudaschl

Raudaschl/rag-fusion

RAG-Fusion 的 Python 参考实现,通过 LLM 改写查询、BM25 与向量混合检索及 RRF 融合提升检索效果。

Star
960
Fork
113
未关闭 Issue
0
最近提交
28天前

这是什么?

RAG-Fusion 是一种用于检索增强生成(RAG)的检索方法。它先由 LLM 把用户问题改写成多个不同角度的查询,每个查询分别用 BM25 关键词检索和向量检索,再通过 Reciprocal Rank Fusion(RRF)合并排序结果,让多次出现的文档排到前面。它适合用户用词与文档索引不一致、单一表述容易漏掉相关资料的场景。

仓库中,main.py 提供基于 ChromaDB 和 OpenAI 的基础向量检索流程,eval/ 目录则是评测工具,可在 BEIR 的 NFCorpus 数据集上比较基线、混合检索、RAG-Fusion 等多种方案。此外还包含交叉编码器重排序模块,以及按 NDCG、精确率、召回率和 MRR 等指标记录的实验报告和每种配置的成本与延迟数据。

根据仓库中的实验结果,混合检索后加入重排序器能带来幅度不大但具有统计显著性的提升;若重排序器已足够强,仅使用向量的融合方案收益则很有限。

核心功能

  • 01由 LLM 为用户问题生成多个改写查询,覆盖不同表述。
  • 02对每个查询同时执行 BM25 关键词检索和向量检索。
  • 03使用 Reciprocal Rank Fusion 合并排序结果。
  • 04在融合后的候选池上支持交叉编码器等重排序环节。
  • 05在 NFCorpus 数据集上用 IR 指标和 bootstrap 置信区间评测各检索方案。
  • 06将 LLM 改写结果缓存到磁盘,并在本地持久化 ChromaDB 向量。

适用场景

  • 检索术语多样的专业文献,如医学或科研论文。
  • 在漏检代价较高的检索流程中提升召回率。
  • 在将查询改写与排名融合引入 RAG 系统前进行实验验证。

快速上手

  1. 1

    安装核心依赖

    pip install openai chromadb python-dotenv tqdm tabulate rank_bm25
  2. 2

    从模板创建 .env 文件

    cp .env.example .env
  3. 3

    在 .env 中填入你的 OpenAI API 密钥,然后运行演示

    python main.py

使用前须知

  • 运行演示和查询改写需要付费的 OpenAI API 密钥。
  • main.py 中的演示仅使用向量检索;表现最好的混合检索加重排序方案位于 eval/ 目录,需要额外安装依赖。
  • 实验依赖特定的大语言模型和决策模型,其中部分可能已停用或无法使用。

标签

#rag#information-retrieval#vector-search#reciprocal-rank-fusion#query-expansion#reranking#chromadb#openai#python#rag-fusion

常见问题

rag-fusion 是什么?
RAG-Fusion 的 Python 参考实现,通过 LLM 改写查询、BM25 与向量混合检索及 RRF 融合提升检索效果。 RAG-Fusion 是一种用于检索增强生成(RAG)的检索方法。它先由 LLM 把用户问题改写成多个不同角度的查询,每个查询分别用 BM25 关键词检索和向量检索,再通过 Reciprocal Rank Fusion(RRF)合并排序结果,让多次出现的文档排到前面。它适合用户用词与文档索引不一致、单一表述容易漏掉相关资料的场景。
rag-fusion 可以免费使用吗?用的什么许可证?
rag-fusion 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
rag-fusion 还在维护吗?
活跃维护中。rag-fusion 最近一次提交是在 2026年10月10日。
rag-fusion 适合用来做什么?
检索术语多样的专业文献,如医学或科研论文。 在漏检代价较高的检索流程中提升召回率。 在将查询改写与排名融合引入 RAG 系统前进行实验验证。
rag-fusion 怎么安装和运行?
安装核心依赖: pip install openai chromadb python-dotenv tqdm tabulate rank_bm25 从模板创建 .env 文件: cp .env.example .env 在 .env 中填入你的 OpenAI API 密钥,然后运行演示: python main.py
在哪里获取 rag-fusion?
源代码和安装说明在 GitHub 上:https://github.com/Raudaschl/rag-fusion

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目