neuml/rag

🚀 Retrieval Augmented Generation (RAG) with txtai. Combine search and LLMs to find insights with your own data.

What it solves

本项目提供一个用户友好的 Streamlit 应用程序,实现 Retrieval Augmented Generation(RAG),通过将响应根植于特定、相关的上下文,确保 LLM 响应的事实正确性。用户可以轻松在传统的向量检索和更高级的图形检索方法之间切换。

How it works

该应用基于 txtai 框架构建,使用两种主要检索策略处理用户查询:

  • Vector RAG:执行标准向量搜索,找到前 N 个最相关的文档匹配,作为 LLM 的上下文。
  • Graph RAG:使用语义图通过图路径遍历或图查询扩展(使用 gq: 前缀)生成上下文。也可以结合两种方法,在特定图路径内缩小搜索范围。

用户可以通过 URL、文件路径或直接使用 # 前缀的文本输入,动态将数据添加到索引中。

Who it’s for

开发者和 AI 研究者,想要一个即用的界面来测试和比较不同的 RAG 检索策略(向量 vs. 图形),以及管理自己的知识库。

Highlights

  • Dual Retrieval Modes:同时支持标准 Vector RAG 和 Graph RAG。
  • Dynamic Data Indexing:可直接通过聊天界面使用 # 命令添加文档或文本片段。
  • Flexible Configuration:通过环境变量高度可配置,包括 LLM 选择、嵌入数据库和文本抽取后端(如 Docling)。
  • Visual Graph Representation:Graph RAG 查询会显示相应的图形,以可视化上下文的检索方式。