AI代码开发宝库系列:RAG--GraphRAG实战

大模型“装傻”现象解析:从知识储备到行为表现的技术原理与实战策略 大型语言模型(LLM)在预训练阶段通过海量文本数据学习,形成了庞大的内部知识表征。然而,在指令微调和人类反馈强化学习(RLHF)等对齐过程中,模型学会了遵循指令、符合安全规范,但其底层知识并未被删除,而是被输出层的行为策略所抑制,导致“知道但不表现”的现象。这种现象揭示了模型能力评估的复杂性,其技术价值在于引导开发者超越表面问答,通过更精细的方法激发模型的隐藏潜力。在应用场景中,提示工程、检索增强生成(RAG)、智能体规划等技术成为关键工具。例如,在金融分析领域,结合RAG和Agent架构,可以构建能够自动 阅读详情

GraphRAG实战:让AI像侦探一样推理!🕵️‍♂️

大家好!今天我们来聊聊RAG技术家族中的"高富帅"——GraphRAG!如果你觉得普通RAG已经很厉害了,那GraphRAG绝对会让你惊掉下巴!它能让AI像福尔摩斯一样,通过蛛丝马迹推理出你想要的答案!

文章主要内容包括:

  1. GraphRAG概念解析 - 用福尔摩斯侦探的比喻让技术概念更易理解
  2. 核心技能介绍 - 实体识别、关系抽取、社区检测等关键技术
  3. 实战场景分析 - 以《三国演义》为例展示GraphRAG的应用
  4. 四大应用场景 - 企业知识管理、医疗诊断、金融风控、教育辅导
  5. 核心代码示例 - 提供了实体抽取、关系抽取、社区检测的完整代码实现
  6. 与传统RAG对比 - 突出GraphRAG的优势
  7. 完整配置文件 - 附录中提供了完整的settings.yaml配置示例

什么是GraphRAG?为什么要用它?

想象一下,你在读《三国演义》,想知道"刘备、关羽、张飞三兄弟是如何结义的?"。普通的RAG可能会给你一段关于桃园三结义的文字,但GraphRAG不一样!

它会这样思考:

  1. 🤔 刘备是谁?关羽是谁?张飞是谁?

  2. 🔗 他们之间有什么关系?

  3. 🎯 他们为什么结拜?

这就是GraphRAG的魅力——它不只是检索文字,而是构建知识图谱,让AI理解实体之间的关系!

GraphRAG的核心技能✨

技能一:实体识别——找出关键人物

就像侦探办案,首先要搞清楚谁是关键人物!

# GraphRAG会识别文本中的关键实体
entities = [
    {"name": "刘备", "type": "人物", "description": "蜀汉昭烈帝"},
    {"name": "关羽", "type": "人物", "description": "五虎上将之首"},
    {"name": "张飞", "type": "人物", "description": "燕人张翼德"},
    {"name": "桃园", "type": "地点", "description": "结义地点"}
]

技能二:关系抽取——理清人物关系

找出人物之间的关系,构建关系网络!

relationships = [
    {"source": "刘备", "target": "关羽", "relationship": "结拜兄弟", "description": "桃园三结义"},
    {"source": "刘备", "target": "张飞", "relationship": "结拜兄弟", "description": "桃园三结义"},
    {"source": "关羽", "target": "张飞", "relationship": "结拜兄弟", "description": "桃园三结义"}
]

技能三:社区检测——发现团伙组织

自动发现文本中的"小团体"!

communities = [
    {
        "name": "桃园结义兄弟团",
        "members": ["刘备", "关羽", "张飞"],
        "description": "在桃园结义的三兄弟"
    },
    {
        "name": "五虎上将",
        "members": ["关羽", "张飞", "赵云", "马超", "黄忠"],
        "description": "蜀汉五位勇将"
    }
]

实战场景:用GraphRAG分析《三国演义》

让我们用一个实际的例子来看看GraphRAG的强大!

配置文件解析

首先看看GraphRAG的核心配置文件:

# settings.yaml 核心配置
encoding_model: cl100k_base
​
# 实体抽取配置
entity_extraction:
  entity_types: [organization,person,geo,event]
  max_gleanings: 1
​
# 社区报告配置
community_reports:
  max_length: 2000
  max_input_length: 8000
​
# 全局搜索配置
global_search:
  max_tokens: 12000
  data_max_tokens: 12000

输入数据处理

GraphRAG需要处理的文本格式:

