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

玩转大语言模型——使用graphRAG+Ollama构建知识图谱

系列文章目录

玩转大语言模型——ollama导入huggingface下载的模型
玩转大语言模型——langchain调用ollama视觉多模态语言模型


文章目录

  • 系列文章目录
  • 前言
  • 下载和安装
    • 用下载项目的方式下载并安装
    • 用pip方式下载并安装
  • 生成知识图谱
    • 初始化文件夹
    • 修改模型配置
    • 修改知识库生成配置
    • 创建索引
  • 搜索


前言

GraphRAG是微软开发并开源的一种图基检索增强生成(Graph-based Retrieval Augmented Generation)框架。GraphRAG结合了知识图谱(Knowledge Graph)和大型语言模型(LLM)的技术优势,旨在提升信息处理和问答能力。其基本原理在于,通过知识图谱从非结构化文本中提取结构化信息,并利用大型语言模型的生成能力,为用户提供准确、全面的回答。在本篇中将介绍如何使用GraphRAG结合大模型构建知识图谱。

下载和安装

下载过程分为两种,一种是下载项目,另外一种是直接使用pip下载,两种用法最后的效果是一致的,如果不需要修改源码,可以选择pip方式下载,这样比较方便。但在本篇中,两种都会提到,读者可以根据自己喜好选择。


用下载项目的方式下载并安装

下载
项目地址:https://github.com/microsoft/graphrag
在这里插入图片描述
为了方便大家下载,这里把git下载方式直接放到这里,直接执行就好。
安装

git clone https://github.com/microsoft/graphrag.git   

切换到graphrag的下载目录,配置好虚拟环境之后,在命令行执行以下命令安装poetry资源包管理工具及相关依赖.

pip install poetry 
poetry install

用pip方式下载并安装

没错,用pip方式下载只需要执行一个命令行就可以了

pip install graphrag

生成知识图谱

初始化文件夹

首先在项目文件夹下新建一个文件夹,笔者新建的文件夹为./ragtest,如果是用项目方式下载,直接在项目下新建,如果是使用pip方式下载的,新建一个项目在新建的项目里新建文件夹。
再在./ragtest文件夹下新建一个input文件夹,将要生成知识图谱的文件放到input文件夹中。注意只能是txt文件,编码格式必须为 utf-8。

然后在命令行执行以下命令

graphrag init --root ./ragtest

执行命令后会生成配置文件settings.yaml和提示词模板prompts


修改模型配置

在修改之前我们首先需要下载相关模型,在本篇中使用的是Ollama
使用Ollama下载语言模型mistral和编码模型nomic-embed-text

ollama pull mistral
ollama pull nomic-embed-text

下载完可以使用ollama list查看一下有没有下载成功

不过当前的模型并不能直接拿来使用,我们需要修改一下,不如可能会出现一些奇怪的错误,笔者遇到的问题是在生成entities时识别不到entity。

ollama show --modelfile mistral:latest > Modelfile

打开Modelfile文件,在PARAMETER后面这里添加配置。

PARAMETER num_ctx 10000

然后使用ollama根据配置创建新的模型

ollama create mistral:10k -f Modelfile

修改知识库生成配置

因为我们构建知识库的过程中需要使用到大语言模型和embedding模型,所有需要将设置修改为我们所使用的模型。
打开初始化文件目录,笔者的目录是./ragtest/settings.yaml,修改以下两部分,将llm.model修改为mistral:10k,将llm.api_base修改为http://localhost:11434/v1,将embeddings.llm.model修改为nomic-embed-text,将embeddings.api_base修改为http://localhost:11434/v1

llm:api_key: ${GRAPHRAG_API_KEY}type: openai_chat # or azure_openai_chatmodel: mistral:10kmodel_supports_json: false # recommended if this is available for your model.# max_tokens: 4000# request_timeout: 180.0api_base: http://localhost:11434/v1embeddings:## parallelization: override the global parallelization settings for embeddingsasync_mode: threaded # or asynciollm:api_key: ${GRAPHRAG_API_KEY}type: openai_embedding # or azure_openai_embeddingmodel: nomic-embed-textapi_base:  http://localhost:11434/v1

创建索引

构建索引的过程就是构建知识图谱的过程,同样的,读者需要将笔者的路径替换为自己的路径。

graphrag index --root ./ragtest

如果运行显示如下说明创建成功
在这里插入图片描述

搜索

查询分为局部搜索(Local Search)和全局搜索(Global Search)。当用户的问题需要理解输入文档中提到的特定实体,需要详细了解某个实体及其相关信息时,局部搜索非常有效。而全局搜索在跨数据集进行信息总结上要优于局部搜索。
局部搜索

graphrag query --root ./ragtest --method local --query "要查询的问题"

全局搜索

graphrag query --root ./ragtest --method global --query "主要内容是什么"

相关文章:

玩转大语言模型——使用graphRAG+Ollama构建知识图谱

