首页 > 其他分享 >本地化部署GraphRAG+Ollama,实现基于知识图谱的智能问答

本地化部署GraphRAG+Ollama,实现基于知识图谱的智能问答

时间:2024-08-09 18:05:44浏览次数:13  
标签:Ollama GraphRAG graphrag 本地化 ragtest graphml 图谱 ollama

citing from https://medium.com/@vamshirvk/unlocking-cost-effective-local-model-inference-with-graphrag-and-ollama-d9812cc60466

之前写过一篇使用deepseek和智谱AI实现《红楼梦》中人物关系智能问答的随笔
但deepseek提供的免费tokens只有500万个,GraphRAG构建图谱的索引和问答过程,对token的消耗是巨量的
因此亟需找到一种本地化部署的方案,不用依赖在线大模型的api形式。

看到国外博客上有人公布了GraphRAG+Ollama的本地化部署方案,按照博客内容进行了复现,这里做一个详细记录。

本地化部署方案的优点:

  • 本地大模型构建图谱和问答,可以利用Ollama随时拉取最新大模型,并进行切换;
  • 无需消耗token,极大降低了成本;
  • 启动简单,可以实现快速部署和实验。

本地部署步骤:

  1. 在本地新建conda环境,可以确保所有新建的依赖环境是独立的
conda create -n graphrag-ollama-local python=3.10
conda activate graphrag-ollama-local
  1. 安装Ollama,支持pip install形式安装
    也可以访问官网查看更多安装细节https://ollama.com/
pip install ollama
  1. 使用Ollama拉取大模型,实现GraphRAG的索引和向量化流程
ollama pull mistral #llm
ollama pull nomic-embed-text #embedding
  1. 从github拉取GraphRAG+Ollama项目
git clone https://github.com/TheAiSingularity/graphrag-local-ollama.git
  1. 进去上述项目中
cd graphrag-local-ollma/
  1. 安装GraphRAG包
pip install -e .
  1. 类似GraphRAG方案中,需要新建input地址来存放外部文档
mkdir -p ./ragtest/input
  1. 在GraphRAG-local-ollama项目中,提供了部分样例文档,这部分英文文档可以进行初始化测试(跑成功)
