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

后续随缘更新

相关推荐
吴生439621 分钟前
数据库ALGORITHM = INSTANT 特性研究过程
后端
程序猿chen36 分钟前
JVM考古现场(十九):量子封神·用鸿蒙编译器重铸天道法则
java·jvm·git·后端·程序人生·java-ee·restful
Chandler241 小时前
Go:接口
开发语言·后端·golang
ErizJ1 小时前
Golang|Channel 相关用法理解
开发语言·后端·golang
automan021 小时前
golang 在windows 系统的交叉编译
开发语言·后端·golang
Pandaconda1 小时前
【新人系列】Golang 入门(十三):结构体 - 下
后端·golang·go·方法·结构体·后端开发·值传递
我是谁的程序员1 小时前
Flutter iOS真机调试报错弹窗:不受信任的开发者
后端
蓝宝石Kaze1 小时前
使用 Viper 读取配置文件
后端
aiopencode1 小时前
Flutter 开发指南:安卓真机、虚拟机调试及 VS Code 开发环境搭建
后端
zy_destiny1 小时前
【非机动车检测】用YOLOv8实现非机动车及驾驶人佩戴安全帽检测
人工智能·python·算法·yolo·机器学习·安全帽·非机动车