网站推广的重要性城关网站seo

张小明 2026/1/13 0:34:16
网站推广的重要性,城关网站seo,deals网站建设,效果好的网站建设公一、前言#xff1a;为什么我们需要 GraphRAG#xff1f; 你有没有遇到过这种情况#xff1a;问大模型一个很专业的问题#xff0c;它回答得头头是道#xff0c;但其实全是错的#xff0c;也就是一本正经地胡说八道#xff0c;即大模型的幻觉现象。出现这种现象的原因是…一、前言为什么我们需要 GraphRAG你有没有遇到过这种情况问大模型一个很专业的问题它回答得头头是道但其实全是错的也就是一本正经地胡说八道即大模型的幻觉现象。出现这种现象的原因是大模型的知识是静态的它依赖于训练数据而无法实时地获取训练之外的数据。为了解决幻觉问题RAG 诞生了它的思路简单来说就是先检索再生成即先从知识库中检索出相关内容再把这些结果和问题一起交给大模型生成答案。有关 RAG 的详细原理和实践在我之前的文章[从原理到实战基于SpringAI的RAG应用探索]已经阐述。而 RAG 的缺陷也很明显其只能处理“一步到位”的问题无法处理多跳推理或实体关联的问题这里举个简单的例子知识库内容文档 1小明的爸爸是老王。文档 2老王的女儿是小红。文档 3小红是北京大学的学生。文档 4.....问题小明的爸爸的女儿在哪里上学这个问题实际需要 3 步推理小明的爸爸是老王从文档 1 获得老王的女儿是小红从文档 2 获得小红在北京大学上学从文档 3 获得对于 RAG由于存在相似度阈值一次检索时一般很难把三条文档全部都找到所以大模型无法把这些信息都串起来最终依旧会胡说八道。为了解决这一问题GraphRAG 诞生了它将知识图谱引入 RAG 流程把知识表示成“节点 边”的形式把不同文档中的实体及其关系连接起来。在查询时不仅会查询出相似度最高的文档还会基于知识图谱查询出与其关联的文档因此大模型就能够拥有更加完整的上下文来回答问题。以上面的例子作为示例在 GraphRAG 中会存在如下的知识图谱后续讲解使用微软 GraphRAG 版本github.com/microsoft/g…相比其他 GraphRAG 实现其优势在于精细的实体与关系抽取能力、基于图结构的逻辑推理增强、社区检测带来的高效信息聚合以及可视化报告生成功能同时与微软生态系统高度兼容便于在企业知识管理和复杂问答场景中快速部署和应用。二、GraphRAG 详细流程与传统 RAG 类似GraphRAG 的流程总体上也可以分为索引和查询但二者在实现细节上存在很大的区别。GraphRAG 的详细流程如下图所示2.1 索引为了更清晰地叙述每个索引流程这里使用一个简单的示例来贯穿所有的流程来讲解示例如下在2025年春季科技大会上知名人工智能研究员小明与清北大学计算机学院合作发布了一款名为“知澜”的多模态大模型。该模型在自然语言处理、图像识别以及语音交互领域均表现出色能够实现文本、图像和语音信息的无缝理解与生成支持跨模态知识融合与智能推理。2.1.1 文本切分文本切分指的是将原始文本拆分成更小的、可分析的文本单元TextUnits文档切分的质量将直接决定了后续检索的准确性和大模型回答的效果且能够避免超过大模型上下文窗口大小的问题这一步与传统 RAG 是类似的。常见的切分策略如下名字描述优点缺点固定大小拆分按指定字数或 token 数来切分实现简单、速度块可能会割裂语句打断语义完整性结构拆分基于文档格式如 Html、Markdown拆分本质上是借助这些文档特有的格式来拆分语句可以保留原始文档的结构逻辑语义完整度高依赖于结构清晰、规范的文档对于无结构的语句如纯文本无法使用语义拆分根据语义边界如段落、句子、主题变化等拆分可以采用 NLP 方法如如分句、主题检测或 Embedding 聚类最符合人类理解可保留语义一致性实现复杂需要依赖 NLP 模型、Embedding 计算或聚类等且计算开销大效率低递归拆分先按大分隔符如段落拆分再按句子等进行拆分直到拆分得到的块满足长度限制在语义完整性和长度控制两个度量之间保持平衡设计较复杂需要合适的层级和递归停止条件以固定 40 token 大小切分策略演示上面的示例可以切分成如下文本单元表idhuman_readable_idtextn_tokensdocument_ids8df60f2f66c31在2025年春季科技大会上知名人工智能研究员小明与清北大学计算机学院合40[6db8fe3d86d]a2b7b0e354fd2清北大学计算机学院合作发布了一款名为“知澜”的多模态大模型。该模型在自然语言处理40[6db8fe3d86d]256254a9806f3。该模型在自然语言处理、图像识别以及语音交互领域均表现出色能够实现文40[6db8fe3d86d]a723cbe342994现出色能够实现文本、图像和语音信息的无缝理解与生成支持跨模态知识融合40[6db8fe3d86d]21232021dc6c5模态知识融合与智能推理。17[6db8fe3d86d]id全局唯一标识符。human_readable_id便于人类查看的序号相比 id 会更加直观。text文本单元对应的原始文本。仔细看的话会发现相邻文本单元中出现了重叠的情况原因是 GraphRAG 采用了重叠窗口切分策略即在相邻文本单元之间保留一部分重叠内容以避免语义被硬性截断、保证实体与关系的完整抽取并在后续检索时提升召回率和准确性。n_tokens文本单元的 token 总数。document_ids表示文本单元来自于哪些文档列表。2.1.2 实体与关系提取实体文本中可以作为“独立对象”存在的东西。它往往是名词或名词短语比如人物马斯克、组织微软、地点北京、事件世界杯、甚至抽象概念人工智能。关系不同实体之间的联系。它通常表现为动词、介词或逻辑关系比如“马斯克「创立」特斯拉”“微软总部「位于」西雅图”。文本切分后GraphRAG 会使用大模型提取出每个文本单元中的实体与关系并建立实体表和关系表这样可以让信息的逻辑关系更清晰方便后续检索、推理和知识图谱构建。上面的示例的实体系表如下所示idhuman_readable_idtitletypedescriptiontext_unit_idscf196a7302025年春季科技大会事件2025 年春季人工智能研究员小明与清北大学计算机学院合作举办的科技大会[8df60f2f66c3]e9933f7b1小明人物一位在 2025 年春季科技大会上发表演讲或参与合作的知名人工智能研究员[8df60f2f66c3]d0b0b9272清北大学计算机学院组织与人工智能研究员小明合作参加 2025 春季科技大会的清北大学计算机学院[8df60f2f66c3]50d0eff53知澜项目是一款多模态大模型由清北大学计算机学院合作发布[a2b7b0e354fd]id全局唯一标识符。human_readable_id便于人类查看的序号相比 id 会更加直观。title实体名。type实体类别。description实体描述。text_unit_ids表示实体来自于哪些文本单元列表。关系如下所示idhuman_readable_idsourcetargetdescriptiontext_unit_idsc7c7028102025年春季科技大会小明小明参加了 2025 年春季科技大会是该大会的参与者并可能担任演讲者[8df60f2f66c3]ad37582e12025年春季科技大会清北大学计算机学院清北大学计算机学院参加 2025 年春季科技大会[8df60f2f66c3]ea3039192小明清北大学计算机学院小明在活动现场与清北大学计算机学院合作[8df60f2f66c3]688cada13清北大学计算机学院知澜清北大学计算机学院合作发布了“知澜”多模态大模型[a2b7b0e354fd]4d4ef2044小明知澜小明合作发布了“知澜”多模态大模型[8df60f2f66c3,a2b7b0e354fd]id全局唯一标识符。human_readable_id便于人类查看的序号相比 id 会更加直观。source关系的起点实体。target关系的终点实体。description关系描述。text_unit_ids表示关系来自于哪些文本单元列表。2.1.3 构建图构建图指的是将前一步抽取出的实体和关系组织成知识图谱的过程每个实体作为图中的节点实体间通过关系形成边从而把文本信息结构化为图形表示这样不仅保留了原始文本的语义还便于后续进行图搜索和关系推理。上面的示例的图结构如下所示2.1.4 社区检测与报告生成构建完图后GraphRAG 会对其构建的图进行结构化分析与信息整理。首先会进行社区检测即通过分析图中节点实体与边关系的连接密度将图划分为若干社区社区指的是图结构中紧密关联的节点集合每个社区内部的节点连接紧密、相关性高而不同社区之间的连接相对稀疏。具体来说微软 GraphRAG 使用 Leidan 聚类算法来完成社区检测的动作。社区检测的核心价值在于降低图查询的复杂度并揭示知识图中的热点区域和关键关系为后续检索和知识分析提供基础。在完成社区划分后会生成社区报告将社区检测结果转化为可读的分析报告。报告通常包含社区概览、核心节点与关系统计、社区间关系分布、可视化图表以及文本摘要等内容。通过统计每个社区的节点数量、关系密度及主要实体并结合可视化工具展示社区结构图或热点节点图用户可以直观理解知识图的结构和信息分布进而辅助知识发现和决策分析。上面的示例检测出的社区如下所示由于示例只有一段文本因此最终只存在一个社区。idhuman_readable_idcommunityleveltitleentity_idsrelationship_idstext_unit_ids5ebd0d55000社区 0[cf196a73,e9933f7b,d0b0b927,4d4ef204][c7c70281,ad37582e,ea303919,688cada1,4d4ef204][8df60f2f66c3,a2b7b0e354fd]id全局唯一标识符。human_readable_id便于人类查看的序号相比 id 会更加直观。community社区编号。level层级指的是社区在知识图谱中的深度值越大表示在划分层次中处于更细粒度的层级如 level 1 是 level 0 的子社区。title社区的简短标题。entity_ids属于社区的实体节点列表。relationship_ids属于社区的关系列表。text_unit_ids与社区相关联的文本单元列表。对应的社区报告如下所示idhuman_readable_idcommunityleveltitlesummary1ded1bd0b000知澜多模态大模型发布在2025年春季科技大会上人工智能研究员小明与清北大学计算机学院合作发布了“知澜”多模态大模型。该模型在自然语言处理、图像识别和语音交互方面表现出色能够实现跨模态知识融合与智能推理。id社区报告编号保证全局唯一。human_readable_id便于人类理解或引用的社区报告编号在展示时更直观但不一定保证全局唯一。community该报告所属社区的编号。level报告所属社区的层级。title社区报告的简短标题。summary社区报告总结内容。2.2 检索GraphRAG 主要提供了两种查询方法分别为局部检索和全局检索局部检索一般会针对问题相关的部分内容进行检索而全局检索则针对整个知识图谱或所有社区的内容进行检索类比而言局部检索就像是在“书的一章里找答案”而全局检索则更像是在“整本书里找答案”。2.2.1 局部检索局部检索的流程如下问题嵌入通过 Embedding 模型将问题向量化将问题文本转换成一个固定长度的浮点型数组。实体检索在知识图谱中寻找与查询向量相似的实体。候选集构建从找寻到的实体出发遍历图并收集构建候选集候选集内容包括原始文本单元Text Unit、实体、关系。相关性排序与过滤将候选结果按照相似度分数、重要性等维度进行排序保留 top-k 的候选集。上下文拼接将所有筛选得到的候选集拼接成上下文与用户的问题拼接起来共同构成提示词Prompt。生成最终答案将构成的提示词交给大模型处理并生成最终的结果。2.2.2 全局检索全局检索采用了类似于 MapReduce 的策略来完成检索任务流程如下问题嵌入与局部检索类似也是通过 Embedding 模型将问题向量化将问题文本转换成一个固定长度的浮点型数组。社区报告检索检索出与查询向量相似的社区报告。生成局部答案对每个社区摘要使用 LLM 生成局部答案输入的提示词会包括社区摘要内容和用户问题。LLM 除了会生成答案还会生成对答案的评分以评估其相关性。这个过程类似于 MapReduce 中的 Map 阶段。排序与过滤通过先前的分数来对生成的社区级答案进行排序并过滤掉分数过低的答案。上下文拼接将之前过滤得到的所有局部答案拼接成上下文与用户的问题拼接起来共同构成提示词Prompt。这个过程类似于 MapReduce 的 Reduce 阶段。生成最终答案将构成的提示词交给大模型处理并生成最终的结果。2.2.3 局部检索 or 全局检索局部检索全局检索适用场景针对特定实体或事件的具体细节查询需要整体理解整个数据集的抽象性问题数据处理方式基于实体进行查询利用图遍历构建上下文使用预先计算的社区摘要进行查询查询方式从最相关的实体开始逐步构建上下文以生成回答对每个社区生成独立的回答然后将相关回答汇总成最终结果计算效率计算量较小适合快速响应可能需要处理大量社区摘要计算资源消耗较大适用数据规模适用于小规模数据集关注具体细节适用于大规模数据集能够提供全局视角优缺点优点计算效率高响应快速缺点可能忽略全局上下文优点提供全面的视角缺点计算资源消耗大可能导致信息冗余三、GraphRAG 实战3.1 前置环境搭建在使用 GraphRAG 之前需要先安装对应的环境# python version 3.10-3.12pip install graphrag# 后续用于解析 parquet 格式文件pip install pandas然后配置数据集这里使用的数据集示例如下在计算机科学的发展过程中出现了大量不同类型的排序算法。冒泡排序Bubble Sort是一种基础的排序方法它通过不断比较和交换相邻元素来完成排序时间复杂度为 O(n²)。快速排序Quick Sort则由托尼·霍尔在 1960 年提出它采用分治法将数组分为两个子数组分别排序平均复杂度 O(n log n)。除了这两种常见算法希尔排序Shell Sort是一种基于插入排序的改进算法它通过设置一个步长逐渐缩小直到 1 来提高效率。在稳定性方面归并排序Merge Sort表现良好尤其适合处理链表等结构。另外堆排序Heap Sort利用了堆这种数据结构能够在 O(n log n) 的时间内完成排序。近些年在某些特定场景下人们也会使用基数排序Radix Sort和计数排序Counting Sort它们都属于非比较排序能在 O(n) 时间内完成排序但对输入有一定限制。在一些学术研究中还讨论过鸽巢排序Pigeonhole Sort尽管它较少用于实际应用。文件结构GrpahRAG 在索引构建时默认会访问 input 文件夹下的文件所以数据集一般放在 Input 文件夹下顶层文件夹可以自定义后续的命令中都修改为对应的目录名即可rag_demo └── input └── file.txt然后初始化 GraphRAG 项目graphrag init --root ./rag_demo初始化过程中如果遇到报错ImportError: cannot import name ‘Function’ from ‘openai.types.chat.chat_completion_message_tool_call’需要修改 GraphRAG 源代码中 aliases.py 文件路径site-packages/fnllm/openai/types/aliases.py的以下内容修改为如下内容原因是在 OpenAI Python SDK 版本 1.99.2 中原本位于 chat_completion_message_tool_call 模块中的 Function 类被移至 chat_completion_message_function_tool_call 模块。from openai.types.chat.chat_completion_message_function_tool_callimport (FunctionasFunctionModel,)from openai.types.chat.chat_completion_message_function_tool_call_paramimport (FunctionasFunctionParam,)执行完后目录中会变成以下内容rag_demo ├── input │ └── file.txt ├── prompts │ ├── basic_search_system_prompt.txt │ ├── community_report_graph.txt │ ├── community_report_text.txt │ ├── drift_reduce_prompt.txt │ ├── drift_search_system_prompt.txt │ ├── extract_claims.txt │ ├── extract_graph.txt │ ├── global_search_knowledge_system_prompt.txt │ ├── global_search_map_system_prompt.txt │ ├── global_search_reduce_system_prompt.txt │ ├── local_search_system_prompt.txt │ ├── question_gen_system_prompt.txt │ └── summarize_descriptions.txt ├── settings.yaml └── .envprompts存放 GraphRAG 内置的提示词模板对应不同阶段的任务如 extract_graph.txt 用于抽取实体与关系构建知识图谱community_report_text.txt、community_report_graph.txt 用于为每个社区生成报告。settings.yaml配置文件包含 LLM 配置模型、温度、索引参数chunk 大小、阈值等。.env环境变量文件存放密钥、连接配置等信息。这里给出 settings.yaml 核心配置的示例参数和 .env 脱敏后内容models:default_chat_model:type:openai_chatapi_base:${GRAPHRAG_BASE_URL}# base-urlauth_type:api_keyapi_key:${GRAPHRAG_API_KEY}# api-keymodel:gpt-4.1# LLM 模型encoding_model:cl100k_basemodel_supports_json:trueconcurrent_requests:25async_mode:threadedretry_strategy:nativemax_retries:10tokens_per_minute:autorequests_per_minute:autodefault_embedding_model:type:openai_embeddingapi_base:${GRAPHRAG_BASE_URL}# base-urlauth_type:api_keyapi_key:${GRAPHRAG_API_KEY}# api-keymodel:text-embedding-3-large# Embedding 模型encoding_model:cl100k_basemodel_supports_json:trueconcurrent_requests:25async_mode:threadedretry_strategy:nativemax_retries:10tokens_per_minute:nullrequests_per_minute:nullchunks:size:50# 分块大小overlap:10# 相邻分块重叠部分group_by_columns: [id] plaintext GRAPHRAG_API_KEY[填写API_KEY]GRAPHRAG_BASE_URL[填写BASE_URL]3.2 索引构建使用下面的命令构建索引graphrag index --root ./rag_demo执行完后目录会多出以下内容rag_demo ├── cache │ ├── community_reporting │ ├── extract_graph │ ├── summarize_descriptions │ └── text_embedding ├── logs │ └── logs.txt └── output ├── communities.parquet ├── community_reports.parquet ├── context.json ├── documents.parquet ├── entities.parquet ├── lancedb ├── relationships.parquet ├── stats.json ├── text_units.parquet └── summarize_descriptions.txtcache索引过程中调用 LLM 或 Embedding API 的中间结果缓存避免重复调用如 community_reporting 用于生成社区报告时的中间结果extract_graph 用于存储从文本抽取出的实体、关系的中间结果。logs索引过程中的运行日志。output最终构建的知识索引如 communities.parquet 存放社区的结构数据记录每个社区包含哪些实体、文本单元等信息text_units.parquet 存放切分后的文本单元结构数据记录 Embedding 信息。可以使用 pandas 库来解析 parquet 格式的文件内容import pandas as pdpd.set_option(display.max_columns, None) # 显示所有列df pd.read_parquet(rag_demo/output/text_units.parquet)print(df)在控制台中可以看到如下的表格数据3.3 检索局部检索示例graphrag query --root ./rag_demo --method local --query 文中一共提到了多少种排序算法它们分别是什么全局检索示例graphrag query --root ./rag_demo --method global --query 文中一共提到了多少种排序算法它们分别是什么3.4 GraphRAG vs 传统 RAG这里使用 Spring AI 构建传统 RAG分块大小和相似度阈值分别设置为 50 和 0.8对同样的数据集和问题进行测试得到如下答案可以看到回答的数量是缺失的原因是这里没有检索出所有的文档片段即存在一些相似度小于 0.8 的片段。这里给出所有片段及其对应的相似度按相似度倒序排序可以看到有 5 个片段相似度小于 0.8这 5 个片段中包含了未检索出的五种排序算法。序号原始文本相似度1在计算机科学的发展过程中出现了大量不同类型的排序算法。0.87412324547767642在一些学术研究中还讨论过鸽巢排序Pigeonhole Sort尽管它较少用于实际应用。0.83434094488620763另外堆排序Heap Sort利用了堆这种数据结构能够在 O(n log n) 的时间内完成排序。0.82659177482128144冒泡排序Bubble Sort是一种基础的排序方法它通过不断比较和交换相邻元素来完成排序时间复杂度为 O(n²)。0.824712976813316351 来提高效率。\n在稳定性方面归并排序Merge Sort表现良好尤其适合处理链表等结构。0.82297708094120036除了这两种常见算法希尔排序Shell Sort是一种基于插入排序的改进算法它通过设置一个步长逐渐缩小直到0.79956582188606267近些年在某些特定场景下人们也会使用基数排序Radix Sort和计数排序Counting Sort它们都属于非比较排序能在0.79924902319908148快速排序Quick Sort则由托尼·霍尔在 1960 年提出它采用分治法将数组分为两个子数组分别排序平0.7991284579038629O(n) 时间内完成排序但对输入有一定限制。0.792354717850685110均复杂度 O(n log n)。0.7816332429647446而从 3.3 节的检索看出GraphRAG 是能回答正确这个问题的原因就是他不仅仅只是检索相似度高的片段还会检索与其关联的实体、关系等信息进而能提供给大模型更完整的上下文。虽然对于这个示例来说若将传统 RAG 中把相似度阈值设置为 0.7大模型也能回答出正确的答案但是其检索过程依然依赖于局部匹配缺乏全局视角与关系推理的能力毕竟我们不可能提前预知到相似度阈值设置为多少时合适的文档才会被检索出来这就类似于从答案推过程。相比之下GraphRAG 的优势在于即便在更复杂、跨片段甚至跨文档的场景下也能够保持较高的回答准确性和稳定性。四、GraphRAG 可视化通过将 GraphRAG 索引阶段产生的 parquet 文件导入至图数据库 neo4j可以实现 GraphRAG 可视化的效果让我们看到 GraphRAG 构建的整个知识图谱样貌。neo4j 是一个高性能的图数据库专门用来存储、管理和查询图数据。它以“节点”和“关系”为核心概念将实体和实体之间的连接关系进行建模使得复杂的关联数据可以自然、直观地表示和高校操作。首先需要在本机上安装 neo4jmac 可以使用 brew 直接安装brew install neo4此外还需要安装 APOC 插件参考Installation - APOC Core Documentation。然后导入 parquet 文件到 neo4j而由于 neo4j 本身不支持直接导入这种格式的文件因此我们可以先使用 python 的 pandas 库读取 parquet 文件转换成 DataFrame 后再批量导入至 neo4j。具体做法如下# neo4j sdk 安装pip install neo4j plaintext import pandas as pdfrom neo4j import GraphDatabaseimport time# 将 DataFramedefbatched_import(statement, df, batch_size1000): total len(df) start_s time.time()for start inrange(0,total, batch_size): batch df.iloc[start: min(start batch_size,total)] result driver.execute_query(UNWIND $rows AS value statement, rowsbatch.to_dict(records), database_NEO4J_DATABASE)print(result.summary.counters)print(f{total} rows in {time.time() - start_s} s.)return total# neo4j 环境配置NEO4J_URI neo4j://localhostNEO4J_USERNAME neo4jNEO4J_PASSWORD neo4jNEO4J_DATABASE neo4jdriver GraphDatabase.driver(NEO4J_URI, auth(NEO4J_USERNAME, NEO4J_PASSWORD))# parquet 文件存储目录GRAPHRAG_FOLDER ./rag_demo/outputtext_units pd.read_parquet(GRAPHRAG_FOLDER /text_units.parquet)entities pd.read_parquet(GRAPHRAG_FOLDER /entities.parquet)relationships pd.read_parquet(GRAPHRAG_FOLDER /relationships.parquet)communities pd.read_parquet(GRAPHRAG_FOLDER /communities.parquet)community_reports pd.read_parquet(GRAPHRAG_FOLDER /community_reports.parquet)# 导入 text_unitsstatement MERGE (c:__Chunk__ {id:value.id})SET c value {.text, .n_tokens}WITH c, valueUNWIND value.document_ids AS documentMATCH (d:__Document__ {id:document})MERGE (c)-[:PART_OF]-(d)batched_import(statement, text_units)# 导入 entitiesentity_statement MERGE (e:__Entity__ {id:value.id})SET e value {.human_readable_id, .description, name:replace(value.title,,)}WITH e, valueCALL apoc.create.addLabels(e, case when coalesce(value.type,) then [] else [apoc.text.upperCamelCase(replace(value.type,,))] end) yield nodeUNWIND value.text_unit_ids AS text_unitMATCH (c:__Chunk__ {id:text_unit})MERGE (c)-[:HAS_ENTITY]-(e)batched_import(entity_statement, entities)# 导入 relationshipsrelationships_statement MATCH (source:__Entity__ {name:replace(value.source,,)}) MATCH (target:__Entity__ {name:replace(value.target,,)}) // not necessary to merge on id as there is only one relationship per pair MERGE (source)-[rel:RELATED {id: value.id}]-(target) SET rel value {.weight, .human_readable_id, .description, .text_unit_ids} RETURN count(*) as createdRelsbatched_import(relationships_statement, relationships)# 导入 communitiescommunities_statement MERGE (c:__Community__ {id:value.id})SET c value {.level, .title, .community}/*UNWIND value.text_unit_ids as text_unit_idMATCH (t:__Chunk__ {id:text_unit_id})MERGE (c)-[:HAS_CHUNK]-(t)WITH distinct c, value*/WITH *UNWIND value.relationship_ids as rel_idMATCH (start:__Entity__)-[:RELATED {id:rel_id}]-(end:__Entity__)MERGE (start)-[:IN_COMMUNITY]-(c)MERGE (end)-[:IN_COMMUNITY]-(c)RETURN count(distinct c) as createdCommunitiesbatched_import(communities_statement, communities)# 导入 community_reportscommunity_reports_statement MERGE (c:__Community__ {community:value.community})SET c value {.level, .title, .rank, .rank_explanation, .full_content, .summary}WITH c, valueUNWIND range(0, size(value.findings)-1) AS finding_idxWITH c, value, finding_idx, value.findings[finding_idx] as findingMERGE (c)-[:HAS_FINDING]-(f:Finding {id:finding_idx})SET f findingbatched_import(community_reports_statement, community_reports)导入完成后可以进入 http://localhost:7474/ 查看这里给出以下几个示例查询所有的节点和关系MATCH (a)-[r]-(b)RETURN a, r, b查询“冒泡排序”实体关联的所有实体MATCH (source:__Entity__)-[rel:RELATED]-(target:__Entity__)WHERE source.name 冒泡排序 OR target.name 冒泡排序RETURN source, rel, target查询编号为 2 的社区中的所有实体MATCH (c:__Community__ {community:2})MATCH (e:__Entity__)-[r:IN_COMMUNITY]-(c)RETURN c, e, r五、总结从 GraphRAG 索引和检索的流程中不难看出由于其构建了一个很完整的知识图谱因此在检索时能够更精准地定位与问题相关联的上下文从而提高生成结果的相关性和准确性。同时知识图谱结构使得复杂关系和多跳推理成为可能这在传统基于向量检索的 RAG 方法中往往难以实现。尤其在大规模知识库或跨领域信息整合场景下GraphRAG 能有效降低信息遗漏的风险并提升对复杂问题的回答能力为实际应用提供了更可靠的支持。然而正因为知识图谱需要完整的实体与关系构建这不可避免地带来了额外的成本与复杂性。大规模图谱的维护与更新会增加计算资源的消耗同时随着图规模的增长查询效率也可能受到影响。在微软 GraphRAG 中知识图谱的生成完全依赖大模型完成这意味着整个索引过程会消耗大量的 token而图谱生成的质量高度依赖基座大模型本身的能力若大模型本身的能力较差最终生成的知识图谱质量也会较低。并且若后续有新的内容加入需要重新绘制整个知识图谱这会进一步增加成本。总的来说尽管 GraphRAG 在构建与维护知识图谱上存在一定成本与复杂性但随着后续大模型能力的不断提升、图谱自动化生成技术的优化这些挑战最终有望得到有效缓解。未来GraphRAG 有潜力在更大规模、更多领域的知识整合中展现出更强的适应性和可靠性为智能问答、知识推理以及跨模态信息处理等应用提供坚实的技术基础。那么如何系统的去学习大模型LLM作为一名深耕行业的资深大模型算法工程师我经常会收到一些评论和私信我是小白学习大模型该从哪里入手呢我自学没有方向怎么办这个地方我不会啊。如果你也有类似的经历一定要继续看下去这些问题啊也不是三言两语啊就能讲明白的。所以我综合了大模型的所有知识点给大家带来一套全网最全最细的大模型零基础教程。在做这套教程之前呢我就曾放空大脑以一个大模型小白的角度去重新解析它采用基础知识和实战项目相结合的教学方式历时3个月终于完成了这样的课程让你真正体会到什么是每一秒都在疯狂输出知识点。由于篇幅有限⚡️ 朋友们如果有需要全套 《2025全新制作的大模型全套资料》扫码获取~大模型学习指南路线汇总我们这套大模型资料呢会从基础篇、进阶篇和项目实战篇等三大方面来讲解。①.基础篇基础篇里面包括了Python快速入门、AI开发环境搭建及提示词工程带你学习大模型核心原理、prompt使用技巧、Transformer架构和预训练、SFT、RLHF等一些基础概念用最易懂的方式带你入门大模型。②.进阶篇接下来是进阶篇你将掌握RAG、Agent、Langchain、大模型微调和私有化部署学习如何构建外挂知识库并和自己的企业相结合学习如何使用langchain框架提高开发效率和代码质量、学习如何选择合适的基座模型并进行数据集的收集预处理以及具体的模型微调等等。③.实战篇实战篇会手把手带着大家练习企业级的落地项目已脱敏比如RAG医疗问答系统、Agent智能电商客服系统、数字人项目实战、教育行业智能助教等等从而帮助大家更好的应对大模型时代的挑战。④.福利篇最后呢会给大家一个小福利课程视频中的所有素材有搭建AI开发环境资料包还有学习计划表几十上百G素材、电子书和课件等等只要你能想到的素材我这里几乎都有。我已经全部上传到CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】相信我这套大模型系统教程将会是全网最齐全 最易懂的小白专用课
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

