当前位置: 首页 > news >正文

腾讯开源Youtu-GraphRAG

Youtu-GraphRAG:垂直统一的图增强复杂推理新范式

重新定义图检索增强推理范式,以97%的Token成本节约和16.62%的精度提升实现帕累托改进*

项目简介

Youtu-GraphRAG 是一个基于图Schema实现垂直统一的图增强推理范式,将GraphRAG框架精巧地集成为一个以智能体为核心的有机整体。实现了通过在图Schema上的最小化人为干预下进行跨领域的无缝迁移,为业界应用提供了泛化、鲁棒、可用的下一代GraphRAG范式。

Youtu-GraphRAG三大落地场景

🔗 多跳推理与总结:解决需要多步推理的复杂问题
📚 知识密集型任务:处理依赖大量结构化知识的问题
🌐 跨域扩展:轻松支持学术论文、个人知识库、私域/企业知识库等多个领域,Schema人工干预最少化

框架架构

在这里插入图片描述

交互式体验界面

在这里插入图片描述
在这里插入图片描述

核心贡献与创新亮点

基于统一的图检索增强生成智能体范式,Youtu-GraphRAG引入了多项关键创新,这些创新共同构建了一个精密集成的完整框架:

1. Schema引导的层次化知识树构建
  • 🌱 种子图Schema:通过引入有针对性的实体类型、关系类型和属性类型,为自动化提取智能体提供精确约束
  • 📈 可扩展Schema演进:支持动态扩展Schema,实现了跨领域知识的自主演化和高质量抽取
  • 🏢 四层架构设计
    • 第1层(属性层):存储实体的属性信息
    • 第2层(关系层):构建实体间的关系三元组
    • 第3层(关键词层):建立关键词索引体系
    • 第4层(社区层):形成层次化的社区结构
  • 业界应用快速适配:在Schema最小化人为干预的前提下,实现跨领域快速部署
2. 结构语义双重感知的社区检测
  • 🔬 创新社区检测算法设计:巧妙融合结构拓扑特征与子图语义信息,构建全面的知识组织体系,在复杂网络中提炼高维度知识加强推理总结能力,社区生成效果显著优于传统Leiden和Louvain算法
  • 📊 层次化知识树:自然生成既支持自顶向下过滤又支持自底向上推理的结构
  • 📝 智能社区摘要:利用大语言模型增强社区摘要生成,实现更高层次的知识抽象
    在这里插入图片描述
🤖 3. 智能迭代检索
  • 🎯 Schema感知的复杂问题分解:深度理解图Schema结构,将复杂查询针对性智能转换为可并行处理的子查询
  • 🔄 迭代反思机制:通过迭代检索思维链进一步实现深度反思,显著提升推理能力

在这里插入图片描述

4. 领先的落地级构建、索引与推理能力及用户友好体验
  • 🎯 性能全面优化:通过精心设计的提示策略、索引机制和检索算法,同时降低Token消耗并提升回答精度
  • 🤹‍♀️ 用户体验友好: output/graphs/四层知识树结构支持neo4j直接导入可视化,知识归纳、推理路径对用户直接可见
  • 并行子问题处理:采用并发机制处理分解后的问题,在复杂场景下仍能保持高效运行
  • 🤔 迭代推理演进:逐步构建答案,并提供清晰的推理轨迹,增强结果可解释性
  • 📊 企业级扩展性:专为私域及企业级部署而设计,新领域接入时人工干预降到最低
📈 5. 公平匿名数据集'AnonyRAG'
  • Link: Hugging Face AnonyRAG
  • 有效防范大语言模型和嵌入模型预训练过程中的知识泄露问题
  • 深度测试GraphRAG在真实场景下的检索性能表现
  • 提供中英文双语版本,支持多语言研究
6. 统一配置管理
  • 🎛️ 集中化参数管理:所有组件均可通过单一YAML文件进行统一配置
  • 🔧 运行时动态调整:支持在程序执行过程中动态修改配置参数
  • 🌍 多环境无缝支持:在图Schema最小人为干预的前提下,轻松实现跨领域迁移
  • 🔄 完善向后兼容:确保现有代码在框架升级后仍能正常运行