cp input/* ./ragtest/input
  1. 初始化ragtest,生成settings.yaml文件
python -m graphrag.index --init --root ./ragtest
  1. 将本项目中的settings.yaml文件直接复制到安装好的graphrag包中,项目样例配置文件,已经将llm和embedding对应的大模型,分别配置为mistral和nomic-embed-text
mv settings.yaml ./ragtest
  1. 配置完成后,可以开始GraphRAG的索引流程
python -m graphrag.index --root ./ragtest
  1. 上述索引过程大概耗时30分钟,索引构建完成,就可以看到样例文档的图谱文件,此时可以进行文档的智能问答
python -m graphrag.query --root ./ragtest --method global "What is machine learning?"
  1. 除了智能问答以为,我们还想看看样例文档的图谱构建结果如何,也就是图谱长什么样子,可以借助如下命令进行

修改配置文件settings.yaml中的参数

snapshots:
  graphml: true
  1. 此时构建索引过程中,样例文档的图谱文件会自动生成一份graphml文件,可以通过python中的graphml包对这个文件机型读取

graphml文件的保存路径为output/20240708-161630/artifacts/summarized_graph.graphml

可以使用项目中visualize-graphml.py文件对graphml进行可视化,可以看到样例文档的图谱形状,包括各个实体及关系。

python visualize-graphml.py

标签:Ollama,GraphRAG,graphrag,本地化,ragtest,graphml,图谱,ollama
From: https://www.cnblogs.com/egalistmir/p/18347600

相关文章

  • ollama安装和运行llama3.1 8b
    ollama安装和运行llama3.18bcondacreate-nollamapython=3.11-ycondaactivateollamacurl-fsSLhttps://ollama.com/install.sh|shollamarunsongfy/llama3.1:8b就这么简单就能运行起来了.我们可以在命令行中与他交互.当然我们也可以用接口访问:curlhttp:/......
  • 基于SiliconCloud快速体验GraphRag.Net
    SiliconCloud介绍SiliconCloud基于优秀的开源基础模型,提供高性价比的GenAI服务。不同于多数大模型云服务平台只提供自家大模型API,SiliconCloud上架了包括Qwen、DeepSeek、GLM、Yi、Mistral、LLaMA3、SDXL、InstantID在内的多种开源大语言模型及图片生成模型,用户可自由切......
  • Ollama 与 RAG 一起用于本地使用以与 pdf 聊天
    我正在尝试通过使用RAG在本地计算机上与pdf聊天来构建ollama用法。我遵循了这个GitHub存储库:https://github.com/tonykipkemboi/ollama_pdf_rag/tree/main问题是当我运行代码时,没有错误,但代码将在嵌入时停止并会之后停止。我已附上所有可能的日志以及ollama......
  • 再探GraphRAG:如何提升LLM总结能力?
    作者:王振亚编者语:自微软发布GraphRAG之后,相关解读文层出不穷,其中不乏优秀的内容。比如前段时间转载薛明同学的《微软GraphRAG框架源码解读》让大家对GraphRAG的开源代码有了快速的认识。这次我们分享一下来自蚂蚁技术同学王振亚的对GraphRAG如何提升LLM总结能力的思考,作者对Gr......
  • GRAPHRAG API调用
    安装先决条件确保已安装Python3.8+。通过pip安装使用pip安装GraphRag-API:pipinstallgraphrag_api从源码安装克隆源码库:gitclonehttps://github.com/nightzjp/graphrag_api进入项目目录并安装依赖:cdgraphrag_apipipinstall-rrequirements.txt使......
  • VannaAI(带有 Ollama 和 ChromaDB)示例程序在训练模型步骤失败
    我开始测试VannaAI,并且我正在运行一个基于使用Ollama、ChromaDB为Postgres生成SQL的示例程序:fromvanna.ollamaimportOllamafromvanna.chromadbimportChromaDB_VectorStoreclassMyVanna(ChromaDB_VectorStore,Ollama):def__init__(self,confi......
  • Langchain、Ollama 和 Llama 3 提示和响应
    目前,我正在返回多个响应,或者模型不知道何时结束响应,并且似乎在响应中重复系统提示(?)。我只想得到一个回复​​。我的设置非常简单,所以我想我缺少实现细节,但是我该怎么做才能只返回单个响应?fromlangchain_community.llmsimportOllamallm=Ollama(model="llama3")defget_m......
  • 解锁GraphRag.Net的无限可能:手把手教你集成国产模型和本地模型
        在上次的文章中,我们已经详细介绍了GraphRag的基本功能和使用方式。如果你还不熟悉,建议先阅读前面的文章    通过前两篇文章,相信你已经了解到GraphRag.Net目前只支持OpenAI规范的接口,但许多小伙伴在社区中提议,希望能增加对本地模型(例如:ollama等)的支持。所以这......
  • wsl docker里运行ollama并使用nvidia gpu的一些记录
     1、安装wsl2具体过程网上一搜一把,这里就先略过了,只有wsl2能用哈2、wsl里装docker,及相关配置装dockerwget https://download.docker.com/linux/static/stable/aarch64/docker-23.0.6.tgzcd/mydata/tmp/tar -zxvf docker-23.0.6.tgzmvdocker/*/usr/bin/mvdock......
  • SemanticKernel/C#:使用Ollama中的对话模型与嵌入模型用于本地离线场景
    前言上一篇文章介绍了使用SemanticKernel/C#的RAG简易实践,在上篇文章中我使用的是兼容OpenAI格式的在线API,但实际上会有很多本地离线的场景。今天跟大家介绍一下在SemanticKernel/C#中如何使用Ollama中的对话模型与嵌入模型用于本地离线场景。开始实践本文使用的对话模型是gemm......