GRAPHRAG API调用

安装

先决条件

确保已安装 Python 3.8+。

通过 pip 安装

使用 pip 安装 GraphRag-API:

pip install graphrag_api

从源码安装

  1. 克隆源码库:
git clone https://github.com/nightzjp/graphrag_api
  1. 进入项目目录并安装依赖:
cd graphrag_api
pip install -r requirements.txt

使用

初始化

  1. 命令行初始化
python -m graphrag.index --init --root ./rag  # graphrag初始化
python index_test.py --init --root rag  # graphrag_api初始化

2代码初始化

from graphrag_api.index import GraphRagIndexer


indexer = GraphRagIndexer(root="rag", init=True)

indexer.run()

索引创建

  1. 命令行初始化(会生成rag目录)
python -m graphrag.index --root rag  # graphrag初始化
python index_test.py --root rag  # graphrag_api初始化
  1. 代码初始化
from graphrag_api.index import GraphRagIndexer


indexer = GraphRagIndexer(root="rag")

indexer.run()
  1. 修改配置文件(自动生成,需要修改相应配置)

.env文件

GRAPHRAG_API_KEY=<API_KEY>

settings.yaml文件


encoding_model: cl100k_base
skip_workflows: []
llm:
  api_key: ${GRAPHRAG_API_KEY}
  type: openai_chat # or azure_openai_chat
  model: gpt-4o-mini  # mini性价比比较高
  model_supports_json: true # recommended if this is available for your model.

embeddings:
  ## parallelization: override the global parallelization settings for embeddings
  async_mode: threaded # or asyncio
  llm:
    api_key: ${GRAPHRAG_API_KEY}
    type: openai_embedding # or azure_openai_embedding
    model: text-embedding-3-small
    
input:
  type: file # or blob
  file_type: csv # or text  这里以csv为例
  base_dir: "input"
  file_encoding: utf-8
  file_pattern: ".*\\.csv$"
  source_column: "question"  # csv-key
  text_column: "answer"  # csv-key

q.csv文件示例

question,answer
"你是谁","你猜啊"

搜索

  1. 命令行初始化
python -m graphrag.query \
--root ./ragtest \
--method global(local) \
"What are the top themes in this story?"  # graphrag初始化

python search_test.py --root rag --method global(local) "What are the top themes in this story?"  # graphrag初始化

2代码初始化

from graphrag_api.search import SearchRunner

search_runner = SearchRunner(root_dir="rag")

search_runner.run_local_search(query="What are the top themes in this story?")
search_runner.run_global_search(query="What are the top themes in this story?")

# 对于输出的结果可能带有一些特殊字符,可以采用以下函数去除特殊字符或自行处理。
search_runner.remove_sources(search_runner.run_local_search(query="What are the top themes in this story?"))

参考

posted @ 2024-08-07 14:06  一石数字欠我15w!!!  阅读(137)  评论(0编辑  收藏  举报