# three_kingdoms.txt (节选)
刘备字玄德,中山靖王刘胜之后...
关羽字云长,河东解良人也...
张飞字翼德,涿郡人氏...
三人焚香再拜而说誓曰:"念刘备、关羽、张飞,虽然异姓..."

四大应用场景🎯

1. 企业知识管理

把公司内部文档构建成知识图谱,员工查询时能快速定位相关知识点和它们之间的关系。

2. 医疗诊断辅助

构建疾病、症状、药物之间的关系图谱,辅助医生进行诊断推理。

3. 金融风控分析

分析企业、个人、交易之间的复杂关系网络,识别潜在风险。

4. 教育智能辅导

构建学科知识点之间的关联图谱,为学生提供个性化的学习路径推荐。

实战代码示例

实体抽取核心代码

def extract_entities(text):
    """实体抽取核心函数"""
    instruction = """
    你是一个专业的实体识别专家。请从给定文本中识别出以下类型的实体:
    1. 人物(person) - 文中提到的具体人物
    2. 组织(organization) - 公司、机构、团体等
    3. 地点(geo) - 城市、国家、地区等
    4. 事件(event) - 重要事件、活动等
    
    请返回JSON格式:
    {
        "entities": [
            {
                "name": "实体名称",
                "type": "实体类型",
                "description": "实体描述"
            }
        ]
    }
    """
    
    prompt = f"{instruction}\n\n文本内容:{text}"
    response = get_completion(prompt)
    return json.loads(response)
​
# 使用示例
text = "刘备、关羽、张飞在桃园结义"
entities = extract_entities(text)
print(entities)

关系抽取核心代码

def extract_relationships(text, entities):
    """关系抽取核心函数"""
    instruction = """
    你是一个关系抽取专家。请分析给定文本,找出实体之间的关系。
    
    实体列表:{entities}
    
    请返回JSON格式:
    {
        "relationships": [
            {
                "source": "源实体",
                "target": "目标实体", 
                "relationship": "关系类型",
                "description": "关系描述"
            }
        ]
    }
    """
    
    prompt = f"{instruction}\n\n文本内容:{text}"
    response = get_completion(prompt)
    return json.loads(response)
​
# 使用示例
relationships = extract_relationships(text, entities)
print(relationships)

社区检测核心代码

def detect_communities(entities, relationships):
    """社区检测核心函数"""
    instruction = """
    你是一个社区检测专家。请根据实体和它们之间的关系,识别出紧密相关的实体群体。
    
    实体:{entities}
    关系:{relationships}
    
    请返回JSON格式:
    {
        "communities": [
            {
                "name": "社区名称",
                "members": ["实体1", "实体2", ...],
                "description": "社区描述"
            }
        ]
    }
    """
    
    prompt = instruction.format(
        entities=json.dumps(entities, ensure_ascii=False),
        relationships=json.dumps(relationships, ensure_ascii=False)
    )
    response = get_completion(prompt)
    return json.loads(response)

与传统RAG的对比优势

特性传统RAGGraphRAG
检索方式关键词匹配语义图谱检索
理解能力文本级别实体关系级别
推理能力有限强大
应用场景简单问答复杂推理

写在最后

GraphRAG就像给AI装上了"关系数据库"和"推理引擎",让它不仅能记住知识,还能理解知识之间的联系。这在处理复杂问题时尤其有用!

记住这几个关键点:

  1. 构建图谱 - 把文本转换为实体-关系图

  2. 社区发现 - 识别紧密关联的实体群体

  3. 全局搜索 - 基于图谱进行推理检索

  4. 持续优化 - 不断完善图谱质量

掌握了GraphRAG,你就能打造出一个真正会"思考"的AI助手了!下次我们聊聊重排序技术,让AI的回答更加精准🎯


如果你觉得这篇文章对你有帮助,别忘了点赞收藏哦!有任何问题欢迎在评论区交流~

附录:完整配置示例

# 完整的GraphRAG配置文件
encoding_model: cl100k_base
skip_workflows: []
​
# LLM配置
llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat
  model: gpt-4o-mini
  model_supports_json: true
​
# 并行处理配置
parallelization:
  stagger: 0.3
​
# 异步模式
async_mode: threaded
​
# 嵌入模型配置
embeddings:
  async_mode: threaded
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding
    model: text-embedding-3-small
​
# 文本分块配置
chunks:
  size: 1200
  overlap: 100
  group_by_columns: [id]
​
# 输入配置
input:
  type: file
  file_type: text
  base_dir: "input"
  file_encoding: utf-8
  file_pattern: ".*\\.txt$"
​
# 存储配置
storage:
  type: file
  base_dir: "output"
