GraphRAG LlamaIdex
全栈GraphRAG引擎针对本地索引和轻量级云查询进行了优化。基于DuckDB、LlamaIdex和模型上下文协议(MCP)构建。
1.背景
该项目实现了 解耦架构:
- 索引器(图像A):用于局部图构建的重型ML环境(PyTorch、GLiNER)。
- 查询(图片B):轻量级API环境(Node.js,DuckDB),用于快速云部署(约1GB占用空间)。
2.建立形象
# Build specialized images via Docker Compose
docker compose build3.运行索引器和查询
加载shell别名以实现最快的工作流:
- macOS(Zsh):
source .graphrag-alias.zsh - WSL/Bash:
source .graphrag-alias.sh - PowerShell:
. .\.graphrag-alias.ps1
索引文档
# 1. Initialize a database entry
graphrag start my_project --source /app/documents/source_files
# 2. Run the ingestion pipeline (Indexer Image)
graphrag index my_project [--reset] [--prune]查询
# CLI Search (Query Image)
graphrag search my_project "What are the common themes?"
# Start MCP Server for Agents
docker compose up query4.部署文件夹
deployment/fly/:Fly.io上的零延迟托管脚本(针对免费层飞机进行了优化)。deployment/aws/:用于ECR、S3备份和App Runner部署的基础架构脚本。
5.设置和配置
环境(.env)
复制 .env.example 并设置:
OPENAI_API_KEY:用于LLM推理和提取。DOCUMENTS_HOME:本地数据文件夹的绝对路径(映射到/app/documents在Docker中)。
发动机配置(核心/graphrag_configur.py)
调整这些参数以优化性能:
SearchType:切换entity_connections(图形很重)或thematic_overview(总结很重)。ExtractionMode:选择llm(创意)或gliner(快速/经济高效)。
6.本地集成和测试
将此项目整合为 MCP服务器 在桌面代理(Claude Desktop、Cursor等)中,为它们提供文档的内存。
添加到MCP配置中:
{
"mcpServers": {
"graphrag": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"C:/Users//.graphrag:/root/.graphrag",
"graphrag-query"
]
}
}
}7.数据库备忘单
核心命令
graphrag list:显示所有已注册的数据库。graphrag status:检查实体/关系计数和健康状况。graphrag delete [--files]:注销数据库条目,并可选择删除物理文件。graphrag index [--reset]:将文档索引到数据库中(使用--reset跳过重复检查)。
托管存储工作流程
为了保持项目的可移植性,请将数据库文件移动到 Managed/ 数据目录中的文件夹。
手动移动:
- 移动
your_db.duckdb到[DOCUMENTS_HOME]/Managed/. - 重新注册路径:
graphrag register my_db --db-path /app/documents/Managed/your_db.duckdb______________________________________________________________________
_有关S3管理,请参阅 S3_目录.md._
