Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GraphRAG Quickstart

基于 Microsoft GraphRAG 的知识图谱构建与查询项目,使用中文企业数据(华为、小米、阿里巴巴)进行实体提取、社区检测和报告生成。

项目结构

graphrag_quickstart/
├── .env                  # 环境变量(API Key 等)
├── settings.yaml         # GraphRAG 配置文件
├── input/                # 输入数据
│   └── companyInfo.txt   # 企业信息文档
├── output/               # 索引输出结果
│   ├── entities.parquet          # 实体
│   ├── relationships.parquet     # 关系
│   ├── communities.parquet       # 社区
│   ├── community_reports.parquet # 社区报告
│   ├── documents.parquet         # 文档
│   ├── text_units.parquet        # 文本单元
│   └── lancedb/                  # 向量数据库
├── prompts/              # 提示词模板
├── cache/                # 缓存
├── logs/                 # 日志
└── rag/                  # RAG 相关(预留)

环境配置

模型配置

用途 模型 提供商
文本生成 qwen-turbo 阿里云 DashScope
文本嵌入 bge-m3 Ollama (本地)

API 端点

  • DashScope: https://dashscope.aliyuncs.com/compatible-mode/v1
  • Ollama: http://localhost:11434/v1

执行命令

1. 创建项目目录

mkdir graphrag_quickstart
cd graphrag_quickstart

2. 创建 Python 虚拟环境

python -m venv .venv

3. 激活虚拟环境

# Windows
.venv\Scripts\activate

4. 安装 GraphRAG

pip install graphrag

5. 初始化 GraphRAG 项目

graphrag init

此命令会在当前目录生成 settings.yaml.envprompts/ 等默认配置文件。

6. 准备输入数据

将企业信息文档放入 input/ 目录:

# 创建 input/companyInfo.txt,内容包含华为、小米、阿里巴巴的公司介绍

7. 配置 settings.yaml

修改 settings.yaml,配置 LLM 模型和嵌入模型:

  • completion_models: 使用阿里云 DashScope 的 qwen-turbo 模型
  • embedding_models: 使用本地 Ollama 的 bge-m3 模型
  • input: 文本类型输入
  • chunking: Token 分块,大小 1200,重叠 100
  • entity_types: [organization, person, geo, event]

8. 配置 .env 文件

# 设置 API Key
GRAPHRAG_API_KEY=your_api_key_here

9. 运行索引构建

graphrag index

索引构建会依次执行以下工作流:

  • 加载输入文档
  • 创建文本单元
  • 提取实体和关系图
  • 创建社区
  • 生成社区报告
  • 生成文本嵌入

索引结果输出到 output/ 目录。

10. 运行查询

# 本地搜索(基于实体和社区)
graphrag query --method local --query "华为和小米之间有什么关系?"

# 全局搜索(基于社区报告摘要)
graphrag query --method global --query "这三家公司的共同特点是什么?"

索引统计

指标
文档数 1
总耗时 23.6 秒
实体提取 0.67 秒
社区报告生成 10.5 秒
文本嵌入生成 10.9 秒

输出文件说明

文件 描述
entities.parquet 提取的实体列表
relationships.parquet 实体之间的关系
communities.parquet 社区聚类结果
community_reports.parquet 社区摘要报告
documents.parquet 处理后的文档
text_units.parquet 文本分块单元
lancedb/ LanceDB 向量存储

技术栈

  • Python: 3.11.9
  • GraphRAG: Microsoft GraphRAG
  • LLM: 阿里云 DashScope (qwen-turbo)
  • 嵌入模型: BGE-M3 (Ollama 本地部署)
  • 向量数据库: LanceDB

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors