自然语言处理:第四十六章 GraphRAG 快速入门

项目链接:microsoft/graphrag: A modular graph-based Retrieval-Augmented Generation (RAG) system (github.com)

实现过程:



写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

写在前面: 笔者更新不易,希望走过路过点个关注和赞,笔芯!!!

GraphRAG 是微软提出来的复合RAG,有关于GraphRAG的细节介绍和实现过程可以参考我之前的文章: 自然语言处理:第四十五章 GraphRAG 实现过程 。 这次就跟着我一起去看看如何将GraphRAG应用到实战里。

官网其实给了三种GraphRAG的方式:

  1. 从pypi包安装
  2. 源码部署
  3. 利用GraphRAG加速

要求: python >= 3.10 & <= 3.12



一. python部署

1. 新建环境

conda create -n GraphRAG python=3.11
conda activate GraphRAG

2. 环境安装

pip install graphrag

3. 初始化项目

mkdir -p ./ragtest/input   # 建立一个ragtest/input 文件夹用于存放查询文件 , ragtest 是工作目录
curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt # 目前只支持txt和csv文件解析
python -m graphrag.index --init --root ./ragtest # 初始化项目文件夹, root后面输入的是项目文件夹,

然后在ragtest的文件夹下面会生成两个文件: .env 和 setting.yaml 文件


4. 修改配置文件

4.1 在.env文件里配置apikeys

改成你sk开头的apikeys就可以了

GRAPHRAG_API_KEY=sk-xxxxxxxxxxxxxxxxxxx


4.2 在setting.yaml文件修改url和model

由于配置文件里需要对应的修改对话模型和embedding模型,所以对应的有几个内容需要修改,下面这5个是比较常见需要修改的地方,如果其他的需要修改的可以参考官网Configuring GraphRAG Indexing (microsoft.github.io)

llm:
  model: deepseek-chat
  model_supports_json: false # recommended if this is available for your model.
  api_base: https://api.agicto.cn/v1  #  https://<instance>.openai.azure.com

embeddings:
  llm:
    model: text-embedding-3-small
    api_base: https://api.agicto.cn/v1



5. 构建GraphRAG的图谱

python -m graphrag.index --root ./ragtest

比较耗时,取决于你文件大小,运行成功后应该是这样:
在这里插入图片描述



6. 查询问题

GraphRAG提供了两种查询机制:

  1. Global: 问题的回答要基于所有文档的理解

    python -m graphrag.query \
    --root ./ragtest \
    --method global \
    "What are the top themes in this story?"
    
  2. Local: 问题的回答基于某篇文档就能直接回答

    python -m graphrag.query \
    --root ./ragtest \
    --method local \
    "Who is Scrooge, and what are his main relationships?"
    

官网解释:

在这里插入图片描述




二、源码部署

1. 新建环境

同上


2.下载源码

git clone https://github.com/microsoft/graphrag.git   
cd graphrag

3. 下载依赖并初始化

3.1 安装poetry资源包管理工具及相关依赖:
pip install poetry 
poetry install


3.2 初始化

poetry run poe index --init --root .

同样的也会生成会生成两个文件: .env 和 setting.yaml 文件


3.3 放入文件夹
mkdir ./input
curl https://www.xxx.com/xxx.txt > ./input/book.txt  #示例,可以替换为任何的txt文件


4. 修改配置文件

同上


5. 构建GraphRAG的图谱

poetry run poe index --root .

成功后截图:

⠋ GraphRAG Indexer
├── Loading Input (InputFileType.text) - 1 files loaded (0 filtered) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00 0:00:00
├── create_base_text_units
├── create_base_extracted_entities
├── create_summarized_entities
├── create_base_entity_graph
├── create_final_entities
├── create_final_nodes
├── create_final_communities
├── join_text_units_to_entity_ids
├── create_final_relationships
├── join_text_units_to_relationship_ids
├── create_final_community_reports
├── create_final_text_units
├── create_base_documents
└── create_final_documents
🚀 All workflows completed successfully.



6. 查询问题

同样的也分为两种查询方式global 和local:

1Global: poetry run poe query --root . --method global "本文主要讲了什么"

  1. Local: poetry run poe query --root . --method local "本文主要讲了什么"

三. 利用GraphRAG加速

可以参考这一篇note: graphrag-accelerator/notebooks/1-Quickstart.ipynb at main · Azure-Samples/graphrag-accelerator (github.com)

  • 14
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曼城周杰伦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值