Controllable-RAG-Agent

用图算法让RAG回答复杂问题更准更可控

这是一个面向复杂问答场景的检索增强生成(RAG)解决方案。它针对传统RAG在处理多跳、复杂问题时的不足,采用基于图的算法来组织、检索和融合信息,从而提升回答的准确性和可解释性。项目提供了完整的实现代码和示例,支持用户自定义知识库和查询流程,核心能力包括图构建、图检索、答案生成以及可控的推理路径。它解决了简单向量检索无法关联多源信息、回答缺乏逻辑连贯性的问题,适用于需要深度推理和精准答案的领域,如法律咨询、医疗问答、技术文档支持等。

开源 free 搜索知识
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1626
维护状态 活跃
是否开源 是
定价模式 free

项目数据

分类搜索知识
开发团队NirDiamant
所属国家
官网地址
定价模式free
价格说明开源项目,Apache-2.0 许可证,可免费使用和部署。
访问状态
是否开源是
开源协议Apache-2.0
主要语言Jupyter Notebook
技术栈/模型advanced-rag,agent,genai,langchain,langgraph,llm,llms,openai,python,rag
GitHub 星标★ 1626
30天Star增速
HF 下载量
上线时间2024-04-03 00:00:00
最近更新2026-09-21 00:00:00
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数2

使用教程

难度:入门 约 15 分钟 部署方式:本地安装 6 步

环境要求

  • Python 环境(需可运行 Jupyter Notebook)
  • pip 包管理工具
  • OpenAI API Key
  • Groq API Key
  • Docker 与 docker-compose(仅在使用容器方式时需要)

安装与启动步骤

  1. 1克隆项目仓库

    把 GitHub 上的项目代码下载到本地,并进入项目根目录,后续所有命令都在这个目录下执行。

    git clone https://github.com/NirDiamant/Controllable-RAG-Agent.git
    cd Controllable-RAG-Agent
  2. 2安装 Python 依赖

    用项目自带的 requirements.txt 一次性安装全部依赖包,建议先创建虚拟环境避免污染全局环境。

    pip install -r requirements.txt
  3. 3配置 API 密钥

    在项目根目录新建 .env 文件,填入 OpenAI 与 Groq 的 API Key,可参考仓库中的 .env.example 文件格式。

    OPENAI_API_KEY=sk-xxxxxxxx
    GROQ_API_KEY=gsk_xxxxxxxx
  4. 4打开教程 Notebook

    用 Jupyter 打开 sophisticated_rag_agent_harry_potter.ipynb,按顺序逐格运行,了解图构建、图检索与答案生成的完整流程。

  5. 5启动可视化界面

    在本地运行 Streamlit 脚本,实时观察智能体的推理与检索过程,界面会自动在本地端口启动。

    streamlit run simulate_agent.py
  6. 6用 Docker 启动(可选)

    若不想本地装依赖,可直接构建并启动 Docker 镜像,启动后同样通过浏览器访问可视化界面。

    docker-compose up --build

关键配置

配置项必填说明示例
OPENAI_API_KEY是调用 OpenAI 模型所需的密钥,写在根目录 .env 文件中sk-xxxxxxxx
GROQ_API_KEY是调用 Groq 模型服务所需的密钥,写在根目录 .env 文件中gsk_xxxxxxxx

如何确认成功

浏览器打开 http://localhost:8501/ 能看到智能体实时可视化界面,或在 Notebook 中逐格运行无报错、能返回答案。

常见问题

Q:必须同时配置 OpenAI 和 Groq 两个密钥吗?

A:README 的 .env 示例中同时列出了 OPENAI_API_KEY 和 GROQ_API_KEY 两项,建议按 .env.example 全部填写,避免运行时报缺少密钥。

Q:Docker 方式和本地安装该选哪个?

A:本地安装适合调试和改代码,需要自己装依赖;Docker 方式只需 docker-compose up --build,环境隔离更省事。

Q:启动后去哪里访问界面?

A:Docker 方式下访问 http://localhost:8501/,本地 streamlit 方式启动后终端也会输出同样的本地地址。

Q:想先了解原理从哪看起?

A:先打开 sophisticated_rag_agent_harry_potter.ipynb 这个分步教程,它演示了从图构建到答案生成的完整流程。

注意事项

  • README 未给出具体的 Python 版本要求,建议使用较新的 Python 3 版本并在虚拟环境中安装依赖。
  • .env 文件必须放在项目根目录,否则代码可能读取不到密钥。
  • 可视化界面默认使用 8501 端口,若被占用需自行释放端口或调整 Streamlit 启动参数。
  • API 密钥属于敏感信息,不要提交到 Git 仓库或公开分享。

核心亮点

  • 基于图结构建模知识关联,支持多跳推理,回答更准确
  • 提供可控的推理路径,用户可干预生成过程,增强可解释性
  • 代码实现完整,包含示例和文档,易于上手和二次开发

不足之处

  • 对非技术用户门槛较高,需要理解图算法和RAG原理
  • 文档/社区待观察,项目成长中,生态尚不成熟

适用场景

  • 法律条文与案例的关联问答
  • 医疗知识库的复杂症状推理
  • 企业技术文档的深度检索与问答

替代项目

Haystack、LlamaIndex、LangChain

项目介绍

Controllable-RAG-Agent 是搜索知识领域的开源项目,由 NirDiamant 开发,2024 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,626)位列前 30%,在搜索知识分类中处于中上游。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-21。Apache-2.0 许可证,可免费使用和部署。

它主要面向的使用场景是:法律条文与案例的关联问答。同类可对比的替代方案包括 Haystack、LlamaIndex、LangChain。

上一篇:AgenticRAG-Survey

下一篇:ragbuilder

同类项目推荐

firecrawl 开源

网页抓取像喝水一样简单,开发者省下整周加班

The web data API to search, scrape, and interact at scale.

★ 183325 2026-08-09
contoso-chat 开源

一键跑通 Azure RAG 应用,从代码到评估部署全流程

This sample has the full End2End process of creating RAG application with Prompty an···

★ 766 2026-08-09
graphify 开源

整个代码库画成一张图,找问题一眼定位

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable k···

★ 120493 2026-08-09
ragflow 开源

让大模型用上你的私有知识,搭建可靠的企业级RAG应用

RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fu···

★ 91170 2026-08-09