一个更小、更快、更干净的 GraphRAG!! 原创

发布于 2024-8-20 08:51
浏览
0收藏

1、nano-GraphRAG 简介

nano-GraphRAG:一款简洁且易于定制的 GraphRAG 实现。

😭 GraphRAG 确实功能强大,但官方的实现版本阅读与修改起来颇为不易。 

😊 本项目为您呈现了一个更为精简、高效、清晰的 GraphRAG 版本,同时保留了其核心特性。 

🎁 nano-GraphRAG 的代码量大约只有 800行,除了测试和示例之外。 

👌 短小精悍,易于扩展,支持异步操作,且完全采用类型注解。

Github 地址:https://github.com/gusye1234/nano-graphrag

2、nano-GraphRAG 部署和使用

第一、安装

pip install nano-graphrag

第二、下载查尔斯·狄更斯的《圣诞颂歌》副本

curl https://raw.githubusercontent.com/gusye1234/nano-graphrag/main/tests/mock_data.txt > ./book.txt劳斯莱斯

第三、使用下面的 Python 代码片段

from nano_graphrag import GraphRAG, QueryParam
graph_func = GraphRAG(working_dir="./dickens")


with open("./book.txt") as f:
    graph_func.insert(f.read())


# Perform global graphrag search
print(graph_func.query("What are the top themes in this story?"))


# Perform local graphrag search (I think is better and more scalable one)
print(graph_func.query("What are the top themes in this story?", param=QueryParam(mode="local")))

下次你从相同的工作目录初始化GraphRAG时,它将自动重新加载所有上下文。

第四、增量更新

with open("./book.txt") as f:
    book = f.read()
    half_len = len(book) // 2
    graph_func.insert(book[:half_len])
    graph_func.insert(book[half_len:])

nano-GraphRAG 使用内容的 MD5 哈希作为键,因此不会有重复的区块。

然而,每次你进行插入操作时,图的社区将被重新计算,社区报告也将被重新生成。

3、和 GraphRAG 对比测试

对比一:Index 索引对比

相对都比较慢,都超过了 10 分钟。

对比二:Local Search 对比

1、大乔和曹操的关系

  • GraphRAG 的回复

大乔与曹操的关系在历史和文学中显得复杂,尽管他们互动不多。
大乔以孙策之妻和美貌著称,吸引了曹操的关注。曹操对大乔的兴趣更多是象征性的,而非真实情感。
作为孙家一员,大乔与曹操间存在间接敌对。她的地位和时代背景,使她与曹操的关系具有历史和文化意义,
反映了三国时期女性与政治的联系。总体来说,这种关系更多是文学和历史构建,而非实际互动。
  • nano-GraphRAG 的回复

# 大乔与曹操的关系概览
## 大乔简介
大乔,江东乔公之女,以绝色闻名,作为孙策之妻在三国政治中占有一席之地。周瑜提及她,突显其在曹周关系中的战略意义 [Data: Entities (1)]。
## 曹操的野心
曹操欲得大乔,出于个人欲望和政治考量,梦想将二乔置于铜雀台。他的这一愿望反映了对美色的追求和政治地位的提升 [Data: Relationships (6, 7)]。
## 政治谋略
诸葛亮曾提议用美人计,送大乔姐妹给曹操,以减轻东吴压力,显示大乔在政治谋略中的关键角色 [Data: Sources (0); Relationships (12)]。
## 曹操的行动
曹操对大乔有兴趣,但实际行动有限。周瑜反对曹操的意图,并与诸葛亮策划保护大乔姐妹 [Data: Sources (2)]。
## 总结
曹操与大乔无直接互动,但她的美貌和身份使其成为政治争夺焦点。曹操的欲望和三国时期的权谋策略,体现了大乔在政治和战略中的重要性 [Data: Relationships (6, 12, 13); Sources (0, 2)].

对比三:Global Search 对比

1、大乔和曹操的关系

  • GraphRAG 的回复​​

### 大乔与曹操的关系
大乔,乔公之女,以美貌著称,成为曹操垂涎的对象[Data: Reports (41)]。
#### 曹操的野心
曹操欲将大乔安置于铜雀台,展示其权力与欲望[Data: Reports (269)]。
#### 乔公与曹操
乔公既是大乔之父,也是曹操之友,这关系复杂化了曹操对大乔的追求[Data: Reports (41)]。
### 结论
大乔与曹操的关系主要围绕曹操的欲望和其计划,以及乔公与曹操的友谊所引发的潜在冲突[Data: Reports (41, 269)]。
  • nano-GraphRAG 的回复

## 曹操与大乔的关系
曹操对大乔的兴趣不仅在于她的美貌,更在于其战略价值。在三国时期,美貌与政治权力紧密相连。曹操视大乔为政治野心的助力,权力的象征 [Data: Reports (6)]。
作为孙策之妻,大乔的地位和魅力使她成为权力争夺的焦点。曹操的企图不止于个人喜好,而是希望通过控制大乔来削弱对手,增强自己的政治影响力 [Data: Reports (6)]。
因此,曹操与大乔的关系实质上是政治策略和权力游戏的缩影,展现了曹操在权力斗


本文转载自公众号玄姐聊AGI  作者:玄姐

原文链接:​​https://mp.weixin.qq.com/s/9GdjLLVZvKhyUv84qh0M0Q​



©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
标签
已于2024-8-20 08:52:49修改
收藏
回复
举报
回复
相关推荐