使用说明
为什么选择GraphRAG MCP
改进 信息检索 为了提高企业内部的效率,需要一个能够从中提取用户相关信息的代理 零散的文件通过将企业文档检索构建为 主控程序 (模型上下文协议),组织内的其他代理可以在需要文档检索时简单地连接到此MCP。这种方法集中了文档搜索功能,使在整个企业中集成和扩展智能代理变得更加容易。
如何跑步
-
在两个中填写所需的环境变量
.env位于项目根目录和graphrag/目录。 -
打开终端并导航到项目根目录。
-
运行以下命令启动GraphRAG MCP:
uv run rag_client.py rag_server.py
完成这些步骤后,GraphRAG MCP将启动并运行。
编码结构
.
├── main.py
├── rag_client.py # MCP client for graphrag
├── rag_server.py # MCP server for graphrag
├── pyproject.toml
├── .env
├── .gitignore
├── .python-version
├── README.md
└── graphrag/
├── .env
├── settings.yaml
├── cache/
│ ├── community_reporting/
│ ├── extract_graph/
│ ├── summarize_descriptions/
│ └── text_embedding/
├── input/
│ └── test.txt # knowledge base
├── logs/
├── output/
│ ├── context.json
│ ├── stats.json
│ └── lancedb/
└── prompts/
├── basic_search_system_prompt.txt
├── community_report_graph.txt
├── community_report_text.txt
├── drift_reduce_prompt.txt
├── drift_search_system_prompt.txt
├── extract_claims.txt
├── extract_graph.txt
└── ...
文件夹和文件说明
- rag_client.py:用于与RAG服务器交互的客户端。
- rag_server.py:服务器提供基于RAG的工具。
- pyproject.toml:Python项目配置。
- .env、.gitignore、.python版本:环境和版本控制文件。
笔迹/
- .env,settings.yamlGraphRAG的环境和配置。
- 高速缓存/:存储各个管道阶段的中间结果。
- 社区报道/:缓存社区报告数据。
- 提取图/:缓存图形提取结果。
- 概述_描述/:缓存描述摘要。
- 文本嵌入/:缓存文本嵌入以供检索。
- 输入/:包含输入数据文件。
- 日志/:存储运行期间生成的日志文件。
- 输出/:存储上下文和统计数据等输出数据。
- context.json:输出上下文数据。
- stats.json:产出统计。
- 兰斯布/:用于矢量存储的数据库文件。
- 提示/:包含不同任务的提示模板。
- basic_search_system_prompt.txt:提示进行基本搜索。
- 社区_报告_图片.txt:提示基于图形的社区报告。
- community_report_text.txt:提示基于文本的社区报告。
- drift_reduce_mpt.txt、drift_search_system_prompt.txt:漂移分析提示。
- extract_laims.txt、extract_graph.txt:索赔和图形提取提示。
核心技术:GraphRAG
GraphRAG是一个检索增强生成(RAG)框架,它将基于图的推理与大型语言模型集成在一起。它通过将实体、关系和声明表示为知识图来增强传统的RAG,从而实现了更结构化和上下文感知的检索。
GraphRAG的工作原理
- 数据摄取:处理原始文本和表格数据以提取存储在图形结构中的实体、关系和声明。
- 提示:自定义提示引导语言模型生成基于图形数据的响应。
- 检索:当收到查询时,使用语义搜索和图遍历从图中检索相关节点和边。
- 生成:语言模型使用检索到的图形上下文和提示模板来合成答案,确保响应准确且有充分依据。
- 缓存和输出:为了提高效率,会缓存中间和最终结果,并将其存储以供进一步分析。
与标准RAG管道相比,这种方法允许提供更可解释、更可靠和上下文丰富的答案。
