Skip to content

Repository files navigation

GraphRag-API

GraphRag-API 在 GraphRag 库的基础上扩展,提供了 API 调用功能,用于执行本地和全局搜索。此扩展允许用户通过 RESTful API 调用,轻松地将 GraphRag 的强大搜索功能集成到他们的应用程序中。

功能

  • 本地搜索:在指定的本地数据集内进行搜索。
  • 全局搜索:在更广泛的全球数据集中进行搜索。
  • 可配置参数:通过配置文件或 API 调用自定义搜索参数。
  • RESTful API:通过 HTTP 请求轻松与其他应用程序和服务集成。

安装

先决条件

确保已安装 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代码初始化

fromgraphrag_api.indeximportGraphRagIndexerindexer=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. 代码初始化
fromgraphrag_api.indeximportGraphRagIndexerindexer=GraphRagIndexer(root="rag")
indexer.run()
  1. 修改配置文件(自动生成,需要修改相应配置)

.env文件

GRAPHRAG_API_KEY=<API_KEY>

settings.yaml文件

encoding_model: cl100k_baseskip_workflows: []llm:
api_key: ${GRAPHRAG_API_KEY}type: openai_chat # or azure_openai_chatmodel: gpt-4o-mini # mini性价比比较高model_supports_json: true # recommended if this is available for your model.embeddings:
## parallelization: override the global parallelization settings for embeddingsasync_mode: threaded # or asynciollm:
api_key: ${GRAPHRAG_API_KEY}type: openai_embedding # or azure_openai_embeddingmodel: text-embedding-3-smallinput:
type: file # or blobfile_type: csv # or text 这里以csv为例base_dir: "input"file_encoding: utf-8file_pattern: ".*\\.csv$"source_column: "question"# csv-keytext_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代码初始化

fromgraphrag_api.searchimportSearchRunnersearch_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?"))

报告问题

如果遇到任何问题,请在 GitHub 上提交 issue。

许可证

此项目依据 MIT 许可证授权。有关详细信息,请参阅 LICENSE 文件。

致谢

此项目基于 GraphRag 库。特别感谢原项目的贡献者。


如果有任何需要进一步调整的地方,请告诉我!

About

Graphrag的api扩展,可通过api调用,以嵌入在自己的web服务

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages