等不是办法,干才有希望,快速跑通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 # 文本单元数据,存储文本分割后的基本单元

后续随缘更新

相关推荐
世人万千丶13 小时前
Flutter 框架跨平台鸿蒙开发 - 恐惧清单应用
学习·flutter·华为·开源·harmonyos·鸿蒙
财富自由且长命百岁13 小时前
移动端老兵转型端侧 AI:第一周,我跑通了 ResNet50 推理
机器学习
涡能增压发动积13 小时前
同样的代码循环 10次正常 循环 100次就抛异常?自定义 Comparator 的 bug 让我丢尽颜面
后端
Wenweno0o13 小时前
0基础Go语言Eino框架智能体实战-chatModel
开发语言·后端·golang
swg32132113 小时前
Spring Boot 3.X Oauth2 认证服务与资源服务
java·spring boot·后端
tyung13 小时前
一个 main.go 搞定协作白板:你画一笔,全世界都看见
后端·go
gelald13 小时前
SpringBoot - 自动配置原理
java·spring boot·后端
殷紫川14 小时前
深入拆解 Java 内存模型:从原子性、可见性到有序性,彻底搞懂 happen-before 规则
java·后端
元宝骑士14 小时前
FIND_IN_SET使用指南:场景、优缺点与MySQL优化策略
后端·mysql
用户319523703477114 小时前
记一次 PostgreSQL WAL 日志撑爆磁盘的排查
后端