基于微软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
Hashes for graphrag_more-0.3.6.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38d84dca5dbf82f0412dc34f3621b73b1920660266dd6b4a02d518a408ec6b5a |
|
MD5 | c72cd55b0bd9bbada3e8f925f5a51ed1 |
|
BLAKE2b-256 | e91b3a6aa4d19b19f470dc2fcf3ce7e66acc0b3c21b8e78d1a553ae204548599 |