实验表现

在GraphRAG-Bench、HotpotQA和MuSiQue等六个专业跨领域多语言的基准数据集上进行了广泛实验,充分证明了Youtu-GraphRAG的企业级扩展性和泛化性。相比最先进的基线方法,Youtu-GraphRAG显著推动了帕累托前沿突破,实现了最高90.71%的Token成本节约16.62%的精度提升。实验结果充分展现框架的卓越泛化性,能够在Schema干预最小化的前提下实现跨领域的无缝迁移。
在这里插入图片描述
在这里插入图片描述

项目结构

youtu-graphrag/
├── 📁 config/                     # 配置系统
│   ├── base_config.yaml           # 主配置文件
│   ├── config_loader.py           # 配置加载器
│   └── __init__.py                # 配置模块接口
│
├── 📁 data/                       # 数据目录
│
├── 📁 models/                     # 核心模型
│   ├── 📁 constructor/            # 知识图谱构建模块
│   │   └── kt_gen.py              # KTBuilder - 层次化图构建器
│   ├── 📁 retriever/              # 检索模块
│   │   ├── enhanced_kt_retriever.py  # KTRetriever - 主检索器
│   │   ├── agentic_decomposer.py     # 复杂查询解耦
│   └── └── faiss_filter.py           # DualFAISSRetriever - FAISS检索器
│
├── 📁 utils/                      # 工具模块
│   ├── tree_comm.py               # 社区检测算法
│   ├── call_llm_api.py            # 大语言模型API调用
│   ├── eval.py                    # 评估工具
│   └── graph_processor.py         # 图处理工具
│
├── 📁 schemas/                    # 种子Schema定义
├── 📁 assets/                     # 静态资源(图片、图表等)
│
├── 📁 output/                     # 输出目录
│   ├── graphs/                    # 构建完成的知识图谱
│   ├── chunks/                    # 文本分块信息
│   └── logs/                      # 运行日志
│
├── 📁 retriever/                  # 检索缓存
│
├── main.py                       # 🎯 主程序入口
├── setup_env.sh                  # 安装web依赖库
├── start.sh                      # 启动web服务
├── requirements.txt              # 依赖包列表
└── README.md                     # 项目文档

快速开始

提供两种方式来运行并体验示例服务,考虑到基础环境差异的影响,推荐优先使用docker环境来启动。

通过docker环境启动

本启动方式依赖docker环境,建议参照官方文档安装。

# 1. 克隆项目
git clone https://github.com/TencentCloudADP/Youtu-GraphRAG# 2. 按照.env.example文件格式创建 .env
cd Youtu-GraphRAG && cp .env.example .env
# 按照如下格式在.env中配置OpenAI API 格式的 LLM API
# LLM_MODEL=deepseek-chat
# LLM_BASE_URL=https://api.deepseek.com
# LLM_API_KEY=sk-xxxxxx# 3. 通过dockerfile文件构建镜像
docker build -t youtu_graphrag:v1 .# 4. 启动docker容器
docker run -d -p 8000:8000 youtu_graphrag:v1# 5. 访问 http://localhost:8000 体验Youtu-GraphRAG
curl -v http://localhost:8000

直接启动Web服务体验交互式界面

本启动方式依赖Python 3.10和对应的pip环境,建议参照官方文档安装。

# 1. 克隆项目
git clone https://github.com/TencentCloudADP/Youtu-GraphRAG# 2. 按照.env.example文件格式创建 .env
cd Youtu-GraphRAG && touch .env
# 按照如下格式在.env中配置OpenAI API 格式的 LLM API
# LLM_MODEL=deepseek-chat
# LLM_BASE_URL=https://api.deepseek.com
# LLM_API_KEY=sk-xxxxxx# 3. 配置环境 
./setup_env.sh# 4. 启动服务
./start.sh# 5. 访问 http://localhost:8000 体验Youtu-GraphRAG
curl -v http://localhost:8000

体验效果

在这里插入图片描述

  • 查询结果准确
  • 前端交互体验很差
  • 查询响应速度有点慢