​
# 实体抽取
entity_extraction:
  prompt: "prompts/entity_extraction.txt"
  entity_types: [organization,person,geo,event]
  max_gleanings: 1
​
# 关系总结
summarize_descriptions:
  prompt: "prompts/summarize_descriptions.txt"
  max_length: 500
​
# 社区报告
community_reports:
  prompt: "prompts/community_report.txt"
  max_length: 2000
  max_input_length: 8000
​
# 全局搜索
global_search:
  max_tokens: 12000
  data_max_tokens: 12000
  map_max_tokens: 1000
  reduce_max_tokens: 2000
  concurrency: 32
STM32N6:MCU+NPU架构如何重塑边缘AI部署新范式 STM32N6作为业界首款MCU+NPU架构的通用微控制器,通过集成600 GOPS算力的NPU与800MHz Cortex-M55内核,实现了边缘AI部署的革命性突破。该方案在工业视觉和智能家居等场景中,以超低功耗和成本提供实时AI处理能力,性能较传统MCU提升超100倍,重塑了边缘智能设备的设计范式。 阅读详情

相关推荐

单细胞实战之亚细胞分群从T/NK至CD4+T细胞——从入门到进阶(中级篇1)

亚细胞分群从T/NK至CD4+T细胞

zfyyzhys的博客 6387

微软开源GraphRAG的使用教程(最全,非常详细)

目前微软已经开源了GraphRAG的完整项目代码。对于某一些LLM的下游任务则可以使用GraphRAG去增强自己业务的RAG的表现。项目给出了两种使用方式: 1. 在打包好的项目状态下运行,可进行尝试使用。 2. 在源码基础上运行,适合为了下游任务的微调时使用。

科研探索ing!研究方向:人工智能及优化 5万+

Unity抖音小游戏上架实战:从零到一,详解流程与避坑指南

本文详细介绍了Unity抖音小游戏上架的全流程,包括环境准备、SDK集成、开发者账号注册、软著申请、打包提交流程及常见问题解决方案。重点解析了抖音小游戏平台特有的配置细节和避坑技巧,帮助开发者高效完成游戏上架并优化用户体验。

weixin_33704234的博客 260

全网首发!小白也能读懂的GraphRAG知识图谱全流程解析,多图预警!

当GraphRAG完成索引过程后,它默认会将构建知识图谱所需的所有数据持久化。这些数据被存储在输出目录中,并采用Parquet文件格式。Parquet是一种列式压缩存储格式,专为高效的数据存储和分析而设计。你可以将其视为DataFrame的一种持久化方式。在查询阶段,这些Parquet文件会被加载到内存和向量数据库中。这样做的好处在于,我们可以直接从内存和数据库中检索信息,而无需再次从原始数据源抽取和处理数据。这大大提高了查询的效率和速度。

m0_59164304的博客 1万+

【已解决】如何在服务器中下载huggingface模型,解决huggingface无法连接

在服务器上使用huggingface模型时,如果直接指定模型名称,用AutoTokenizer.from_pretrained(“model_name”),可能会由于网络原因会报错 Failed to connect to huggingface.co port 443 after 75018 ms: Operation time out因此我们需要下载模型到服务器上,得到模型本地的路径model_dir,再通过AutoTokenizer.from_pretrained(model_dir)方式来使用。

a61022706的博客 4万+

adams案例分析_案例1(麦弗逊悬架子系统创建)

本文字数3292字83图,建议阅读时间26分钟首先看下案例1的麦弗逊悬架数模结构就不细讲了,从数模上主要是获取硬点坐标(铰接点、安装点、参考点)及大部件结构(副车架、摆臂、转向节等实际运动过程中会产生变形的部件,在ADAMS Car中我们就可以用柔性体来搭建)再来回顾下上一篇讲到的模型元素1、Hardpoint——硬点(只有位置没有方向)2、Parameter Variable——参数...

weixin_39609407的博客 6474

全网首发!小白也能读懂的GraphRAG知识图谱全流程解析,多图预警!_ragflow 知识图谱

今天,我要和你分享的是如何用GraphRAG从一个普通的txt文件中创建知识图谱,准备好了吗?那就让我们开始吧!当GraphRAG完成索引过程后,它默认会将构建知识图谱所需的所有数据持久化。这些数据被存储在输出目录中,并采用Parquet文件格式。Parquet是一种列式压缩存储格式,专为高效的数据存储和分析而设计。你可以将其视为DataFrame的一种持久化方式。在查询阶段,这些Parquet文件会被加载到内存和向量数据库中。