系列文章目录 玩转大语言模型——ollama导入huggingface下载的模型 玩转大语言模型——langchain调用ollama视觉多模态语言模型 文章目录 系列文章目录前言下载和安装用下载项目的方式下载并安装用pip方式下载并安装 生成知识图谱初始化文件夹修改模型配置修改知识库生成配置创…...

python flask简单实践

项目结构 project/ │ ├── app.py ├── instance/ │ └── database.db ├── templates/ │ └── index.html ├── static/ │ └── style.css │ └── favicon.ico └── database.db首先创建目录,static 存放一些页面的样式或图标文件…...

JAVA实现五子棋小游戏(附源码)

文章目录 一、设计来源捡金币闯关小游戏讲解1.1 主界面1.2 黑棋胜利界面1.3 白棋胜利界面 二、效果和源码2.1 动态效果2.2 源代码 源码下载更多优质源码分享 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_43151418/article/details/145161039 JA…...

kotlin的dagger hilt依赖注入

依赖注入(dependency injection, di)是设计模式的一种,它的实际作用是给对象赋予实例变量。 基础认识 class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceSta…...

速通Docker === 常用命令

目录 Docker命令 镜像操作 容器操作 基础操作 启动参数 容器内部操作 打包成指定文件 发布镜像 总结 镜像操作 容器操作 启动容器参数 容器内部操作 打包镜像 启动指定镜像的容器 发布镜像 Docker命令 启动一个nginx,并将它的首页改为自己的页面,发布…...

【redis】键的全局命令

Redis提供了一系列用于管理和操作键的全局命令。这些命令允许你查看、删除、迁移键,以及执行其他与键相关的操作。 有关全局通用类型的命令可以通过help generic命令来查看。有关命令的使用可以通过help 命令来查看,例如help keys。 KEYS keys&#x…...

深度学习-卷积神经网络实战文档注释

1、call 方法 是一个特殊的方法,它允许类的实例表现得像函数一样。也就是说,你可以使用圆括号 () 来调用一个实例,就像调用普通函数一样。 当你调用 model(input_data) 时,实际上是调用了模型的 __ call __ 方法,其会自…...

GR2103高压半桥栅极驱动芯片

产品简介 GR2103封装和丝印 GR2103是一款高性价比的高压半桥栅极驱动专用芯片,设计用于高压、高速驱动N型大功率 MOS管、IGBT管。内置欠压(UVLO)保护功能,防止功率管在过低的电压下工作,提高效率。内置防止直通功能…...

学习threejs,使用OrbitControls相机控制器

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.OrbitControls 相机控…...

说说Babylon.js中scene.deltaTime的大坑

