KruxAI/ragbuilder

A toolkit to create optimal Production-readyRetrieval Augmented Generation(RAG) setup for your data

RagBuilder 是什么?

RagBuilder 是一个 Python 库,可帮助您为任何文档集合自动构建**生产就绪的检索增强生成(RAG)**管道。它使用贝叶斯优化搜索 RAG 超参数空间(块大小、分块策略、检索器类型、重排序器、LLM 等),在测试集上评估每个配置,并返回性能最佳的设置。

核心功能

功能 运作方式(依 README 所述)
超参数调优 使用贝叶斯优化尝试分块、向量存储、检索器、重排序器和 LLM 设置的多种组合。
预定义模板 内置“最先进”的 RAG 模板(例如图检索器、上下文分块器),可直接使用。
测试数据 您可以生成合成测试集,或提供自己的查询/答案进行评估。
组件访问 优化后,您可以直接获取底层的向量存储、检索器和生成器对象。
API 部署 单次调用 builder.serve() 即可启动本地 HTTP API(POST /query)。
项目持久化 管道可保存到磁盘(builder.save()),并稍后重新加载(RAGBuilder.load())。

典型工作流程(快速入门示例)

from ragbuilder import RAGBuilder

# 1️⃣ 加载数据(URL、PDF 等)并使用默认配置
builder = RAGBuilder.from_source_with_defaults(
    input_source='https://lilianweng.github.io/posts/2023-06-23-agent/'
)

# 2️⃣ 执行优化(默认试验次数)
results = builder.optimize()

# 3️⃣ 查询完成的管道
answer = results.invoke("What is HNSW?")
print(answer)

# 4️⃣ 查看简短的优化报告
print(results.summary())

相同的模式也适用于自定义模型、自定义分块器或自定义测试数据集。

自定义点

  • 数据摄取 – 选择文档加载器(pymupdf、unstructured、web 等)、分块器(字符、语义、基于 token 等)和嵌入模型。
  • 检索 – 混合向量相似度、BM25、多查询、图式检索,并指定权重。
  • 重排序 – 插入任何列出的重排序器(BGE、mxbai、Cohere、Jina、FlashRank、RankLLM、ColBERT 等)。
  • 生成 – 提供一个或多个 LLM 配置(OpenAI、Azure OpenAI 等)和优化设置(例如试验次数)。
  • 评估 – 使用内置的 Ragas 评估,或提供自定义评估器类。

所有这些皆通过小型 Pydantic 风格配置对象(DataIngestOptionsConfig、RetrievalOptionsConfig、GenerationOptionsConfig)来表达。

安装与环境

  • 需要 Python 3.10+。
  • 建议创建隔离的虚拟环境(uv venv ragbuilder)。
  • 通过 uv pip install ragbuilder 安装(或使用文档中链接的其他方法)。
  • 在 .env 文件中设置必要的 API 密钥 – 至少需要 OPENAI_API_KEY。也支持 Mistral、Cohere、Azure OpenAI 和 Neo4j 的可选密钥。

部署与安全注意事项

  • 内置 UI 和 API 默认绑定 127.0.0.1;远程访问需要 API 令牌(RAGBUILDER_API_TOKEN)和 TLS 终止。
  • 提供 Docker Compose 以进行容器化设置(包含用于图式检索的 Neo4j)。
  • 基本遥测会发送至 Cloudflare 收集器;可使用 ENABLE_ANALYTICS=false 禁用。

项目状态

此仓库不再积极维护 – 仍可供参考,但不保证会处理新的问题或拉取请求。


TL;DR – RagBuilder 是一个 Python 工具包,可自动化 RAG 管道的设计、优化和部署,让您专注于数据,同时它会搜索分块、检索、重排序和 LLM 设置的最佳组合。

相关

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