平台网站建设开票开什么内容个人网站模板 免费

GLM-4.5-FP8:重新定义大模型推理效率的突破性技术 【免费下载链接】GLM-4.5-FP8 项目地址: https://ai.gitcode.com/zai-org/GLM-4.5-FP8 从实际需求出发:企业面临的推理效率挑战 在当前大语言模型应用日益普及的背景下,企业普遍面临…

张小明 2026/1/10 14:21:13 网站建设

单页网站版权显示融创中国最新消息

ThinkPad P53终极散热指南:TPFanCtrl2深度配置教程 【免费下载链接】TPFanCtrl2 ThinkPad Fan Control 2 (Dual Fan) for Windows 10 and 11 项目地址: https://gitcode.com/gh_mirrors/tp/TPFanCtrl2 作为专业工作站用户,你是否经常面临散热与性…

张小明 2026/1/1 18:17:48 网站建设

asp.net网站开发教程企业网站模板免费版

目录 一、核心基础:AntPathMatcher 规则与核心 API 1. 核心匹配规则(必记) 2. Spring Boot 中获取 AntPathMatcher 实例 3. 核心 API(过滤器场景高频使用) 二、核心实战:Spring Boot 过滤器中用 AntPa…

张小明 2026/1/1 14:11:12 网站建设

