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

Nano-GraphRAG复现——只使用Ollama,无需API Key

在微软GraphRAG复现过程中,因其复杂的程序和源代码的错误,导致很难复现。因此,github中出现了graphrag的精简版本——NanoGraphRAG,该项目提供了一个更小、更快、更干净的 GraphRAG,同时保留了核心功能。 但是很多小伙伴困扰于没有OpenAI的API key,因此本文介绍了如何使用Ollama跑通Graphrag,只需简单的操作即可!欢迎点赞收藏!
在这里插入图片描述

一、项目代码获取

使用git命令从github中下载代码:

git clone https://github.com/gusye1234/nano-graphrag.git

二、环境配置

安装依赖项:

cd nano-graphrag
pip install -e .

三、修改文件

因为我们使用的是ollama的embedding和LLM模型,因此需要修改的文件是nano-graphrag/examples/using_ollama_as_llm_and_embedding.py,主要需要修改的有几个地方:
LLM和Embedding模型名称,需要和后面的ollama pull的模型保持一致:

# Assumed llm model settings
MODEL = "llama3.2"

# Assumed embedding model settings
EMBEDDING_MODEL = "nomic-embed-text"
EMBEDDING_MODEL_DIM = 768
EMBEDDING_MODEL_MAX_TOKENS = 8192

定义Query函数,修改Query的具体内容:

def query():
    rag = GraphRAG(
        working_dir=WORKING_DIR,
        best_model_func=ollama_model_if_cache,
        cheap_model_func=ollama_model_if_cache,
        embedding_func=ollama_embedding,
    )
    print(
        rag.query(
            "What are the top themes in this story?", param=QueryParam(mode="global")
        )
    )

通过下面的指令下载测试知识库:

curl https://raw.githubusercontent.com/gusye1234/nano-graphrag/main/tests/mock_data.txt > ./book.txt

修改Insert函数,主要修改知识库的位置

def insert():
    from time import time

    with open(f"{WORKING_DIR}/book.txt", encoding="utf-8-sig") as f:
        FAKE_TEXT = f.read()

    remove_if_exist(f"{WORKING_DIR}/vdb_entities.json")
    remove_if_exist(f"{WORKING_DIR}/kv_store_full_docs.json")
    remove_if_exist(f"{WORKING_DIR}/kv_store_text_chunks.json")
    # remove_if_exist(f"{WORKING_DIR}/kv_store_community_reports.json")
    remove_if_exist(f"{WORKING_DIR}/graph_chunk_entity_relation.graphml")

    rag = GraphRAG(
        working_dir=WORKING_DIR,
        enable_llm_cache=True,
        best_model_func=ollama_model_if_cache,
        cheap_model_func=ollama_model_if_cache,
        embedding_func=ollama_embedding,
    )
    start = time()
    rag.insert(FAKE_TEXT)
    print("indexing time:", time() - start)
    # rag = GraphRAG(working_dir=WORKING_DIR, enable_llm_cache=True)
    # rag.insert(FAKE_TEXT[half_len:])

四、Ollama 开启服务

首先需要保证你已经在服务器上下载好了ollama,没有下载的话可以看这篇教程去下载:ollama下载链接。
开启ollama服务:

ollama serve

拉取LLM和embedding模型,需要和前面保持一致:

ollama pull llama3.2
ollama pull nomic-embed-text
ollama run llama3.2

五、测试代码

配置好之后即可开始测试:

cd examples
python using_ollama_as_llm_and_embedding.py

至此,使用ollama复现Nano-GraphRAG完成!

http://www.dtcms.com/a/54203.html

相关文章:

  • 质量属性场景描述
  • IO基础练习4
  • CogToolBlock和CogIDTool工具
  • ES时序数据库的性能优化
  • C++ Primer 拷贝、赋值与销毁
  • 如何改变怂怂懦弱的气质(2)
  • 记录一次利用条件索引优化接口性能的实践
  • golang并发编程如何学习
  • unsloth-llama3-8b.py 中文备注版
  • 汽车零部件厂如何选择最适合的安灯系统解决方案
  • ESLint 深度解析:原理、规则与插件开发实践
  • C# Unity 面向对象补全计划 之 索引器与迭代器
  • Spring AI 1.0.0-M6 快速开始(一)
  • MySQL批量生成建表语句
  • 解决CentOS 8.5被恶意扫描的问题
  • 美国国家航空航天局(NASA)的PUNCH任务
  • 第十章,防火墙带宽管理
  • Flink深入浅出之02
  • 软件系统属性
  • Java集合面试篇
  • 视觉-语言模型-出发点CLIP--(精读论文)
  • *图论基础(5)
  • 计算机网络笔记(一)——1.1计算机网络在信息时代中的作用
  • 数据库复习(第五版)- 第十章 数据库恢复技术
  • 【JavaEE】阻塞队列
  • HarmonyOS Next~鸿蒙系统ArkCompiler跨平台编译技术的革新实践
  • Flask 打包为exe 文件
  • C# 实现鼠标轨迹录制与回放自动化功能(附源码)
  • linux修改不可用编辑的文件(修改权限失败)
  • linux指令学习--sudo apt-get install vim