实操演练本地部署graphRAG
python安装
要12的,不要下载13的
否则下面pip install graphrag时就报错了。搞了2天!
pycharm新建项目
下载graphrag 1.2.0版本
另外不要1.0.0,建索引的过程报错,大坑。
在终端里输入 pip install graphrag==1.2.0
不要下载最新的2.0.0+的,因为后续我们是要基于graphRAG-api这个来封装出一个url。这个目前只能兼容到1.2.0。
创建目录ragtest
然后在其下创建子目录input
拷贝一些md文件到这个input文件夹,这些md文件就是你的私人的知识库里的文件了
初始化
graphrag init --root ./ragtest
修改配置文件
修改.evn文件,注意调整成自己的key
GRAPHRAG_API_KEY=sk-XXX
修改setting.yaml
llm:
api_key: ${GRAPHRAG_API_KEY} # set this in the generated .env file
type: openai_chat # or azure_openai_chat
model: deepseek-v3
model_supports_json: true # recommended if this is available for your model.
api_base: https://dashscope.aliyuncs.com/compatible-mode/v1
以上发现还是不能使用model: qwen-max-2025-01-25,要改为:model: deepseek-v3。否则一直出现json格式的问题。可能前者不够智能?
embeddings:
async_mode: threaded # or asyncio
vector_store:
type: lancedb
db_uri: 'output\lancedb'
container_name: default
overwrite: true
llm:
api_key: ${GRAPHRAG_API_KEY}
type: openai_embedding # or azure_openai_embedding
model: text-embedding-v3
api_base: https://dashscope.aliyuncs.com/compatible-mode/v1
batch_size: 9 # 设置批量大小为 10
注意 batch_size 和llm平级。否则后续会报错
input:
type: file # or blob
file_type: text # or csv
base_dir: "input"
file_encoding: utf-8
file_pattern: ".*\\.md$"
腾讯的接口里没有text-embedding-v3,换成了阿里的
中文化处理
索引和回答输出的是中文的话,需要修改提示词里的一些内容
# Language Instruction
Generate the entire report in chinese.
Please provide the comprehensive summary in Chinese.
改成了这行:Return output as a well-formed JSON-formatted string with the following format,but don't output in markdown format, the output string should be directly usable by json.load():
github上面解决:[Bug]: <title>Error generating community report.TypeError: Object of type ModelMetaclass is not JSON serializable #1715
建立索引
graphrag index --root ./ragtest
查询测试
graphrag query --root ./ragtest --method global --query "fastadmin表格如何在操作列里新增一个新的按钮"
完整的setting.yaml配置如下
--B站/抖音:写代码的产品飞哥
--分享运营真实案例,用编程创造自己的产品