等不是办法,干才有希望,快速跑通graphRag

等不是办法,干才有希望,快速跑通graphRag

感谢

且不去理会各种繁杂的概念,先把项目跑起来体验一下。

运行环境配置

AI 相关的库更新迭代速度极快,今天学习的内容可能明天就已更新。因此,确保版本一致性至关重要,以下是本教程所需的核心环境:

  • Python 3.12
  • GraphRAG 2.1.0

安装主要依赖:

bash 复制代码
pip install graphrag==2.1.0

其余依赖项会在安装过程中自动下载,无需手动配置。

1 初始化

使用以下命令初始化项目:

bash 复制代码
graphrag init --root graphrag-demo

执行后将生成如下基本目录结构:

bash 复制代码
graphrag-demo
├── 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                                                # 配置文件,包含模型设置、输入输出设置等
└── .env                                                         # 环境变量文件,存储API密钥等敏感信息

2 修改提示词

extract_claims.txtextract_graph.txt 中的 English 改为 Chinese,使系统返回中文的实体和关系。

3 配置环境

需要对 settings.yaml 进行配置,并在 .env 文件中设置相应的环境变量:

注意事项:

  • 本教程使用的是 grok-2-1212 模型,可能会出现 encoding_model 找不到的错误,需要手动指定该参数
  • 对于 embedding_model,建议选择支持较大token长度的模型(如硅基流动),实测发现火山豆包等模型可能会出现错误

4 运行

bash 复制代码
graphrag index

5 查询

社区查询

bash 复制代码
graphrag query  --method local --query "都有哪些实体"

全局查询

bash 复制代码
graphrag query  --method global --query "按时间叙事"

output结构

csharp 复制代码
├── output # 输出目录,存储处理结果
│   ├── communities.parquet # 社区数据,存储识别出的主题社区信息
│   ├── community_reports.parquet # 社区报告数据,存储为每个社区生成的详细报告
│   ├── context.json # 上下文信息,存储处理过程中的上下文数据
│   ├── documents.parquet # 文档数据,存储处理后的文档信息
│   ├── entities.parquet # 实体数据,存储从文本中提取的实体信息
│   ├── lancedb # LanceDB向量数据库目录
│   │   ├── default-community-full_content.lance # 社区全文内容的向量存储
│   │   │   ├── _transactions # 事务记录
│   │   │   │   ├── 0-b8903013-e496-49d2-8056-26cdafbcb6da.txn # 事务文件
│   │   │   │   └── 1-c4e75ee4-4179-431a-afde-15ce230ebf52.txn # 事务文件
│   │   │   ├── _versions # 版本管理
│   │   │   │   ├── 1.manifest # 版本1清单
│   │   │   │   └── 2.manifest # 版本2清单
│   │   │   └── data # 数据存储
│   │   │       └── c4779283-b391-463d-a1e0-8af73d66a4fa.lance # 数据文件
│   │   ├── default-entity-description.lance # 实体描述的向量存储
│   │   │   ├── _transactions # 事务记录
│   │   │   │   ├── 0-f0aeed1e-f954-4fef-9987-e4ab2c441961.txn # 事务文件
│   │   │   │   └── 1-cf687bea-4335-4238-bec4-9006851c1aaf.txn # 事务文件
│   │   │   ├── _versions # 版本管理
│   │   │   │   ├── 1.manifest # 版本1清单
│   │   │   │   └── 2.manifest # 版本2清单
│   │   │   └── data # 数据存储
│   │   │       └── 2585fe1e-7787-4a4e-afa3-9b87b1925d86.lance # 数据文件
│   │   └── default-text_unit-text.lance # 文本单元的向量存储
│   │       ├── _transactions # 事务记录
│   │       │   ├── 0-53a32157-64a8-444b-a838-a60a38c76e67.txn # 事务文件
│   │       │   └── 1-859fd3ea-20d0-4db0-b000-d90e2a85c1a1.txn # 事务文件
│   │       ├── _versions # 版本管理
│   │       │   ├── 1.manifest # 版本1清单
│   │       │   └── 2.manifest # 版本2清单
│   │       └── data # 数据存储
│   │           └── 7cb17cae-41b3-4003-845d-abde65e0ee6a.lance # 数据文件
│   ├── relationships.parquet # 关系数据,存储实体间的关系信息
│   ├── stats.json # 统计数据,存储处理过程的统计信息
│   └── text_units.parquet # 文本单元数据,存储文本分割后的基本单元

后续随缘更新

相关推荐
fatcoder5 分钟前
玩转Docker 08 — 实战:容器化真实后端并编排
后端·docker·容器
神奇小汤圆8 分钟前
从原始的CRUD 到高并发架构:关于秒杀系统的问题拆解与推演
后端
魔兽大山哥14 分钟前
NL2SQL 最怕越权:我在执行层叠了好几层 SQL 闸门
后端
foggyprojects31 分钟前
当 AI 输出销售额时,如何让它解释这个数字是怎么算出来的?
后端
m4Rk_42 分钟前
【论文阅读】Agent 记忆机制(41):Agentic Plan Caching——将历史执行轨迹转化为可复用的计划记忆
论文阅读·人工智能·学习·开源·github
一只叫煤球的猫1 小时前
开个新坑,从头开始完整拆解 Spring AI 2.0 的源码
后端·面试·aigc
自进化Agent智能体1 小时前
Hermes Cron 定时任务 —— 让 Agent 自动工作
后端
zlinear数据采集卡1 小时前
数据采集卡从入门到精通(9):分辨率与精度——16位卡不等于1/65536的精度
开发语言·数据库·fpga开发·开源·c#
我不是码神661 小时前
Windows 下 Codex CLI 报“拒绝访问 (os error 5)”:先查入口,再查配置
后端·chatgpt
她的男孩1 小时前
我用 LLM 把后台 CRUD 效率提升 10 倍:AI 代码生成器的架构与落地实践
java·后端·架构