ingFang SC", system-ui, -apple-system, "system-ui", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;letter-spacing: 0.544px;background-color: rgb(255, 255, 255);visibility: visible;margin-bottom: 0px;">我经常在网上看到关于GraphRAG的帖子,但直到大约一个月前,我才决定尝试一下。在花了一些时间进行实验后,我可以说它的表现令人印象深刻,但如果你使用的是OpenAI API,成本也相当高。在文档中运行他们提供的示例书籍测试花费了我大约7美元,所以虽然它的性能和组织能力非常出色,但它并不算经济实惠。ingFang SC";font-size: 14px;line-height: 1.75;letter-spacing: 0.1em;color: rgb(63, 63, 63);margin-left: 16px;margin-right: 16px;">如果你是RAG系统的新手,ingFang SC";font-size: 14px;line-height: 1.75;margin: 1.5em 16px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">无论如何,这里是传统RAG系统的工作原理概述:对于已经熟悉RAG的人来说,你可能遇到过和我一样的头疼问题:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 20px;font-weight: bold;display: table;margin: 4em auto 2em;padding-right: 0.2em;padding-left: 0.2em;background: rgb(1, 155, 252);color: rgb(255, 255, 255);">GraphRAG的工作原理ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;margin: 1.5em 8px;color: rgb(63, 63, 63);"> ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;border-radius: 4px;display: block;margin: 0.1em auto 0.5em;" title="null"/>ingFang SC";font-size: 14px;line-height: 1.75;margin: 1.5em 16px;letter-spacing: 0.1em;color: rgb(63, 63, 63);">GraphRAG是传统RAG的增强版本,主要分为两个阶段:ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 20px;font-weight: bold;display: table;margin: 4em auto 2em;padding-right: 0.2em;padding-left: 0.2em;background: rgb(1, 155, 252);color: rgb(255, 255, 255);">索引阶段 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;padding-left: 1em;color: rgb(63, 63, 63);" class="list-paddingleft-1">1.实体提取:识别出诸如人物、地点、公司等实体 2.关系提取:发现跨不同文本块的实体之间的联系 ingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 20px;font-weight: bold;display: table;margin: 4em auto 2em;padding-right: 0.2em;padding-left: 0.2em;background: rgb(1, 155, 252);color: rgb(255, 255, 255);">查询阶段GraphRAG的核心创新在于它将信息结构化为图形格式,并利用社区检测来生成更具上下文意识的响应。然而,传统RAG系统仍然有其用武之地,特别是在考虑运行GraphRAG的计算成本时。 设置GraphRAG⚠️ 提醒:这个实验运行在GPT-4 API上,成本较高。我的一次测试成本约为7美元(基于GPT-4模型)。
如果你更喜欢在本地LLM上使用ollama进行测试,请查看这个视频: 接下来让我们一步步完成设置过程: 环境设置首先,创建一个虚拟环境: condacreate-nGraphRAG condaactivateGraphRAG
安装GraphRAG包: pipinstallgraphrag 目录结构GraphRAG需要特定的目录结构以实现最佳运行效果: - 创建一个工作目录 - 在其中创建_ragtest/input_文件夹结构 - 将源文档放入input文件夹中 在本文中,我们将使用提供的书籍作为示例。通过以下命令下载到input文件夹中: curlhttps://www.gutenberg.org/cache/epub/24022/pg24022.txt>./ragtest/input/book.txt 配置使用以下命令初始化工作区: python-mgraphrag.index--init--root./target 此操作会创建必要的配置文件,包括settings.yml,你需要在其中: - 设置你的OpenAI API密钥 - 配置模型设置(默认使用GPT-4进行处理和OpenAI嵌入) - 根据需要调整文本块大小(默认:300个token)和重叠部分(默认:100个token) 构建知识图谱运行索引过程: python-mgraphrag.index--init--root./target 查询你的图谱GraphRAG提供了两种主要的查询方式: 全局查询 python-mgraphrag.query--root./target--methodglobal"whatarethetopthemesinthisstory" 适用于关于主题和整体内容理解的广泛问题。 局部查询 python-mgraphrag.query--root./target--methodlocal"whatarethetopthemesinthisstory" 适用于关于文档内实体或关系的具体问题。 成本因素:值得吗?让我们谈谈数字。在我用示例书籍进行测试时,GraphRAG调用了: •~570次GPT-4 API请求 •大约25次嵌入请求 •处理了超过100万个token
总成本:每本书大约7美元。
|