c做项目的网站高端网站建设深圳

从零开始掌握AUTOSAR中的FiM模块:不只是“故障管理”,更是整车安全的中枢大脑你有没有遇到过这样的场景?某个传感器短暂异常,系统立刻进入降级模式;维修后故障码清了,但控制逻辑还是不对劲;不同…

张小明 2026/1/11 21:34:59 网站建设

无锡网站建设套餐东莞住建局官方网站

EBGaramond12开源字体:经典印刷艺术的现代数字传承终极指南 【免费下载链接】EBGaramond12 项目地址: https://gitcode.com/gh_mirrors/eb/EBGaramond12 EBGaramond12是一款基于16世纪克劳德加兰蒙经典设计复兴的开源字体项目,完整复刻了文艺复兴…

张小明 2026/1/12 3:38:37 网站建设

莱芜网站开发代理免费做网站的问题

NTFS文件系统特性与恢复机制深度解析 1. 稀疏文件与更改日志文件 稀疏文件 :稀疏文件是NTFS文件类型的一种,本质上可视为压缩文件,但NTFS不会对其非稀疏数据进行压缩处理。不过,NTFS对稀疏文件的主文件表(MFT)记录的运行数据的管理方式,与包含稀疏和非稀疏数据的压缩文…

张小明 2026/1/3 0:47:11 网站建设