Skip to main content

基于微软GraphRAG,支持使用百度千帆、阿里通义、Ollama、字节豆包等大模型服务

Project description

GraphRAG More

GraphRAG More 基于微软 GraphRAG ,支持使用各种大模型:

  1. OpenAI接口兼容的模型服务(微软GraphRAG本就支持,可直接使用微软 GraphRAG
    • OpenAI
    • Azure OpenAI
    • 阿里通义
    • 字节豆包
    • Ollama
    • 其他OpenAI接口兼容的模型服务
  2. 非OpenAI接口兼容的模型服务(微软GraphRAG不支持
    • 百度千帆(推理服务V2版本接口兼容OpenAI,但目前V2版本接口不支持Embedding

可以先熟悉一下微软官方的demo教程:👉 微软官方文档

使用步骤如下:

要求 Python 3.10-3.12,建议使用 pyenv 来管理多个python版本

1. 安装 GraphRAG More

pip install graphrag-more

# 如果使用百度千帆,还需要安装qianfan sdk
# pip install qianfan

如需二次开发或者调试的话,也可以直接使用源码的方式,步骤如下:

下载 GraphRAG More 代码库

git clone https://github.com/guoyao/graphrag-more.git

安装依赖包 这里使用 poetry 来管理python虚拟环境

# 安装 poetry 参考:https://python-poetry.org/docs/#installation

cd graphrag-more
poetry install

2. 准备demo数据

# 创建demo目录
mkdir -p ./ragtest/input

# 下载微软官方demo数据
# 微软官方提供的demo数据 https://www.gutenberg.org/cache/epub/24022/pg24022.txt 有点大,会消耗不少token,这里改用精简后的数据
curl https://raw.githubusercontent.com/guoyao/graphrag-more/refs/heads/main/examples/resources/pg24022.txt > ./ragtest/input/book.txt

3. 初始化demo目录

graphrag init --root ./ragtest

如果基于源码方式,请在源码根目录下使用poetry命令运行:

poetry run poe init --root ./ragtest

这将在./ragtest目录中创建两个文件:.envsettings.yaml.env包含运行GraphRAG所需的环境变量,settings.yaml包含GraphRAG全部设置。

4. 配置

GraphRAG More 1.1.0 版本开始的配置文件与 1.1.0 之前版本的变动较大,升级请注意!!!

  1. .env
    .env文件中配置GRAPHRAG_API_KEY,这是您所使用的大模型服务的API密钥,将其替换为您自己的API密钥。
  2. settings.yaml
    settings.yaml文件中,根据您所使用的大模型配置modelapi_baseGraphRAG Moreexample_settings 文件夹提供了 百度千帆、阿里通义、字节豆包、Ollama 的settings.yaml文件供参考(详细的配置参考微软官方文档:https://microsoft.github.io/graphrag/config/yaml/ ), 根据选用的模型和使用的GraphRAG More版本(不同版本settings.yaml可能不一样),您可以直接将将example_settings 文件夹(比如:GraphRAG More 1.1.0 版本的 example_settings )对应模型的settings.yaml 文件复制到 ragtest 目录,覆盖初始化过程生成的settings.yaml文件。
    # 百度千帆
    cp ./example_settings/qianfan/settings.yaml ./ragtest
    
    # or 阿里通义
    cp ./example_settings/tongyi/settings.yaml ./ragtest
    
    # or 字节豆包
    cp ./example_settings/doubao/settings.yaml ./ragtest
    
    # or ollama
    cp ./example_settings/ollama/settings.yaml ./ragtest
    
    example_settingssettings.yaml里面有的设置了默认的model,根据您选用的模型来修改model
    • 百度千帆默认使用 ernie-speed-pro-128k 和 tao-8k
    • 阿里通义默认使用 qwen-plus 和 text-embedding-v2
    • 字节豆包需要配置模型ID,即推理接入点ID,不是模型名称
    • Ollama默认使用 mistral:latest 和 quentinz/bge-large-zh-v1.5:latest

      对于Ollama,需要在构建前安装Ollama并下载您选用的模型:

      ollama pull mistral:latest # 默认使用的模型,请替换成您选用的模型
      ollama pull quentinz/bge-large-zh-v1.5:latest # 默认使用的模型,请替换成您选用的模型
      

5. 构建索引

graphrag index --root ./ragtest

如果基于源码方式,请在源码根目录下使用poetry命令运行:

poetry run poe index --root ./ragtest

构建过程可能会触发 rate limit (限速)导致构建失败,重复执行几次,或者尝试调小 settings.yaml 中 的 requests_per_minute 和 concurrent_requests 配置,然后重试

6. 执行查询

# global query
graphrag query \
--root ./ragtest \
--method global \
--query "What are the top themes in this story?"

# local query
graphrag query \
--root ./ragtest \
--method local \
--query "Who is Scrooge, and what are his main relationships?"

如果基于源码方式,请在源码根目录下使用poetry命令运行:

# global query
poetry run poe query \
--root ./ragtest \
--method global \
--query "What are the top themes in this story?"

# local query
poetry run poe query \
--root ./ragtest \
--method local \
--query "Who is Scrooge, and what are his main relationships?"

查询过程可能会出现json解析报错问题,原因是某些模型没按要求输出json格式,可以重复执行几次,或者修改 settings.yaml 的 llm.model 改用其他模型

除了使用cli命令之外,也可以使用API方式来查询,以便集成到自己的项目中,API使用方式请参考: examples/api_usage(注意:不同GraphRAG More版本API用法可能不一样,参考所使用版本下的文件)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

graphrag_more-1.1.2.tar.gz (208.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

graphrag_more-1.1.2-py3-none-any.whl (350.9 kB view details)

Uploaded Python 3

File details

Details for the file graphrag_more-1.1.2.tar.gz.

File metadata

  • Download URL: graphrag_more-1.1.2.tar.gz
  • Upload date:
  • Size: 208.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/22.6.0

File hashes

Hashes for graphrag_more-1.1.2.tar.gz
Algorithm Hash digest
SHA256 a012c7d74c386ca54399aff33e298513231ee84c859ec788d16bdda2d2003bf1
MD5 060749a48dea71bbaf9491031fd4af53
BLAKE2b-256 0eacfde0b4b89a1568da96f8932cce97d71e71c2e65fa809e6b05a75aff37ba0

See more details on using hashes here.

File details

Details for the file graphrag_more-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: graphrag_more-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 350.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/22.6.0

File hashes

Hashes for graphrag_more-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c4e0d80e8ea464ec06796589eb3a31f38a5dc41965746e702bf957f8e47e133b
MD5 bb87dc5f833ab1006ea072c3438503d6
BLAKE2b-256 f7759b591385ad701ff83765ab6d51ff9d297e4d8b234c7d4d1dba58d369baf3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page