DocAILab/XRAG

XRAG: eXamining the Core - Benchmarking Foundational Component Modules in Advanced Retrieval-Augmented Generation

📚 什么是 XRAG?

XRAG(eXamining the Core – Benchmarking Foundational Component Modules in Advanced Retrieval‑Augmented Generation)是一个用于检索增强生成(RAG)系统的开源基准测试框架。它让研究人员和开发者能够衡量各个 RAG 组件——如检索器、嵌入模型、LLM、分块器、编排器等——对整体性能的影响。


✨ 核心特性(如 README 中所述)

特性 功能
全面评估 运行多个评估维度(基于 LLM、深度评估、经典 IR 指标),并报告 F1、EM、MRR、Hit@K、MAP、NDCG 等指标,以及基于 LLM 的忠实度、相关性、正确性、幻觉、偏见等。
模块化架构 即插即用的检索器、嵌入模型、LLM 组件;支持向量、BM25、混合、基于树、基于关键词和基于摘要的检索。
多种 LLM 后端 支持 OpenAI API、通过 Ollama 运行的本地模型、Hugging‑Face 模型(例如 Qwen、LLaMA)。
编排器 / Agentic RAG 五种编排器类型——顺序、条件、迭代、并行、混合——用于构建更复杂的、类似代理的 RAG 流水线(self‑RAG、adaptive‑RAG、FLARE 等)。
Web UI xrag-cli webui 启动一个交互式仪表板,用于数据集上传、索引构建、流水线配置、实时查询测试和可视化评估报告。
CLI 和 API 命令行工具(xrag-cli)用于运行基准测试、生成 QA 对,以及启动 REST API 服务器(xrag-cli api)。
通过 TOML 配置 所有设置(API 密钥、模型选择、分块大小、数据集等)都保存在 config.toml 文件中;可以通过 --override 即时覆盖。
可扩展的评估模型 内置来自 LlamaIndex、DeepEval 的评估器,以及自定义指标;路线图包括新颖指标,如语义困惑度、熵、Auto‑J、Prometheus。

🚀 快速开始(快速入门流程)

  1. 安装 – Python 3.11+,创建 conda 环境,然后 pip install examinationrag(外加一些固定版本的依赖)。
  2. 配置 – 编辑 config.toml(API 密钥、模型、数据集、分块大小等)。
  3. 运行 – xrag-cli run 执行完整基准测试;添加 --override key=value 可在不编辑文件的情况下调整参数。
  4. 探索 – 使用 xrag-cli webui 启动 UI,上传数据集、构建索引、定义 RAG 流水线,并查看实时结果。
  5. 服务 – 通过 xrag-cli api 启动后端服务,并使用简单的 POST /query HTTP 调用进行查询。

🛠️ 典型使用场景

场景 XRAG 如何帮助
研究论文 – 比较检索策略 切换检索器模块(BM25 与向量),并立即查看对 MRR 和幻觉等指标的影响。
LLM 评估 – 衡量生成答案的忠实度 使用内置的基于 LLM 的指标,或插入自定义评估器来对答案正确性进行评分。
原型 agentic RAG 流水线 使用“adaptive‑RAG”编排器构建工作流,在 Web UI 中测试,并导出配置。
数据集创建 xrag-cli generate 从文档文件夹生成合成 QA 对,用于下游训练。
服务部署 运行 xrag-cli api 以暴露 REST 端点,供其他应用调用以进行检索增强回答。

📦 安装和运行时要求

  • Python ≥ 3.11
  • 可选:建议使用 conda 环境
  • 依赖项包括 jury、requests==2.27.1、urllib3==1.25.11、jiwer<4.0.0(固定版本以避免冲突)
  • 支持云 LLM API(OpenAI)和通过 Ollama 或 Hugging Face 运行的本地模型。

📚 了解更多


🙋‍♀️ 谁可能使用它?

  • 学术研究人员,研究检索、提示或 LLM 增强系统的评估。
  • 机器学习工程师,构建生产级 RAG 流水线,需要系统化的组件基准测试。
  • 学生,寻找一个动手框架来试验不同的检索器、嵌入模型和编排器。

以上所有信息均直接取自仓库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目