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

系列文章目录

玩转大语言模型——ollama导入huggingface下载的模型
玩转大语言模型——langchain调用ollama视觉多模态语言模型
玩转大语言模型——使用graphRAG+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_chat
  model: mistral:10k
  model_supports_json: false # recommended if this is available for your model.
  # max_tokens: 4000
  # request_timeout: 180.0
  api_base: http://localhost:11434/v1


embeddings:
  ## parallelization: override the global parallelization settings for embeddings
  async_mode: threaded # or asyncio
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding # or azure_openai_embedding
    model: nomic-embed-text
    api_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 "主要内容是什么"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/955914.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

微透镜阵列精准全检,白光干涉3D自动量测方案提效70%

广泛应用的微透镜阵列 微透镜是一种常见的微光学元件,通过设计微透镜,可对入射光进行扩散、光束整形、光线均分、光学聚焦、集成成像等调制,进而实现许多传统光学元器件难以实现的特殊功能。 微透镜阵列(Microlens Array&#x…

新星杯-ESP32智能硬件开发--ESP32系统

本博文内容导读📕🎉🔥 1、ESP32芯片和系统架构进行描述,给出ESP32系统的地址映射规则。 2、介绍ESP32复位及时钟定时具体功能,方便后续开发。 3、介绍基于ESP32开发板使用的底层操作系统,对ESP32应用程序开…

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)图像变换

形态变换 图像处理中的形态学操作是处理图像结构的有效方法。以下是一些常见的形态学操作的介绍及其在 OpenCV 中的实现示例。 1. 腐蚀(Erosion) 腐蚀操作通过消除图像边界来减少图像中的白色区域(前景),使物体的边…

Linux 音视频入门到实战专栏(视频篇)视频编解码 MPP

文章目录 一、MPP 介绍二、获取和编译RKMPP库三、视频解码四、视频编码 沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍如何调用alsa api来进行音频数据的播放和录制。 一、MPP 介绍 瑞芯微提供的媒体处理软件平台…

阿里云通义实验室自然语言处理方向负责人黄非:通义灵码2.0,迈入 Agentic AI

通义灵码是基于阿里巴巴通义大模型研发的AI 智能编码助手,在通义灵码 1.0 时代,我们针对代码的生成、补全和问答,通过高效果、低时延,研发出了国内最受欢迎的编码助手。 在通义灵码 2.0 发布会上,阿里云通义实验室自然…

Linux网络_套接字_UDP网络_TCP网络

一.UDP网络 1.socket()创建套接字 #include<sys/socket.h> int socket(int domain, int type, int protocol);domain (地址族): AF_INET网络 AF_UNIX本地 AF_INET&#xff1a;IPv4 地址族&#xff0c;适用于 IPv4 协议。用于网络通信AF_INET6&#xff1a;IPv6 地址族&a…

endnote x9 如何将参考文献和文中的应用格式由annotated变为编码,例[1],[2]

在 EndNote X9 中&#xff0c;将参考文献和文中引用格式更改为编码形式&#xff08;如 [1], [2]&#xff09;需要以下步骤&#xff1a; 1. 选择合适的输出样式 打开 EndNote X9。点击菜单栏的 "Edit" > "Output Styles" > "Open Style Manage…

用户中心项目教程(二)---umi3的使用出现的错误

目录 1.情况的说明 2.遇到的问题 1&#xff09;第一个问题-关于npx的使用 2&#xff09;第二个问题--unsupport问题 3&#xff09;第三个收获--nodejs安装问题 4&#xff09;第四个收获---nvm下载问题 5&#xff09;第五个问题--尚未解决的问题 3.个人总结 1.情况的说明…

【面试宝典】Java中创建线程池的几种方式以及区别

强烈推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站:人工智能 创建线程池有多种方式&#xff0c;主要通过 Java 的 java.util.concurrent 包提供的 Executors 工具类来实现。以下是几…

Net Core微服务入门全纪录(三)——Consul-服务注册与发现(下)

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

