GraphRAG 基础介绍GraphRAG 是微软研究院开源的一种结构化、层次化的检索增强生成RAG系统与传统 RAG 主要依赖纯文本向量检索不同GraphRAG 会先用大模型从原始文档中抽取实体、关系和摘要构建知识图谱再基于图结构、社区报告和原始文本片段进行检索与问答传统 RAG 更像是“从文本块里找相似片段”而 GraphRAG 更像是“先把资料整理成一张关系网络再围绕网络回答问题”因此它特别适合跨文档关联、宏观总结、复杂实体关系分析这类任务GraphRAG 的作用要理解 GraphRAG先要理解传统 RAG 的边界传统 RAG 的基本流程是文档切块 → 生成向量 → 用户提问 → 向量相似度检索 → 把相关文本块放进上下文 → LLM 生成回答这个方案对精确检索类问题效果很好例如“Starship 的设计目标是什么”“某段制度里对请假的规定是什么”“这份合同里付款期限是多少天”但当问题需要跨文档、跨实体、跨主题进行综合判断时传统 RAG 就容易吃力典型问题包括跨文档关联推理答案需要把分散在不同文档中的人物、组织、事件串联起来全局性摘要问题要求对整个语料库做宏观总结而不是找几段局部文本关系网络分析用户关心的是“谁和谁有关、通过什么关系有关、关系强弱如何”主题归纳用户希望看见一批文档里的主题结构、主要社区和潜在风险GraphRAG 的核心思路是不要只把文档当作一堆文本块而是先把文档中的关键对象和关系抽取出来形成知识图谱之后再基于知识图谱进行社区发现、报告生成和查询这样系统回答问题时不仅能看到原文片段还能看到实体、关系、社区摘要和全局结构与传统 RAG 的区别两者不是互相替代关系而是适合不同问题对比项传统 RAGGraphRAG数据组织方式文本块 向量文本块 实体 关系 社区报告 向量检索核心相似度搜索图谱结构、社区摘要、实体邻域、向量检索组合擅长问题精确事实检索全局总结、关系分析、跨文档综合构建成本较低较高需要大量 LLM 调用查询成本通常较低Global Search 成本较高Local/Basic 相对较低可解释性依赖命中文本片段可结合实体、关系、社区和来源文本解释如果只是构建一个 FAQ 问答系统传统 RAG 往往更简单如果你要分析大量报告、访谈、财报、新闻、舆情、论文或企业知识库并且经常提出“整体是什么情况”“这些对象之间有什么关系”“核心风险是什么”这类问题GraphRAG 更有优势知识图谱知识图谱可以理解为一张由“点”和“线”组成的关系网络点表示实体线表示实体之间的关系如果传统 RAG 看到的是一段段文本那么知识图谱看到的是文本背后的对象、关系和结构实体实体是图谱中的节点它表示文档中被反复提到、值得单独识别和追踪的对象常见实体类型包括人物组织地点产品事件概念等在 GraphRAG 中这些实体会出现在entities.parquet里每个实体通常会有名称、类型、描述、出现频次、度数等信息一个好的实体不只是“被模型看见的词”而是后续查询中可以承载信息的对象关系关系是图谱中的边它描述两个实体之间发生了什么联系在 GraphRAG 中关系会出现在relationships.parquet里一条关系通常包含source关系起点实体target关系终点实体description关系的自然语言描述weight关系权重或重要程度关系可以有方向两句话表达的是同一事实但图结构里通常会选定一个方向来存储也可以有权重如果两个实体在多处文本中频繁共同出现并且关系描述清晰权重通常会更高三元组知识图谱中最基础的表达方式是三元组三元组格式是主体实体 - 关系 - 客体实体三元组的好处是结构清晰模型不再只看到一段自然语言而是看到“谁和谁通过什么关系连接起来”这也是 GraphRAG 能处理关系网络问题的基础用 LLM 从文本中自动抽取实体和关系再把这些结果组织成图结构GraphRAG 图谱更适合辅助检索和理解语料而不是直接替代高精度业务数据库属性属性是实体或关系上的附加信息GraphRAG 中的属性不一定以传统知识图谱数据库的字段形式存储很多属性会被写进实体描述、关系描述或社区报告因此检查 GraphRAG 图谱质量时不仅要看实体和关系数量也要看 description 是否足够准确Schema 与实体类型Schema 可以理解为图谱的结构规范它回答两个问题第一允许抽取哪些实体类型第二什么样的关系对当前任务有价值实体类型设计会直接影响 GraphRAG 的图谱质量类型太少图谱会过粗类型太多模型可能抽取不稳定实体也容易碎片化路径与邻居图谱中两个实体之间可以通过一条或多条路径连接GraphRAG 的 Local Search 正是从相关实体出发扩展邻居、关系和文本块因此当问题是“某个实体和周围对象有什么关系”时Local Search 通常比 Basic Search 更适合社区与层级当图谱变大后所有实体和关系会形成复杂网络社区发现就是把关系更紧密的一组实体聚在一起GraphRAG 使用 Leiden 算法做层次社区发现社区结果会保存在communities.parquet社区摘要会保存在community_reports.parquetGlobal Search 之所以适合全局总结就是因为它主要基于社区报告进行 Map-Reduce 式汇总可以这样理解Local Search 看实体邻域而 Global Search 看社区报告DRIFT Search 则在局部实体和全局社区之间做折中中心性与重要实体在图谱里并不是所有实体同等重要如果一个实体连接了很多其他实体它通常更中心在 GraphRAG 输出中可以通过实体的 degree、出现频次、关系数量等字段初步判断重要性这对调试很有帮助如果发现无关词成了高频中心实体说明实体抽取 Prompt 或实体类型需要调整如果核心对象没有被抽出来则说明分块、实体类型或 Prompt Tune 可能有问题完整工作流GraphRAG 可以分为三个主流程第一是 Prompt TuneGraphRAG 会根据你的语料自动生成更适合当前领域的实体抽取 Prompt尤其处理中文资料或垂直领域资料时建议先调优 Prompt再正式索引第二是 IndexGraphRAG 会读取 input 目录中的文档完成文本切块、实体抽取、关系抽取、描述总结、社区发现、社区报告生成和向量索引第三是 Query用户提问时GraphRAG 会根据查询模式使用不同检索策略把社区报告、实体关系、文本块和向量检索结果组织成上下文再交给模型生成答案整体流程可以这样理解原始文档→ 文档加载→ 文本切块 text_units→ 实体抽取 entities→ 关系抽取 relationships→ 实体与关系描述总结→ Leiden 社区发现 communities→ 社区报告 community_reports→ 向量索引 lancedb→ Global / Local / DRIFT / Basic 查询GraphRAG 的索引阶段通常比传统 RAG 更贵原因是它不仅要给文本块做 embedding还要调用大模型进行实体抽取、关系抽取、实体描述总结和社区报告生成初次使用时不要直接扔几百篇文档进去建议先用一篇几千字以内的文档跑通流程确认配置、模型、输出目录和查询方式都正常后再逐步扩大语料四种查询模式GraphRAG 当前常见查询模式包括 Global、Local、DRIFT 和 Basic查询模式检索策略适合问题资源消耗Global Search基于社区报告做 Map-Reduce 总结全局性、总结性问题例如“这批文档的核心主题是什么”高Local Search从相关实体出发扩展邻居、关系和文本块特定实体相关问题例如“某公司和哪些组织有关”中DRIFT Search结合全局社区信息和局部实体搜索迭代扩展上下文既围绕实体又需要更宽背景的问题中高Basic Search标准向量相似度检索文本块简单事实检索或和传统 RAG 对比低环境安装GraphRAG 发布在 PyPI建议在独立虚拟环境中安装当前 GraphRAG 官方包要求 Python 版本为3.11,3.14建议使用 Python 3.11、3.12 或 3.13创建虚拟环境# 创建项目目录 mkdir graph-rag-demo cd graph-rag-demo # 创建 Python 虚拟环境 python -m venv .venv激活虚拟环境# macOS / Linux source .venv/bin/activate# Windows PowerShell .\.venv\Scripts\Activate.ps1使用uv创建指定 Python 版本的环境# 创建 Python 3.12 环境 uv venv --python 3.12 # 激活后继续安装依赖 uv pip install graphrag pandas pyarrow使用pip安装# 升级 pip减少安装依赖时的兼容问题 python -m pip install --upgrade pip # 安装 GraphRAG 和读取 parquet 常用依赖 pip install graphrag pandas pyarrow安装完成后验证# 查看 CLI 是否安装成功 graphrag --help如果能看到init、index、query、prompt-tune、update等命令说明安装成功初始化工作区运行graphrag init命令GraphRAG 会在项目目录中生成默认配置文件和目录结构# 在当前目录初始化 GraphRAG 项目 graphrag init --root .初始化时会让你设置默认 chat model 和 embedding model可以先回车使用默认值之后再手动修改配置文件Specify the default chat model to use [gpt-4.1]: Specify the default embedding model to use [text-embedding-3-large]:初始化后的常见目录结构如下graph-rag-demo/ ├── .env # 存放 API Key 等环境变量 ├── settings.yaml # 核心配置文件不同版本字段可能略有差异 ├── input/ # 存放待处理文档 ├── prompts/ # Prompt 模板目录 ├── output/ # 索引输出目录运行 index 后生成 ├── cache/ # LLM 调用缓存目录 └── logs/ # 日志目录注意每次升级 GraphRAG 小版本后如果遇到配置字段不兼容建议先备份旧配置再运行# 强制重新生成当前版本的配置和 prompt 模板 graphrag init --root . --force--force会覆盖现有settings.yaml和prompts/所以运行前一定要备份准备测试文档GraphRAG 支持 .txt、.csv、.json 格式的文档所有待处理文件放在 input/ 目录下可以使用官方推荐的测试文档直接从 Project Gutenberg 下载curl https://static.jyshare.com/download/pg24022.txt -o ./input/book.txt或者创建一个中文测试文本内容越丰富含大量人物、地点、事件关系GraphRAG 的知识图谱效果越明显创建input/demo.txtSpaceX 太空探索技术公司成立于 2002 年由埃隆·马斯克Elon Musk在美国加利福尼亚州霍桑市创办。 公司目标是大幅降低太空运输成本最终实现人类移民火星。 马斯克早年联合创立了 PayPal2002 年以 15 亿美元出售给 eBay随后将个人资产投入 SpaceX。 联合创始人中汤姆·穆勒Tom Mueller担任推进系统首席设计师主导了 Merlin 和 Raptor 发动机的研发。 格温·肖特维尔Gwynne Shotwell于 2002 年加入2008 年起担任总裁兼 COO负责公司日常运营和商业拓展。 2008 年猎鹰 1 号Falcon 1在经历三次失败后首次成功入轨成为首个由私营公司研制的液体轨道火箭。 2010 年猎鹰 9 号Falcon 9首飞成功同年龙飞船Dragon完成首次商业发射与回收。 2012 年龙飞船成为首个对接国际空间站的商业航天器。 2015 年 12 月猎鹰 9 号一级火箭首次实现陆地垂直回收开创了火箭重复使用的新纪元。 此后 SpaceX 累计完成超过 200 次火箭回收单枚助推器最高复用次数达到 20 次以上。 2020 年载人龙飞船Crew Dragon将 NASA 宇航员送入国际空间站标志着商业载人航天时代的开始。 Starlink 星链项目自 2019 年启动截至 2024 年已在轨部署超过 5000 颗卫星覆盖全球超过 60 个国家和地区。 Starship 星舰是 SpaceX 正在研发的超重型运载系统由超重助推器Super Heavy和星舰飞船组成 设计目标为完全可重复使用近地轨道运力超过 100 吨是 NASA 阿尔忒弥斯登月计划的指定着陆器。 竞争对手方面SpaceX 主要面临来自蓝色起源Blue Origin和联合发射联盟ULA的压力。 蓝色起源由亚马逊创始人杰夫·贝索斯创立专注亚轨道旅游和重型火箭 New Glenn 的研发。 ULA 由洛克希德·马丁和波音合资成立长期承担美国军方卫星发射任务。配置模型GraphRAG 使用 LiteLLM 调用模型因此除了 OpenAI 官方模型也可以接入 Azure OpenAI、Anthropic、DashScope、DeepSeek、OpenRouter 等兼容或受支持的模型本文使用阿里云百炼 DashScope 的 OpenAI 兼容接口先编辑.env# .env # 阿里云百炼 API Key DASHSCOPE_API_KEYsk-your-dashscope-api-key然后修改settings.yaml中的模型配置下面是一个可参考的模型配置片段# 文本生成模型 completion_models: default_completion_model: model_provider: openai model: qwen3.7-plus auth_method: api_key api_key: ${DASHSCOPE_API_KEY} api_base: https://dashscope.aliyuncs.com/compatible-mode/v1 call_args: temperature: 0 max_tokens: 4096 retry: type: exponential_backoff # 指数退避 max_retries: 5 # 最大重试次数 base_delay: 2 # 延迟时间单位秒 # 向量模型 embedding_models: default_embedding_model: model_provider: openai model: text-embedding-v4 auth_method: api_key api_key: ${DASHSCOPE_API_KEY} api_base: https://dashscope.aliyuncs.com/compatible-mode/v1 retry: type: exponential_backoff # 指数退避 max_retries: 5 # 最大重试次数 # 全局并发 concurrent_requests: 1 # 控制大模型和向量模型请求并发避免限流 # 数据源 input: type: text # 纯文本文件 # 输入存储 input_storage: type: file # 文件存储 base_dir: input # 输入文件目录 # 文本分块 chunking: type: tokens # 基于token分块 size: 600 # 中文分块大小推荐 500~800 overlap: 100 # 分块重叠大小推荐 100~200 encoding_model: o200k_base # 新版分词模器 # 输出存储 output_storage: type: file # 文件存储 base_dir: output # 输出文件目录 # 日志存储 reporting: type: file # 文件存储 base_dir: logs # 日志文件目录 # 缓存存储 cache: type: json # JSON缓存 storage: type: file # 文件存储 base_dir: cache # 缓存文件目录 # 向量存储 vector_store: type: lancedb # 本地轻量向量数据库 db_uri: output/lancedb # 存放路径 vector_size: 1024 # 向量维度 # 向量批量处理 embed_text: embedding_model_id: default_embedding_model batch_size: 10 # 批量处理大小 batch_max_tokens: 6000 # 单批次token上限 # 图谱构建 extract_graph: completion_model_id: default_completion_model prompt: prompts/extract_graph.txt entity_types: [person, organization, geo, event, concept] # 实体类型 max_gleanings: 3 # 补抽次数 # 描述总结 summarize_descriptions: completion_model_id: default_completion_model prompt: prompts/summarize_descriptions.txt max_length: 500 # 每个实体/关系最大总结长度 # 社区聚类 cluster_graph: max_cluster_size: 20 # 每个社区最多实体数 # 事实抽取 extract_claims: enabled: false # 是否开启事实抽取功能 # 社区报告 community_reports: completion_model_id: default_completion_model graph_prompt: prompts/community_report_graph.txt text_prompt: prompts/community_report_text.txt max_length: 1500 # 每个社区报告最大长度 max_input_length: 4000 # 输入最大长度 # 项目导出 snapshots: graphml: true # 是否导出图谱文件 embeddings: false # 是否导出向量文件 # 局部搜索 local_search: completion_model_id: default_completion_model embedding_model_id: default_embedding_model prompt: prompts/local_search_system_prompt.txt top_k_entities: 10 # 检索最相关的实体数 # 全局搜索 global_search: completion_model_id: default_completion_model map_prompt: prompts/global_search_map_system_prompt.txt reduce_prompt: prompts/global_search_reduce_system_prompt.txt knowledge_prompt: prompts/global_search_knowledge_system_prompt.txt map_max_length: 500 # 分片摘要最大长度 reduce_max_length: 1500 # 最终全局搜索最大长度中文资料正式索引前建议先做 Prompt 自动调优# 根据中文语料生成更合适的抽取 Prompt graphrag prompt-tune --root . --language Chinese如果语料有明确领域也可以加上--domain# 指定领域有助于生成更贴合语料的 Prompt graphrag prompt-tune --root . --language Chinese --domain commercial aerospace调优完成后prompts/目录下的 Prompt 文件会被更新建议把调优后的 Prompt 保存到版本管理中后续重建索引时保持一致开始索引配置完成后运行索引命令# 使用默认 standard 方法构建索引 graphrag index --root .显式指定标准方法# standard 是默认方法可以省略 graphrag index --root . --method standard在正式执行前可以先做一次 dry run# 检查配置和流程但不真正执行索引 graphrag index --root . --dry-run如果索引过程中断可以直接重新运行graphrag indexGraphRAG 默认支持 LLM cache重复请求会尽量复用缓存结果如果希望禁用缓存可以显式指定# 不使用 LLM cache通常只在调试时使用 graphrag index --root . --no-cache索引阶段会完成文档读取文本切块实体抽取关系抽取实体和关系描述总结社区聚类社区报告生成向量索引写入Standard 与 FastGraphRAG 当前支持不同索引方法最常用的是standard和fast标准方法# LLM 负责实体抽取、关系抽取、描述总结和社区报告生成 graphrag index --root . --method standardFastGraphRAG# 用 NLP 方法替代部分 LLM 推理成本更低、速度更快 graphrag index --root . --method fast两者区别如下方法特点优点缺点standard用 LLM 抽取实体、关系、描述和社区报告图谱质量更高实体关系更有语义成本高速度慢fast用 NLP 方法抽取名词短语和共现关系仍生成社区报告成本低速度快图谱更粗糙默认更偏英文图谱抽取大约会构成索引成本的重要部分如果你需要高质量实体图谱和关系探索建议使用standard如果主要目标是全局摘要且希望降低索引成本可以先尝试fast输出文件索引完成后output/目录下会生成一批 parquet 文件和向量库常见文件如下文件作用documents.parquet原始文档导入后的表包含标题、全文、metadata 和对应 text unitstext_units.parquet文本切块结果是后续抽取实体和关系的基本单位entities.parquet抽取出的实体包含名称、类型、描述、频次、度数等relationships.parquet实体之间的关系包含 source、target、关系描述、权重等communities.parquetLeiden 社区发现结果包含社区层级、父子社区和成员实体community_reports.parquet每个社区的摘要报告是 Global Search 的核心数据covariates.parquet可选输出开启 claims 抽取时生成lancedb/本地向量数据库存储文本块、实体描述、社区报告等向量如果想检查索引质量可以先读entities.parquet和relationships.parquet创建inspect_outputs.pyfrom pathlib import Path import pandas as pd output_dir Path(output) # 读取实体和关系表快速查看抽取质量 entities pd.read_parquet(output_dir / entities.parquet) relationships pd.read_parquet(output_dir / relationships.parquet) print(实体数量, len(entities)) print(关系数量, len(relationships)) # 查看前 10 个实体重点关注 title、type、description print(entities[[title, type, description]].head(10)) # 查看前 10 条关系重点关注 source、target、description print(relationships[[source, target, description]].head(10))运行python inspect_outputs.py如果实体名称大量重复、类型混乱或关系描述很空优先调整 Prompt Tune、实体类型和分块大小执行查询GraphRAG 提供 CLI 和 Python API 两种方式对知识图谱进行查询CLI 查询全局搜索适合宏观性问题# Global Search默认查询方法就是 global graphrag query --root . 这批文档的核心主题是什么显式指定 Global Search# 适合全局总结类问题 graphrag query --root . --method global 文档中涉及的主要组织和人物有哪些它们之间有什么关系Local Search# 适合围绕特定实体提问 graphrag query --root . --method local SpaceX 公司的主要业务和合作伙伴有哪些DRIFT Search# 适合围绕实体继续扩展上下文的问题 graphrag query --root . --method drift 埃隆·马斯克的职业背景和主要贡献是什么Basic Search# 适合简单事实检索也可用于和传统 RAG 对比 graphrag query --root . --method basic Starship 星舰的设计目标和能力是什么指定响应格式# 让模型用 3-7 条要点回答 graphrag query --root . --method global --response-type List of 3-7 Points 这批资料的核心风险是什么流式输出# 边生成边打印 graphrag query --root . --method local --streaming SpaceX 的竞争对手有哪些指定社区层级# 数值越高社区通常越小细节更多 graphrag query --root . --method global --community-level 2 文档有哪些主要主题Python API 查询在代码中调用 GraphRAG 查询适合集成到应用程序中创建query_with_python.pyimport asyncio from pathlib import Path import pandas as pd from graphrag.api.query import global_search, local_search, drift_search, basic_search from graphrag.config.load_config import load_config ROOT Path(.) OUTPUT ROOT / output def read_optional_parquet(path: Path): 读取可选 parquet 文件不存在时返回 None if path.exists(): return pd.read_parquet(path) return None async def run_query(): 演示四种查询方式的最小调用流程 # 加载 settings.yaml 配置 config load_config(ROOT) # 读取索引输出表 entities pd.read_parquet(OUTPUT / entities.parquet) communities pd.read_parquet(OUTPUT / communities.parquet) community_reports pd.read_parquet(OUTPUT / community_reports.parquet) text_units pd.read_parquet(OUTPUT / text_units.parquet) relationships pd.read_parquet(OUTPUT / relationships.parquet) covariates read_optional_parquet(OUTPUT / covariates.parquet) # Global Search适合宏观总结类问题 global_response, global_context await global_search( configconfig, entitiesentities, communitiescommunities, community_reportscommunity_reports, community_levelNone, dynamic_community_selectionFalse, response_typemultiple paragraphs, query文档中涉及的主要公司和人物关系网络是怎样的, ) print(【Global Search】) print(global_response) # Local Search适合围绕特定实体提问 local_response, local_context await local_search( configconfig, entitiesentities, communitiescommunities, community_reportscommunity_reports, text_unitstext_units, relationshipsrelationships, covariatescovariates, community_level2, response_typemultiple paragraphs, querySpaceX 公司的创始团队背景和主要产品是什么, ) print(\n【Local Search】) print(local_response) # DRIFT Search适合实体问题但需要更宽上下文 drift_response, drift_context await drift_search( configconfig, entitiesentities, communitiescommunities, community_reportscommunity_reports, text_unitstext_units, relationshipsrelationships, community_level2, response_typemultiple paragraphs, query埃隆·马斯克与 SpaceX 的关键发展节点有什么关系, ) print(\n【DRIFT Search】) print(drift_response) # Basic Search标准向量检索 basic_response, basic_context await basic_search( configconfig, text_unitstext_units, queryStarship 星舰的设计目标是什么, ) print(\n【Basic Search】) print(basic_response) if __name__ __main__: # GraphRAG 查询 API 是异步函数需要用 asyncio 运行 asyncio.run(run_query())Prompt 自动调优GraphRAG 官方建议在处理自己的数据集前先进行 Prompt 自动调优它会读取你的部分文档生成更适合当前语料的实体抽取 Prompt对于中文资料这一步尤其重要基本命令# 根据 input 数据自动生成 prompt graphrag prompt-tune --root . --language Chinese带领域提示# domain 可以帮助模型理解语料范围 graphrag prompt-tune --root . --language Chinese --domain commercial aerospace输出到单独目录# 先输出到 prompts_tuned确认后再替换 prompts graphrag prompt-tune --root . --language Chinese --output prompts_tuned常用 CLI 命令命令说明graphrag init --root .初始化工作区生成.env、settings.yaml、input/、prompts/graphrag init --root . --force强制重新初始化会覆盖配置和 Promptgraphrag prompt-tune --root . --language Chinese根据中文语料自动调优 Promptgraphrag index --root .使用默认 standard 方法执行索引graphrag index --root . --method standard使用标准 GraphRAG 索引方法graphrag index --root . --method fast使用 FastGraphRAG 索引方法graphrag index --root . --dry-run检查配置和流程不真正执行graphrag index --root . --no-cache禁用 LLM cache 后执行索引graphrag update --root .更新已有知识图谱索引graphrag query --root . 问题默认 Global Search 查询graphrag query --root . --method global 问题Global Search 查询graphrag query --root . --method local 问题Local Search 查询graphrag query --root . --method drift 问题DRIFT Search 查询graphrag query --root . --method basic 问题Basic Search 查询graphrag query --root . --streaming 问题流式输出查询结果常见错误与排查问题常见原因解决方式graphrag命令不存在虚拟环境未激活或安装失败激活.venv后重新安装graphragsettings.yaml字段报错配置来自旧版本教程和当前版本不匹配重新graphrag init --force再局部迁移配置API 401 或认证失败.env没配置或变量名不匹配检查${DASHSCOPE_API_KEY}是否能被读取API 限流并发过高请求过密降低并发开启 cache增加 retry向量维度错误vector_size和 embedding 模型输出维度不一致按模型实际维度修改index_schema没生成 parquet索引中途失败或输出目录配置错误查看logs/先用--dry-run检查配置实体抽取质量差Prompt 不适合中文或领域语料运行prompt-tune --language Chinese调整实体类型关系很少分块太小或 Prompt 没要求关系增大 chunk size检查extract_graph.txtGlobal Search 很慢社区报告多map 阶段调用多缩小语料、降低 community level、尝试 fast 方法Local Search 查不到重点实体实体名称不一致或实体描述向量质量差检查entities.parquet换问法或调 PromptPython API 报导入错误GraphRAG API 仍在变化锁定版本优先使用 CLI按当前源码调整 import