使用GraphRAG系统实现本地部署的Ollama模型问答系统

介绍

GraphRAG系统提供了一种强大的方式来使用文本数据并进行高效的问答和信息提取。在本文中,我们将基于GraphRAG系统的基本架构,结合本地部署的Ollama模型,演示如何从安装到索引和查询的完整流程。你可以通过这个教程学习如何使用本地的Ollama模型替代OpenAI或Azure的API,来构建自己的问答系统。

环境准备
1. 安装GraphRAG

首先需要安装GraphRAG库。请确保你已安装Python 3.10到3.12版本。

使用以下命令安装GraphRAG:

pip install graphrag
2. 准备数据

我们将使用小说《圣诞颂歌》(A Christmas Carol)作为示例数据。首先,创建一个目录用于存放数据:

mkdir -p ./ragtest/input

然后从古腾堡项目下载《圣诞颂歌》文本文件:

curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt
3. 配置环境变量

要运行GraphRAG索引器,需要设置环境变量。你可以根据需要通过.env文件或者直接在系统中配置。这里我们将通过初始化GraphRAG项目来自动生成这些配置文件。

首先,运行以下命令来初始化你的项目目录:

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

此命令将生成两个文件:

  • .env:包含环境变量(如API密钥等)。
  • settings.yaml:包含管道配置文件,你可以根据需要进行自定义。

我们将在后续步骤中修改这些文件以支持Ollama本地模型。

本地部署Ollama模型

GraphRAG默认使用OpenAI或Azure OpenAI作为语言模型的接口,但我们可以替换为本地部署的Ollama模型来处理嵌入(embeddings)和语言模型(LLM)任务。

1. 配置.env文件

.env文件中,删除或忽略与OpenAI相关的环境变量。你可以自行配置本地模型的API接口。

2. 修改settings.yaml

settings.yaml文件中,找到llm配置部分,将其修改为本地Ollama模型的设置。如下所示:

llm:
  type: openai_chat
  model: qwen2.5:72b
  api_base: http://localhost:11434/v1  # 本地Ollama模型的API地址
  model_supports_json: true

如果你使用的Ollama模型提供了嵌入功能(embeddings),可以在对应部分进行类似的配置:

embedding:
  llm:
    type: openai_embedding
    model: nomic-embed-text
    api_base: http://localhost:11434/api  # 本地Ollama模型的API地址

如果本地资源有限,调用超时,也可以使用线上API,如豆包:

llm:
  api_key: xxx-xxx-xxx-xxx
  type: openai_chat
  model: xxx-xxx-xxx #创建推理接入点
  api_base: https://ark.cn-beijing.volces.com/api/v3
  model_supports_json: true
embeddings:
  llm:
    api_key: xxx-xxx-xxx-xxx
    type: openai_embedding
    model: xxx-xxx-xxx #创建推理接入点
    api_base: https://ark.cn-beijing.volces.com/api/v3
运行索引器

在配置完成后,你可以运行以下命令来启动GraphRAG的索引器:

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

这将根据输入数据进行索引,具体耗时取决于数据集大小、使用的模型和文本块的大小。执行完成后,你将看到输出目录中生成了相关的Parquet文件。

使用查询引擎

索引完成后,可以开始使用GraphRAG的查询引擎来对数据进行问答。这里有两种查询方法:

1. 全局查询(Global Search)

全局查询适用于对整个文档进行高层次的提问。例如,我们可以这样提问:

python -m graphrag.query \
--root ./ragtest \
--method global \
"《圣诞颂歌》的主要主题是什么?"
2. 局部查询(Local Search)

局部查询更适合特定角色或片段的详细问题。以下是一个关于角色的提问示例:

python -m graphrag.query \
--root ./ragtest \
--method local \
"谁是Scrooge?他和哪些人有主要关系?"
结论

通过本地部署的Ollama模型,GraphRAG系统可以帮助你快速建立一个高效的文档问答系统,完全摆脱对外部API的依赖。这不仅在处理大规模数据时能提供更高的安全性和隐私保障,还可以大大降低使用成本。你可以根据需求灵活调整模型和配置,打造适合自己的问答解决方案。

更多详细的配置和查询方式,可以参考官方文档来深入了解GraphRAG的强大功能。

### GraphRAGOllama 本地部署指南 #### 准备工作环境 为了成功安装并运行 GraphRAGOllama,在开始之前需确认已准备好适当的工作站配置以及必要的软件依赖项。通常情况下,建议使用 Linux 或 macOS 系统作为开发平台[^1]。 #### 安装 Go 编程语言 由于大部分 Ollama 的源码采用 Go 实现,因此需要先下载并设置好最新版本的 Go SDK。可以通过官方文档获取详细的安装指导。 #### 获取项目仓库 通过 Git 命令克隆目标项目的 GitHub 仓库至本地机器上: ```bash git clone https://github.com/your-repo/graphrag.git cd graphrag ``` 对于 Ollama,则按照其发布的具体地址进行相应的操作。 #### 配置与编译 进入各自目录后执行构建命令来生成可执行文件。这里以 GraphRAG 为例展示通用流程: ```bash go build ./cmd/main.go ./main serve & ``` 针对 Ollama 可能会有所不同,请参照官方说明完成此阶段的任务。 #### 数据准备 根据应用需求收集训练数据集,并将其转换成兼容格式以便后续处理。如果涉及到模型微调的话,还需额外注意参数调整等问题。 #### 启动服务端口监听 确保所有组件均已正确加载完毕之后,即可开启 HTTP API 接口供客户端访问请求。此时应该能看到类似如下日志输出表示启动成功: ``` INFO[0000] Starting server on :8080... ``` 以上便是关于 GraphRAG 加上 Ollama 在个人电脑上的简易搭建过程概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值