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.mzph.cn/pingmian/48666.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“论系统安全架构设计及其应用”,写作框架,软考高级论文,系统架构设计师论文

论文真题 随着社会信息化进程的加快,计算机及网络已经被各行各业广泛应用,信息安全问题也变得愈来愈重要。它具有机密性、完整性、可用性、可控性和不可抵赖性等特征。信息系统的安全保障是以风险和策略为基础,在信息系统的整个生命周期中提…

73、Flink 的 DataStream API 生产实践总结

0、汇总 1.可以使用 Maven 命令、CURL 命令、IDEA 手动创建 Flink 项目;2.可以使用 Maven Shade 插件将必需的依赖项打包进应用程序 jar 中;3.应该在 Flink 集群的 lib 文件夹内配置需要的(核心)依赖项;4.应该将程序中…

【Godot4.2】GodotXML插件 - 解析和生成XML

概述 近期在研究基于Godot的XML和SVG解析,并且在昨天(2024年7月20日)编写了一个简易的SVG文件解析器。 在群友的提示下,知道早就存在GodotXML这样的解析器。所以今天就来测试使用并准备研究学习源代码了。和以往一样&#xff0c…

GD32 MCU是如何进入中断函数的

用过GD32 MCU的小伙伴们都知道,程序是顺序执行的,但当有中断来的时候程序会跳转到中断函数,执行完中断函数后程序又继续回到原来的位置继续执行,那么你们知道MCU是如何找到中断函数入口的吗? 今天我们就以GD32F303系列…

Flex和Bison

Flex和Bison是Linux和Unix环境下两个非常强大的工具,分别用于生成词法分析器和语法分析器。它们在编译器设计、文本处理等领域有着广泛的应用。下面我将详细介绍Flex和Bison的基本概念、功能、用法以及它们之间的关系。 一、Flex 1. 基本概念 Flex(其…

JavaScript进阶之作用域解构箭头函数

目录 一、作用域1.1 局部作用域1.2 全局作用域1.3 作用域链1.4 垃圾回收机制1.5 闭包1.6 变量提升 二、函数进阶2.1 函数提升2.2 函数参数2.3 箭头函数(重要) 三、解构赋值3.1 数组解构3.2 对象解构(重要重要) 一、作用域 1.1 局…

【BUG】已解决:ModuleNotFoundError: No module named‘ pip‘

已解决:ModuleNotFoundError: No module named‘ pip‘ 目录 已解决:ModuleNotFoundError: No module named‘ pip‘ 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰…

揭开黑箱:目标检测中可解释性的重要性与实现

揭开黑箱:目标检测中可解释性的重要性与实现 在深度学习的目标检测任务中,模型的准确性虽然重要,但模型的决策过程是否透明也同样关键。可解释性(Explainability)是指模型能够为其预测结果提供清晰、可理解的解释。本…

SpringCloud--负载均衡

目录 前言 一.负载均衡的引入 1.1问题引入 1.2代码修改实现 二.负载均衡介绍 2.1实现负载均衡 2.2负载均衡策略 2.3LoadBalancer 原理 学习专栏:http://t.csdnimg.cn/tntwg 前言 在前面的Eureka当中,我们虽然实现了从注册中心中获取url&#xf…

桌面小宠物发布一周,第一次以独立开发者的身份赚到了100块

收入数据(AppStore一周收入统计) AppStore付费工具榜第七 应用简介 桌面新宠(NewPet),是我耗时半年开发的一款桌面宠物。我是被 QQ 宠物影响的那批人,上学时天天给 QQ 宠物喂食,很可惜它现在不在了。所以,我开发的初衷是想要在电…

将SQL中的占位符替换成参数

将SQL中的占位符替换成参数 描述 描述 此方法是将SQL中的${}或#{}替换为直接拼接到SQL中或直接替换为?的形式。具体详情看下面代码。 import java.util.*; import java.util.regex.Matcher; import java.util.regex.Pattern;/*** author HuYu* date 2023-09-21* since 1.0**…

编码和解码

编码 编码的原理 编码是将信息(如文本、图像、音频等)转换成计算机可以处理和存储的二进制格式(0和1)的过程。不同的编码方案定义了不同的信息转换规则: 字符编码:用于将字符转换为数字。常见的有&#…

WPF 解决: DataGrid 已定义列,但是还是会显示模型的所有属性的问题

AutoGenerateColumns 属性 AutoGenerateColumns:这个属性决定 DataGrid 是否根据数据源中的属性自动生成列。如果设置为 true,DataGrid 会根据数据源中的属性自动生成列。如果设置为 false,则 DataGrid 不会自动生成列,开发者需要…

Mysql-查询

1.基本查询 //查询所有内容 select * from 表名;//查询指定字段 select 字段1,字段2,字段3.....from 表名;//查询时给字段起别名 select 字段1 as 别名1 , 字段2 as 别名2 ... from 表名;//去重查询 select distinct 字段列表 from 表名; …

假设我写了一段C++循环代码,我希望对这段代码做 profiling,计算出每次循环需要消耗的指令 cycle 数。我应该如何实现这种 profiling?

为了对你编写的C循环代码进行profile并计算每次循环消耗的指令周期数,可以采用以下步骤: 使用硬件性能计数器 使用 rdtsc 指令 rdtsc(读时间戳计数器)指令可以返回一个64位时间戳计数器的值,这个计数器从系统启动时开…

解决显存不足问题:深度学习中的 Batch Size 调整【模型训练】

解决显存不足问题:深度学习中的 Batch Size 调整 在深度学习训练中,显存不足是一个常见的问题,特别是在笔记本等显存有限的设备上。本文将解释什么是 Batch Size,为什么调整 Batch Size 可以缓解显存不足的问题,以及调…

杰发科技AC7840——SENT数据解析及软件Sent发送的实现

0. 测试环境 AC7840官方Demo板; 图莫斯0503 DSlogic U2Basic 使用引脚 输出脚:PB1 时钟:PB2,其他引脚可以不初始化,不接线 1. 数据解析 以下是SENT数据的格式(1tick以3us为例)&#…

watch和watchEffect的区别

废话不多说&#xff0c;先看两者代码&#xff1a; <template><div><h1>watchs</h1><div>{{ countRef }} - {{ name }} - {{ age }}</div></div> </template><script> import { ref, watch } from vue export default {…

数据库中的事务

一、理解事务 1、本质 事务由一组DML语句组成&#xff0c;这一组语句要么全部成功&#xff0c;要么全部失败。在逻辑上&#xff0c;事务就是一组sql语句&#xff0c;但在实际中&#xff0c;公共的数据库一定会高并发地接受各种事务的请求&#xff0c;所以一个事务要有4个属性…

WEB开发-HTTP认证

1 需求 2 接口 3 示例 HTTP Authentication&#xff08;HTTP认证&#xff09;是Web服务器用来验证客户端请求的一种机制。它通常用于保护需要用户凭据&#xff08;如用户名和密码&#xff09;才能访问的资源。HTTP认证有几种不同的分类或方法&#xff0c;以下是其中一些主要的分…