通过视觉语言模型蒸馏进行 3D 形状零件分割

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01;对应英文要求比较高&#xff0c;特此说明&#xff01; Abstract This paper proposes a cross-modal distillation framework, PartDistill, which transfers 2D knowledge from vision-language models …

强推未发表!3D图!Transformer-LSTM+NSGAII工艺参数优化、工程设计优化!

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Transformer-LSTMNSGAII多目标优化算法&#xff0c;工艺参数优化、工程设计优化&#xff01;&#xff08;Matlab完整源码和数据&#xff09; Transformer-LSTM模型的架构&#xff1a;输入层&#xff1a;多个变量作…

如何通过 Apache Airflow 将数据导入 Elasticsearch

作者&#xff1a;来自 Elastic Andre Luiz 了解如何通过 Apache Airflow 将数据导入 Elasticsearch。 Apache Airflow Apache Airflow 是一个旨在创建、安排&#xff08;schedule&#xff09;和监控工作流的平台。它用于编排 ETL&#xff08;Extract-Transform-Load&#xff0…

电脑风扇声音大怎么办? 原因及解决方法

电脑风扇是电脑的重要组件之一&#xff0c;它的作用是为电脑的各个部件提供冷却&#xff0c;防止电脑过热。然而&#xff0c;有时候我们会发现电脑风扇的声音特别大&#xff0c;不仅影响我们的使用体验&#xff0c;也可能是电脑出现了一些问题。那么&#xff0c;电脑风扇声音大…

Oracle报错ORA-01078、LRM-00109

虚拟机异常关机后&#xff0c;rac数据库备机无法启动数据库&#xff0c;报错如下 解决方法&#xff1a; 找到如下路径文件 执行&#xff1a; cp init.ora.016202516818 /u01/app/oracle/product/19.3.0/db/dbs/ mv init.ora.016202516818 initplm2.ora 再次进入命令行sqlpl…

.Net Core微服务入门系列(一)——项目搭建

系列文章目录 1、.Net Core微服务入门系列&#xff08;一&#xff09;——项目搭建 2、.Net Core微服务入门全纪录&#xff08;二&#xff09;——Consul-服务注册与发现&#xff08;上&#xff09; 3、.Net Core微服务入门全纪录&#xff08;三&#xff09;——Consul-服务注…

Ability Kit-程序框架服务(类似Android Activity)

文章目录 Ability Kit&#xff08;程序框架服务&#xff09;简介Stage模型开发概述Stage模型应用组件应用/组件级配置UIAbility组件概述概述声明配置 生命周期概述生命周期状态说明Create状态WindowStageCreate**和**WindowStageDestroy状态WindowStageWillDestroy状态Foregrou…

Harmony OS 5.0.1 模拟器报未开启 Hyper-V解决方法

程序员Feri一名12年的程序员,做过开发带过团队创过业,擅长Java、嵌入式、鸿蒙、人工智能等,专注于程序员成长那点儿事,希望在成长的路上有你相伴&#xff01;君志所向,一往无前&#xff01; 今天在写Harmony NEXT版本的元服务的时候&#xff0c;突然模拟器无法启动了&#xff0…

WPS数据分析000004

目录 一、表格阅读技巧 冻结窗格 拆分窗口 新建窗口 阅读模式 护眼模式 二、表格打印技巧 打印预览 打印缩放 打印区域 打印标题 分页打印 打印位置 页眉页脚 逐份打印 三、表格保护技巧 锁定单元格 隐藏公式 文档权限 文件加密 一、表格阅读技巧 冻结窗…

LabVIEW桥接传感器数据采集与校准程序

该程序设计用于采集来自桥接传感器的数据&#xff0c;执行必要的设置&#xff08;如桥接配置、信号采集参数、时间与触发设置&#xff09;&#xff0c;并进行适当的标定和偏移校正&#xff0c;最终通过图表呈现采集到的数据信息。程序包括多个模块&#xff0c;用于配置通道、触…