基于微软GraphRAG,支持使用百度千帆、阿里通义、Ollama等模型
Project description
GraphRAG More
基于 微软GraphRAG ,支持使用百度千帆、阿里通义、Ollama本地模型。
可以先熟悉一下微软官方的demo教程:👉 微软官方文档
使用步骤如下:
要求 Python 3.10-3.12,建议使用 pyenv 来管理多个python版本
1. 安装 graphrag-more
pip install graphrag-more
如需二次开发或者调试的话,也可以直接使用源码的方式,步骤如下:
下载 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数据
curl https://www.gutenberg.org/cache/epub/24022/pg24022.txt > ./ragtest/input/book.txt
3. 初始化demo目录
python -m graphrag.index --init --root ./ragtest
4. 移动和修改 settings.yaml 文件
根据选用的模型(千帆、通义、Ollama)将 example_settings 文件夹对应模型的 settings.yaml 文件复制到 ragtest 目录,覆盖初始化过程生成的 settings.yaml 文件。
# 千帆
cp ./example_settings/qianfan/settings.yaml ./ragtest
# or 通义
cp ./example_settings/tongyi/settings.yaml ./ragtest
# or ollama
cp ./example_settings/ollama/settings.yaml ./ragtest
每个settings.yaml里面都设置了默认的 llm 和 embeddings 模型,根据你自己要使用的模型修改 settings.yaml 文件的 model 配置
- 千帆默认使用 qianfan.ERNIE-3.5-128K 和 qianfan.bge-large-zh ,注意:必须带上 qianfan. 前缀 !!!
- 通义默认使用 tongyi.qwen-plus 和 tongyi.text-embedding-v2 ,注意:必须带上 tongyi. 前缀 !!!
- Ollama默认使用 ollama.mistral:latest 和 ollama.quentinz/bge-large-zh-v1.5:latest ,注意:<=0.3.0版本时,其llm模型不用带前缀,>=0.3.1版本时,其llm模型必须带上 ollama. 前缀,embeddings模型必须带 ollama. 前缀 !!!
5. 构建前的准备
根据选用的模型,配置对应的环境变量,若使用Ollama需要安装并下载对应模型
- 千帆:需配置环境变量 QIANFAN_AK、QIANFAN_SK(注意是应用的AK/SK,不是安全认证的Access Key/Secret Key),如何获取请参考官方文档:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/3lmokh7n6#%E6%AD%A5%E9%AA%A4%E4%B8%80%EF%BC%8C%E8%8E%B7%E5%8F%96%E5%BA%94%E7%94%A8%E7%9A%84ak%E5%92%8Csk
- 通义:需配置环境变量 TONGYI_API_KEY(从0.3.6.1版本开始,也支持使用 DASHSCOPE_API_KEY,同时都配置的情况下 TONGYI_API_KEY 优先级高于 DASHSCOPE_API_KEY),如何获取请参考官方文档:https://help.aliyun.com/zh/model-studio/developer-reference/get-api-key
- Ollama:
- 安装:https://ollama.com/download ,安装后启动
- 下载模型
ollama pull mistral:latest ollama pull quentinz/bge-large-zh-v1.5:latest
6. 构建索引
python -m graphrag.index --root ./ragtest
构建过程可能会触发 rate limit (限速)导致构建失败,重复执行几次,或者尝试调小 settings.yaml 中 的 requests_per_minute 和 concurrent_requests 配置,然后重试
7. 执行查询
# global query
python -m graphrag.query \
--root ./ragtest \
--method global \
"What are the top themes in this story?"
# local query
python -m graphrag.query \
--root ./ragtest \
--method local \
"Who is Scrooge, and what are his main relationships?"
查询过程可能会出现json解析报错问题,原因是某些模型没按要求输出json格式,可以重复执行几次,或者修改 settings.yaml 的 llm.model 改用其他模型
除了使用cli命令之外,你也可以使用API方式来查询,以便集成到你自己的项目中,API使用方式请参考: examples/api_usage
- 基于已有配置文件查询:search_by_config_file.py
- 基于代码的自定义查询:custom_search.py
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file graphrag_more-0.3.6.1.tar.gz
.
File metadata
- Download URL: graphrag_more-0.3.6.1.tar.gz
- Upload date:
- Size: 219.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.7 Darwin/22.6.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2e7941a6f59e5e75d79ce238595430ac3bfe7c5e79e79510592b22aeb70c9131 |
|
MD5 | 9cb2c4c2d5c80f738d9643c9807ed92b |
|
BLAKE2b-256 | 5554c46253b1f92fa7e65c958c51f8a0152ae0b1d7232ffb5247f6715e9c0f18 |
File details
Details for the file graphrag_more-0.3.6.1-py3-none-any.whl
.
File metadata
- Download URL: graphrag_more-0.3.6.1-py3-none-any.whl
- Upload date:
- Size: 394.7 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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38d84dca5dbf82f0412dc34f3621b73b1920660266dd6b4a02d518a408ec6b5a |
|
MD5 | c72cd55b0bd9bbada3e8f925f5a51ed1 |
|
BLAKE2b-256 | e91b3a6aa4d19b19f470dc2fcf3ce7e66acc0b3c21b8e78d1a553ae204548599 |