如果没有梯子,使用Docker启动之前,需要改一下配置Dockerfile里面的环境变量配置,
HF_ENDPOINT 配置要加上去,不然系统用到的sentence-transformers/all-MiniLM-L6-v2模型,没法从huggingface网站下载,国内没有梯子,没法访问huggingface。

ENV PYTHONUNBUFFERED=1 \PIP_NO_CACHE_DIR=1 \PIP_DISABLE_PIP_VERSION_CHECK=1 \HF_ENDPOINT=https://hf-mirror.com

Github开源地址


文章转载自:

http://2Gafyv6e.kmwsz.cn
http://uX5nVNaa.kmwsz.cn
http://1GN5ryC1.kmwsz.cn
http://GTd2gm4o.kmwsz.cn
http://mECwh3X6.kmwsz.cn
http://nX7MQQXO.kmwsz.cn
http://NiL75RTM.kmwsz.cn
http://macH5wYV.kmwsz.cn
http://sH6aaanW.kmwsz.cn
http://3MEZdN2a.kmwsz.cn
http://ZIujxPmM.kmwsz.cn
http://QHFalr5e.kmwsz.cn
http://KAUkJ8pn.kmwsz.cn
http://Ne1kPJos.kmwsz.cn
http://aUBgUBnS.kmwsz.cn
http://ltXpoFdB.kmwsz.cn
http://0V6zpYML.kmwsz.cn
http://6wqQoXmV.kmwsz.cn
http://xR2ulf2N.kmwsz.cn
http://9r60rX4c.kmwsz.cn
http://3D9AC2Db.kmwsz.cn
http://Qus6xzXa.kmwsz.cn
http://oqM3qrYH.kmwsz.cn
http://LwYdvkTE.kmwsz.cn
http://dqx3Ufej.kmwsz.cn
http://h0yvxfRD.kmwsz.cn
http://lMu6o91q.kmwsz.cn
http://wsE9OI57.kmwsz.cn
http://UsqqYzQi.kmwsz.cn
http://7qUWrRVd.kmwsz.cn
http://www.dtcms.com/a/380272.html

相关文章:

  • QT M/V架构开发实战:QStringListModel介绍
  • 【数据结构】Java集合框架:List与ArrayList
  • 开发避坑指南(48):Java Stream 判断List元素的属性是否包含指定的值
  • postgresql 数据库备份、重新构建容器
  • 大数据电商流量分析项目实战:Spark SQL 基础(四)
  • vmware ubuntu18设置共享文件夹的几个重要点
  • 每日一题(5)
  • Lumerical licence center 无法连接的问题
  • Java网络编程(2):(socket API编程:UDP协议的 socket API -- 回显程序)
  • Java 类加载机制双亲委派与自定义类加载器
  • OpenLayers数据源集成 -- 章节九:必应地图集成详解
  • 前端调试工具有哪些?常用前端调试工具推荐、前端调试工具对比与最佳实践
  • 【C++练习】16.C++将一个十进制转换为二进制
  • 公司本地服务器上搭建部署的办公系统web项目网站,怎么让外网访问?有无公网IP下的2种通用方法教程
  • 【C++】string类 模拟实现
  • 【系列文章】Linux中的并发与竞争[02]-原子操作
  • 微信小程序 -开发邮箱注册验证功能
  • 使用ollama启动文心开源大模型0.3b版本
  • 【langchain】构建检索问答链
  • QT M/V架构开发实战:QSqlQueryModel/ QSqlTableModel/ QSqlRelationalTableModel介绍
  • 网络编程入门:构建你的第一个客户端-服务器应用
  • 极简灰度发布实现新老风控系统切流
  • 基于跳跃表的zset实现解析(lua版)
  • 【学习K230-例程18】GT6700-HTTP-Server
  • Redis列表(List):实现队列/栈的利器,底层原理与实战
  • 超级流水线和标量流水线的原理
  • 漫谈《数字图像处理》之边缘检测与边界预处理的辨析
  • (二)文件管理-文件查看-less命令的使用
  • 深入理解节流(Throttle):原理、实现与应用场景
  • 汽车电子电气架构中的电源架构(下)