当前位置: 首页 > news >正文

GraphRAG参数与使用步骤 | 基于GPT-4o-mini实现更便宜的知识图谱RAG

首先给兄弟朋友们展示一下结论,一个文本18万多字,txt文本大小185K,采用GraphRAG,GPT-4o-mini模型,索引耗时差不多5分钟,消耗API价格0.15美元

GraphRAG介绍

GraphRAG是微软最近开源的一款基于知识图谱技术的框架,主要应用于问答、摘要和推理等方面。它的核心特点是将大型语言模型(LLMs)与知识图谱结合,从而能够从非结构化文本中提取结构化数据,并构建带有标签的知识图谱。

GraphRAG解决的问题主要是针对一些高层次、抽象或总结性问题,这些问题通常难以通过传统的检索增强生成(RAG)系统来回答。例如,它可以回答关于整个文本集合的主题这类问题,而不仅仅是针对特定文档的查询。

在技术实现上,GraphRAG首先利用LLM从文本中提取出实体、关系和其他相关信息,然后通过社区检测算法将知识图谱划分为多个模块化的社区。每个社区都包含相关性较高的节点。接着,LLM会对这些社区进行摘要,最后通过一种map-reduce方式,将所有相关的社区摘要汇总成一个全局性的答案。

GraphRAG的开源,意味着大模型行业将迎来新的升级,特别是在问答、摘要和推理方面。这个框架不仅提高了处理复杂问题的能力,还为多种应用场景提供了支持。

总的来说,GraphRAG是一个创新的框架,它通过结合知识图谱和大型语言模型,极大地增强了模型在处理复杂、抽象问题方面的能力,为AI领域带来了新的发展机遇。

文档地址如下:

Welcome to GraphRAGicon-default.png?t=N7T8https://microsoft.github.io/graphrag/

1,安装 GraphRAG

pip install graphrag

安装过程中,可能会报这个错。(如果安装中没有报任何错,请跳转到第2步)

error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

需要安装wheel,有些包依赖于 wheel 格式,因此你可以尝试先安装 wheel:

pip install wheel

有时最新版本的包可能会有问题,尝试安装一个稳定的旧版本:

pip install fastparquet==2024.2.0

2、运行索引器

mkdir -p ./ragtest/input

3、将需要索引的知识库放到下面目录,命名为book.txt

./ragtest/input/book.txt

4、安装工作环境变量

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

5,配置.env文件和settings.yaml文件

其中.env文件需要填写openai的apikey

settings.yaml中type需要改成openai_chat,model改成gpt-4o-mini

6,开始执行索引

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

安装过程如下

当提示下图时,大概3-5分钟后,就安装完成了。

7,对知识库进行提问

python -m graphrag.query --root ./ragtest --method global "What are the top themes in this story?"

我把这个回答交给chatglm问了下,如下

http://www.lryc.cn/news/404219.html

相关文章:

  • /秋招突击——7/21——复习{堆——数组中的第K大元素}——新作{回溯——全排列、子集、电话号码的字母组合、组合总和、括号生成}
  • matlab 异常值检测与处理——Robust Z-score法
  • Ubuntu 20安装JDK17和MySQL8.0
  • DC-1靶场打靶第一次!!!!冲冲冲!
  • 【LeetCode】填充每个节点的下一个右侧节点指针 II
  • mac无法清空废纸篓怎么办 mac废纸篓清空了如何找回 cleanmymac误删文件怎么恢复
  • 树上启发加点分治思想
  • 【iOS】类对象的结构分析
  • 接口性能优化思路
  • PyQt5 多线程编程详细教程
  • uniapp小程序上传pdf文件
  • Python酷库之旅-第三方库Pandas(036)
  • Python爬虫(2) --爬取网页页面
  • 【iOS】——探究isKindOfClass和isMemberOfClass底层实现
  • Python 热门面试题(七)
  • STM32项目分享:智能宠物喂食系统
  • 数据结构——栈的实现(java实现)与相应的oj题
  • linux修改时区为CST
  • 【Spring Security】初识Spring Security
  • 配置单区域OSPF
  • SQL中的游标是什么?
  • 7. LangChain4j如何使用统一api调用?
  • RPM、YUM 安装 xtrabackup 8 (mysql 热备系列一)包含rpm安装 mysql 8 配置主从
  • maven项目打成可运行的jar及pom中的依赖一同打包
  • Gettler‘s Screep World 笔记 Ⅰ
  • 联合体(union)的定义以及如何与结构体(struct)不同
  • 【Spark官方文档部分翻译】RDD编程指南(RDD Programming Guide)
  • 前端八股文 $set
  • Connecting weaviate with langflow across docker containers
  • 【linux vim使用说明】