诡异的问题 下面是给一个材质设置发光颜色周期变化和纹理偏移的代码,你能感觉到这里面可能出现的问题吗? var passTime 0;var uOffset 0;var deltaTime 0;function SetEmissiveColor() {passTime scene.deltaTime * 0.05;if(passTime > 6.2…...

【React】win系统环境搭建

动图更精彩 方案如下 在Visual Studio Code(VSCode)中搭建React开发环境是一个相对简单但非常重要的步骤,可以帮助你更高效地进行前端开发。以下是详细的步骤和配置指南: 一、准备工作 安装Visual Studio Code (VSCode)&#x…...

ThinkPHP 8的一对一关联

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《2025新书 ThinkPHP 8高效构建Web应用 编程与应用开发丛书 夏磊 清华大学出版社教材书籍 9787302678236 ThinkPHP 8高效构建Web应用》【摘要 书评 试读】- 京东图书 使用VS Code开发ThinkPHP项目-CSDN博客 编程与应用开…...

Linux 下配置 Golang 环境

go sdk 下载环境:https://golang.google.cn/dl/选择对应的版本: 使用 wget 直接拉包下载到服务器中 wget https://golang.google.cn/dl/go1.23.4.linux-amd64.tar.gz如果找不到 wget 命令,yum 下载 wget yum -y install wget配置 go 的环境…...

爬虫后的数据处理与使用(使用篇--实现分类预测)

()紧接上文,在完成基本的数据处理后,接下来就是正常的使用了。当然怎么用,确实需要好好思考一下~ 上文:爬虫后的数据处理与使用(处理篇) 前言: 一般来说,我…...

arcgis提取不规则栅格数据的矢量边界

效果 1、准备数据 栅格数据:dem或者dsm 2、栅格重分类 分成两类即可 3、新建线面图层 在目录下选择预先准备好的文件夹,点击右键,选择“新建”→“Shapefile”,新建一个Shapefile文件。 在弹出的“新建Shapefile”对话框内“名称”命名为“折线”,“要素类型”选…...

python milvus 如何检查有多少个collection 以及多少个index,多少个database

在 Milvus 中,可以通过 Python 客户端(`pymilvus`)来检查当前有多少个集合(Collection)、索引(Index)和数据库(Database)。以下是具体的方法: --- ### 1. 检查有多少个集合(Collection) 使用 `list_collections()` 方法可以列出当前连接的所有集合。 ```python…...

2006-2020年各省工业增加值数据

2006-2020年各省工业增加值数据 1、时间:2006-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、工业增加值 4、范围:31省 5、指标解释:工业增加值是指工业企业在一定时期内以货币形式…...

【MySQL】使用C语言链接

🌈 个人主页:Zfox_ 🔥 系列专栏:MySQL 目录 一:🔥 MySQL connect 🦋 Connector / C 使用🦋 mysql 接口介绍🦋 完整代码样例 二:🔥 共勉 一&#…...

Vue篇-07

Vue UI组件库 一、移动端常用的UI组件库 1.1、Vant 1.2、Cube UI 1.3、Mint UI 二、PC端常用的UI组件库 2.1、Element UI Element - The worlds most popular Vue UI framework 安装: 按需引入: 135_尚硅谷Vue技术_element-ui按需引入_哔哩哔哩_b…...

使用 LLaMA-Factory 微调大模型

本文将介绍如下内容: 一、搭建 Docker Container 环境二、配置大模型训练环境三、构建、配置数据集四、训练大模型 一、搭建 Docker Container 环境 笔者此前多篇文章说明,此处不再赘述,可参考:NGC容器中快速搭建Jupyter环境 E…...

Sentinel-3B OLCI 3 级全球分箱地球观测降分辨率(ERR)叶绿素(CHL)数据,版本 2022.0

Sentinel-3B OLCI Level-3 Global Binned Earth-observation Reduced Resolution (ERR) Chlorophyll (CHL) Data, version 2022.0 简介 叶绿素 a 数据集提供全球网格化的表层叶绿素 a 浓度(浮游植物生物量的替代指标)合成数据。CHL 支持时间序列和气候…...

【2026最新】应对Turnitin查重:实测5大英文查降AI宝藏工具,一站式搞定初稿

现在的英文初稿,无论是期刊文章、SCI 还是普通的 Course Essay,基本都需要评估内容的原创度,进行文章 AI 率检测。很多伙伴以为纯手敲就能过,结果一查数据依然不尽如人意。 针对英文内容,咱们必须使用专门的英文检测和…...

Vulnhub-DC-1

1.信息收集 使用工具nmap扫描主机端口 这是Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成 Web指纹扫描 发现是:drupal…...

PentestGPT实战部署指南:AI驱动的渗透测试工作流落地

1. 这不是另一个“AI安全”的概念玩具,而是一套能真正跑起来的渗透测试辅助工作流“PentestGPT”这个名字刚在GitHub上出现时,我第一反应是点开又关掉——过去三年里,我见过太多打着“AI渗透”旗号的项目:有的只是把ChatGPT API封…...

毕业设计 yolov11骨折检测医疗辅助系统(源码+论文)

文章目录 0 前言1 项目运行效果2 课题背景2.1 研究背景2.2 国内外研究现状2.3 研究意义 3 设计框架(骨折检测系统设计框架说明)3.1. 系统架构图3.2. 技术选型3.2.1 核心组件3.2.2 辅助工具 3.3. 核心模块设计3.3.1 YOLO模型训练模块训练流程图关键伪代码…...

广州因特智能:AI视觉软硬结合,打破半导体检测装备“卡脖子”困境

【导语:广州因特智能科技孵化于西安电子科技大学广州研究院,专注用AI视觉技术解决工业场景的“卡脖子”检测难题,为半导体、光通信、新能源三大领域提供高端检测装备。】校地合作孵化,构建完整能力体系广州因特智能科技由西安电子…...

基于MAX78000的医疗紧急呼叫系统:边缘AI与低功耗设计实战

1. 项目概述与核心价值大家好,我是Victor Hugo,一名电子工程师。今天我想和大家分享一个我最近完成并参与设计竞赛的项目:一个基于MAX78000 FTHR开发板的医疗紧急呼叫辅助系统。这个项目的核心,不是从零开始造一个新轮子&#xff…...

NBTExplorer:让Minecraft数据编辑从专业工具变成人人可用的可视化平台

NBTExplorer:让Minecraft数据编辑从专业工具变成人人可用的可视化平台 【免费下载链接】NBTExplorer A graphical NBT editor for all Minecraft NBT data sources 项目地址: https://gitcode.com/gh_mirrors/nb/NBTExplorer 你是否曾经面对Minecraft世界文件…...

招行+工行:ReAct(Reasoning + Acting) 讲清楚,并结合 金融场景(含自进化智能体) 给出可直接用的案例

下面我把 ReAct(Reasoning Acting) 讲清楚,并结合 ** 金融场景(含自进化智能体)** 给出可直接用的案例与话术,适合分享 / 汇报。一、ReAct 是什么(一句话)ReAct 推理(T…...

基于LSTM自编码器的家用电器功耗异常检测系统构建指南

1. 项目概述:从能耗洞察到智能干预我们每天都在和各种家用电器打交道,从清晨唤醒你的咖啡机,到深夜还在默默工作的路由器。你有没有想过,这些看似微不足道的设备,其背后隐藏的能耗模式,其实大有文章&#x…...