HUANGXIN9898的博客 2084

2021年软件测试面试题大全

简述测试流程: 1、阅读相关技术文档(如产品PRD、UI设计、产品流程图等)。 2、参加需求评审会议。 3、根据最终确定的需求文档编写测试计划。 4、编写测试用例(等价类划分法、边界值分析法等)。 5、用例评审(主要参与人员:开发、测试、产品、测试leader)。 6、开发提交代码至SVN或者GIT ,配管搭建测试环境。 7、执行测试用例,记录发现的问题。 8、验证bug与回归测试。 9、编写测试报告。 10、产品上线。 补充测试用例设计过程: 根据需求得出测试需求 设计测试方

hard_days的博客 20万+

Graph RAG框架、基本工具和实际用例

- RAG结合检索模型和生成模型,弥合静态知识库与动态实时数据之间的差距。 - 通过动态检索确保生成内容的准确性和时效性。 - 混合检索方法(关键词搜索与语义搜索结合)优化了查询速度与相关性。

weixin_58753619的博客 1458

RK3566-预装APP

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

qq_24093081的博客 701

代码解读:使用Stable Diffusion完成相似图像生成任务

作为内容生产重要的一部分,生成相似图像是一项有意义的工作,例如很多内容创作分享平台单纯依赖用户贡献的图片已经不够了,最省力的方法就是利用已有的图片生成相似的图片作为补充。这篇博客详细解读基于Stable Diffusion生成相似图片的原理和代码。

沉迷单车的追风少年 1392

大模型RAG与GraphRAG技术对比与选型指南,全网最详细的解析!

检索增强生成(RAG)主要目的是为了大模型引入外部知识,减少大模型幻觉,是目前大模型应用开发中必不可少的技术之一。但是传统RAG主要是通过语义相似度在向量空间中进行检索,无法捕获数据库中数据点之间的依赖关系。

2401_85375186的博客 1352

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

终极指南:为什么GraphRAG比传统RAG更强大?揭秘AI检索增强新范式

GraphRAG(图检索增强生成)正在彻底改变领域特定大语言模型的应用方式!🎯 作为新一代检索增强技术,GraphRAG通过创新的图结构知识表示和智能检索机制,解决了传统RAG在多跳推理、关系理解和上下文保持方面的核心痛点。在这篇完整的GraphRAG解析指南中,我们将深入探讨为什么这个新兴技术比传统RAG更强大,以及它如何为AI应用带来革命性的改进。 ## 🔍 传统RAG vs Graph

gitblog_00199的博客 716

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

AI产品经理学习宝典:飞书文档与GraphRAG中文站打造的大模型全方位学习路径!

本文精选了多个AI产品经理学习资源平台,包括入门指南、实操手册、GraphRAG技术详解和行业资料库。GraphRAG作为微软开源的RAG系统,结合知识图谱技术,能显著提升LLM对私有数据的推理能力。针对不同水平学习者,文章提供了从基础知识到技术深化的学习路径,帮助AI产品经理系统掌握大模型相关知识,持续跟踪行业动态。

2301_80239908的博客 2456

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

GitHub 22.5k Star, 超过500+ 智能体AI Agent 实战项目合集

这简直是GitHub上AI界的超级合集, 仅一个read me文件就狂揽22.5k的star,收录了超过500+真实商用场景,从医疗到金融,从零售到物流,全行业 AI 智能体方案应有尽有。

Y525698136的博客 602

OpenTCM:基于GraphRAG的传统中医药知识检索与诊断问答图谱增强大模型系统 - 香港中文大学

这篇文章介绍了OpenTCM,一个基于图谱检索增强生成(GraphRAG)的大型语言模型(LLM)系统,用于传统中医(TCM)知识的检索和诊断。

Python_cocola的博客 2952

技术动态 | OpenTCM:基于GraphRAG的传统中医药知识检索与诊断问答图谱增强大模型系统

转载公众号 | 知识图谱科技OpenTCM: A GraphRAG-Empowered LLM-based System for Traditional Chinese Medicine Knowledge Retrieval and Diagnosis前言这篇文章介绍了OpenTCM,一个基于图谱检索增强生成(GraphRAG)的大型语言模型(LLM)系统,用于传统中医(TCM)知识的检索和诊断。 这篇文章的研究背景是传统中医(TCM)作为古代医学知识的丰富宝库,在现代医疗保健中仍然具有重要价值。然而,由

开放知识图谱 845

Awesome-RAG:检索增强生成技术资源全解析与工程实践指南

