GraphRAG本地部署 v2.7.0

1.本地部署

1.1 基于源码的开发

1.1.1 准备运行环境

(1)创建虚拟环境(miniconda等)。

复制代码
conda create -n GraphRAG python=3.11
conda activate GraphRAG

(2)下载源码并进入目录

复制代码
git clone https://github.com/microsoft/graphrag.git   
cd graphrag

1.1.2 下载依赖并初始化项目

(1) 安装 poetry 资源包管理工具及相关依赖
复制代码
pip install poetry 
poetry install
(2) 初始化
  1. 在 graphrag 文件夹下面创建一个./ragtest/output

  2. 命令行运行 graphrag init --root ./ragtest

这将在 ./ragtest 目录下创建两个文件:.env 和 settings.yaml。

.env 文件包含运行 GraphRAG 流程所需的环境变量。查看该文件时,你会看到其中定义了一个环境变量:GRAPHRAG_API_KEY=<API_KEY>。请将 <API_KEY> 替换为你自己的 OpenAI 或 Azure API 密钥。

settings.yaml 文件包含该流程的配置信息。你可以修改此文件来更改流程的相关配置。

(3) 使用大模型 API

若在 OpenAI 模式下运行,只需在 .env 文件中,将 GRAPHRAG_API_KEY 的值更新为你的 OpenAI API 密钥即可。

使用 Azure OpenAI

除设置 API 密钥外,Azure OpenAI 用户还需在 settings.yaml 文件中设置以下变量。如需找到对应的配置部分,只需搜索 models: 根配置;你会看到两个部分,一个用于默认聊天端点,另一个用于默认嵌入端点。以下是需添加到聊天模型配置中的示例:

复制代码
type: azure_openai_chat # Or azure_openai_embedding for embeddings
api_base: https://<instance>.openai.azure.com
api_version: 2024-02-15-preview # You can customize this for other versions
deployment_name: <azure_model_deployment_name>

在 Azure 上使用托管身份验证(Managed Auth)

若要使用托管身份验证,需在模型配置中编辑 auth_type 字段,并删除 api_key 相关行:

复制代码
auth_type: azure_managed_identity # Default auth_type is is api_key

1.1.3 运行索引流程

复制代码
poetry run poe index <...args>

在当前项目的 Poetry 虚拟环境中,执行通过 poe 定义的 "index" 命令(启动索引流程),并以当前目录作为根目录。

1.1.4 进行查询

GraphRAG 提供了两种查询方式

1)全局查询:更侧重全文理解
复制代码
poetry run poe query --root . --method global "本文主要讲了什么?"

运行成功后可以看到输出成果

2)局部查询:更侧重细节
复制代码
poetry run poe query --root . --method local "本文主要讲了什么"

1.2 在 python 包的基础上进行(快速尝试)

虚拟环境要求 python=3.11 。

1.2.1 环境安装

复制代码
pip install graphrag

1.2.2 初始化项目

创建一个临时的文件夹 graphrag ,用于存在运行时数据

复制代码
mkdir -p ./christmas/input

从可靠渠道获取查尔斯・狄更斯(Charles Dickens)所著《圣诞颂歌》(A Christmas Carol)的副本:

复制代码
curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt -o ./christmas/input/book.txt

设置工作区变量

若要初始化工作区,请先运行 graphrag init 命令。由于我们已在之前的步骤中配置了名为 ./christmas 的目录,请运行以下命令:

复制代码
graphrag init --root ./christmas

这将在 ./christmas 目录下创建两个文件:.env 和 settings.yaml。

.env 文件包含运行 GraphRAG 流程(pipeline)所需的环境变量。查看该文件时,你会看到其中定义了一个环境变量:GRAPHRAG_API_KEY=<API_KEY>。请将 <API_KEY> 替换为你自己的 OpenAI 或 Azure API 密钥。

settings.yaml 文件包含该流程(pipeline)的配置信息。你可以修改此文件来更改流程的相关配置。

1.2.3 索引流程

复制代码
graphrag index --root ./christmas

此过程运行需要一定时间,具体时长取决于以下因素:输入数据的大小、所使用的模型,以及采用的文本分块大小(这些参数可在 settings.yaml 文件中配置)。当流程(pipeline)完成后,你会看到一个名为 ./christmas/output 的新文件夹,其中包含一系列 Parquet 文件。

1.2.4 问题询问

现在我们使用这个数据集来提出一些问题。

以下是一个使用全局搜索(Global Search)提出宏观问题的示例:

复制代码
graphrag query \
--root ./christmas \
--method global \
--query "What are the top themes in this story?"

命令中的反斜杠 \ 用于换行分隔参数,保持命令结构清晰,执行时会被视为单行命令。

以下是使用本地搜索(Local Search)就某个特定角色提出更具体问题的示例:

复制代码
graphrag query \
--root ./christmas \
--method local \
--query "Who is Scrooge and what are his main relationships?"

参考文献

1\] [Getting Started - GraphRAG](https://microsoft.github.io/graphrag/get_started/ "Getting Started - GraphRAG") \[2\] [微软开源GraphRAG的使用教程(最全,非常详细)_graphrag使用-CSDN博客](https://blog.csdn.net/gaotianhao123/article/details/140493640?spm=1001.2014.3001.5506 "微软开源GraphRAG的使用教程(最全,非常详细)_graphrag使用-CSDN博客")

相关推荐
Hgfdsaqwr18 小时前
Django全栈开发入门:构建一个博客系统
jvm·数据库·python
开发者小天19 小时前
python中For Loop的用法
java·服务器·python
老百姓懂点AI19 小时前
[RAG实战] 向量数据库选型与优化:智能体来了(西南总部)AI agent指挥官的长短期记忆架构设计
python
喵手21 小时前
Python爬虫零基础入门【第九章:实战项目教学·第15节】搜索页采集:关键词队列 + 结果去重 + 反爬友好策略!
爬虫·python·爬虫实战·python爬虫工程化实战·零基础python爬虫教学·搜索页采集·关键词队列
Suchadar21 小时前
if判断语句——Python
开发语言·python
ʚB҉L҉A҉C҉K҉.҉基҉德҉^҉大21 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
喵手1 天前
Python爬虫零基础入门【第九章:实战项目教学·第14节】表格型页面采集:多列、多行、跨页(通用表格解析)!
爬虫·python·python爬虫实战·python爬虫工程化实战·python爬虫零基础入门·表格型页面采集·通用表格解析
0思必得01 天前
[Web自动化] 爬虫之API请求
前端·爬虫·python·selenium·自动化
莫问前路漫漫1 天前
WinMerge v2.16.41 中文绿色版深度解析:文件对比与合并的全能工具
java·开发语言·python·jdk·ai编程
木头左1 天前
Backtrader框架下的指数期权备兑策略资金管理实现与风险控制
python