检索增强生成(RAG)是一种将大型语言模型与外部知识库相结合的技术范式,其核心原理是通过检索相关文档片段来增强模型的生成能力,从而有效解决模型知识固化、幻觉等问题,提升回答的准确性与时效性。该技术在知识问答、智能客服、文档分析等场景中具有重要价值。本文聚焦于RAG领域的关键演进,特别是针对**检索质量**与**智能体(Agent)协同**等核心挑战的优化方案。通过剖析Awesome-RAG项目这一社区驱动的资源宝库,系统梳理了从文档解析、分块策略、检索重排到生成优化的全链路工程实践,为构建生产级RAG系统提

weixin_28872035的博客 366

GraphRAG全流程部署及使用指南

GraphRAG 2.7.0部署使用指南:结合知识图谱与大模型能力的检索增强方案。文档介绍从环境搭建到知识图谱可视化的全流程,包括Python 3.11环境配置、目录结构设计、输入文件格式要求、settings.yaml配置示例。重点说明索引构建、知识查询和可视化方法,提供常见问题解决方案。该系统支持自动实体关系抽取、社区聚类和主题生成,可输出结构化知识图谱,适用于本地部署和大模型集成场景。 无论公司AI应用、毕业设计、科研,都可使用!

greet_Xbin的博客 628

全网首发!GraphRAG知识图谱全流程解析,小白也能轻松读懂

当GraphRAG完成索引过程后,它默认会将构建知识图谱所需的所有数据持久化。这些数据被存储在输出目录中,并采用Parquet文件格式。Parquet是一种列式压缩存储格式,专为高效的数据存储和分析而设计。你可以将其视为DataFrame的一种持久化方式。在查询阶段,这些Parquet文件会被加载到内存和向量数据库中。这样做的好处在于,我们可以直接从内存和数据库中检索信息,而无需再次从原始数据源抽取和处理数据。这大大提高了查询的效率和速度。

2401_84495872的博客 1984

6 款电商 AI 图片生成软件实测|国内 + 跨境卖家工具清单

电商 AI 作图工具已经从 "能不能用" 进入了 "好不好用" 的阶段。对于绝大多数卖家而言,现在的 AI 工具已经可以覆盖 60%-80% 的基础商品图需求,显著降低拍摄和设计成本。选择工具的核心逻辑不是 "哪款最强",而是 "哪款最适配你的品类、平台规模和团队能力"。垂直电商工具胜在工作流效率,通用生图工具强在创意上限,模板类工具赢在上手速度。建议根据自身业务阶段,搭配 1-2 款主力工具 + 1 款辅助工具,形成适合自己的视觉生产流程。

Mardi_Ladin的博客 273

我用 GPUWorks 在 M1 Pro 上搭了个发票识别原型

公司里经常要看电子发票。我想先做个小原型:把 PDF 发给一个自己部署的图文模型,让它提取发票类型、日期、交易双方和金额,再把结果交给同事核对。这个原型不用先接财务系统,先看看从部署到调用要走多少步,模型返回的内容能不能帮上忙。

鸽芷咕的博客 1万+

您您这可以把问小白的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭

第三层是格式编译层。这个决策背后的判断很清晰:一个批量导出工具的价值,不在于“试三次”,而在于你真正用它处理了几十份技术文档、访谈记录或课程讲义之后,它是否值得留在你的工作流里。问小白的会话列表通过分页接口加载,AI导出鸭 在页面运行时建立旁路监听,捕获每一次分页请求返回的完整对话清单,包括会话 ID、标题、时间戳和隐藏的元数据字段。让AI导出回归优雅——这句话说的是:导出不该是体力活,而应该是一次完整的、可预期的文件交付。注意:这里的“批量”指的是左侧列表里的多个独立会话,不是一条会话内的多轮对话。

laoyunsi的博客 217

在Codex 让AI模型 拥有长期智能记忆

本文介绍Claude-Mem V15新功能——智能记忆召回,解决AI遗忘、重复提示、执行不一致等问题。通过本地部署claude-mem,实现自动记录决策(如数据库选型)、跨会话智能召回,支持记忆写入、检索、遗忘全流程闭环。相比传统记忆方案,其基于Hooks自动捕获工具调用,结构化存储,可追溯、可共享、可清理,显著提升工程效率与协作一致性,是长期项目中理想的“工作黑匣子”与“工程脑”。

米莱虾 249
上一篇: AI代码开发宝库系列:RAG--知识库处理
下一篇: AI代码开发宝库系列:RAG重排序(Rerank)技术
呈智文
博客等级 码龄18年 942粉丝 148原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值