raphaelmansuy/edgequake
EdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation
EdgeQuake – 单个 Rust 二进制文件中的 Graph-RAG
这是什么 – EdgeQuake 是一个开源的检索增强生成(RAG)系统,它将文档存储为 知识图谱,而不仅仅是平面的文本向量。它用 Rust 编写,以单个可执行文件形式发布,并使用单个 PostgreSQL 实例(带有 pgvector 和 Apache AGE 扩展)来存储向量嵌入和图数据。任何支持 OpenAI/Anthropic API 的 LLM 都可以使用——从云服务(OpenAI、Anthropic、Gemini、Mistral)到本地服务器(Ollama、LM Studio、oMLX、llama.cpp、vLLM-MLX 等)。
工作原理(高层流程)
Document → chunking → LLM extracts entities & relations → stored as:
• embeddings in pgvector
• graph nodes/edges in Apache AGE
Query → keyword extraction → vector search + graph walk → LLM generates answer
该系统支持多种检索 模式(naive、local、global、hybrid(默认)、mix、bypass),它们将纯向量相似性与图遍历相结合,以呈现依赖于概念之间关系的答案。
快速开始(仅 Docker,无需 Rust/Node)
# 一行命令获取辅助脚本,运行 Docker compose 并启动 UI
curl -fsSL https://raw.githubusercontent.com/raphaelmansuy/edgequake/edgequake-main/quickstart.sh | sh
- UI:http://localhost:3000
- REST API(Swagger):http://localhost:8080/swagger-ui
- 健康检查端点:http://localhost:8080/health
您也可以在 CI 中无头运行:
quickstart.sh --yes --provider ollama
quickstart.sh --yes --provider omlx --base-url http://host.docker.internal:9050
通过 UI 或 API 上传 PDF 并提问:
curl -X POST http://localhost:8080/api/v1/documents/upload -F "file=@my.pdf"
curl -X POST http://localhost:8080/api/v1/query \
-H "Content-Type: application/json" \
-d '{"query":"What are the main concepts?","mode":"hybrid"}'
选择语言模型
| 目标 | 提供商 | 配置方式 |
|---|---|---|
| 最佳质量,无需硬件 | OpenAI、Anthropic、Gemini、Mistral | Settings → Connections 或环境变量(例如 OPENAI_API_KEY) |
| 私有,本地运行 | Ollama、LM Studio、oMLX、MLX-LM、llama.cpp、vLLM-MLX | 相同的 UI 或环境变量(EDGEQUAKE_PROVIDER=ollama) |
| 云 LLM + 本地嵌入混合 | 任何云 LLM + 本地嵌入服务器 | 设置 EDGEQUAKE_EMBEDDING_PROVIDER |
| 自定义网关 | 任何 OpenAI 兼容端点 | 使用 通用 提供商文档 |
每个工作区可以为每个角色(提取、查询、摘要、嵌入、视觉等)分配不同的模型。edgequake doctor 命令和 POST /api/v1/providers/test 可让您验证连接。
生产级功能
- 单一数据存储 – 带有
pgvector(嵌入)和 Apache AGE(图)的 PostgreSQL 16-18。无需管理单独的向量数据库或图数据库。 - 安全迁移 – 显式的
edgequake migrate命令;每次发布都会对迁移进行重放测试。 - 安全性 – 默认仅回环,AES-256-GCM 加密提供商密钥,可选 SSO(Keycloak/OIDC),审计日志,多租户工作区隔离。
- PDF 视觉流水线 – 通过内置 pdfium 进行文本提取;针对扫描表格和复杂布局的可选视觉模式。
- 健康检查 –
/health探测真实的 LLM 提供商;edgequake doctor检查数据库、模式和安全性状况。 - 多架构 Docker 镜像 –
linux/amd64和linux/arm64发布在 GHCR 上。
基准测试(坦诚的数据)
| 指标 | EdgeQuake | LightRAG(Python) | 结论 |
|---|---|---|---|
| 答案准确率 | 0.792 | 0.786 | 统计上持平 |
| 冷查询 p50 延迟 | 4447 毫秒 | 4359 毫秒 | ≈ 持平 |
| 热查询 p50(缓存) | 82 毫秒 | 993 毫秒 | EdgeQuake 快得多 |
| 证据召回率 | 0.932 | 0.949 | LightRAG 略胜一筹 |
作者强调,EdgeQuake 在检索质量上与 LightRAG 相当,同时提供了生产级的 Rust 实现、更快的缓存响应和更丰富的功能集。
生态系统与集成
- SDK – Python、TypeScript、Rust,以及用于 Go、Java、Kotlin、C#、PHP、Ruby、Swift 的社区 SDK。
- AI 代理 – 用于代理编排的 MCP 服务器。
- 应用程序 – 与 OpenWebUI 和 LangChain 的即用型集成。
- API – OpenAPI 3.0 规范、SSE 流式传输、批量摄取、Swagger UI。
文档与学习资源
- Web UI 的视觉导览(
tutorial/README.md)。 - 完整的 入门 指南、第一个 RAG 应用教程和提供商配置文档。
- LightRAG 算法和 EdgeQuake 架构的深入解析。
- 运维文档:部署、Docker 选项、监控、运行时身份验证强化、升级流程、故障排除。
谁可能使用它?
- 企业 – 需要具有严格数据隔离和可审计性的自托管 RAG 堆栈的企业。
- 开发者 – 构建需要关系感知检索(例如“谁向谁汇报”)的 AI 代理或聊天机器人。
- 研究人员 – 希望无需管理多个服务即可试验 Graph-RAG 的研究人员。
- 团队 – 已经运行 PostgreSQL 并倾向于使用单个二进制文件以简化运维的团队。
许可证
Apache License 2.0(2024-2026 © Raphaël Mansuy)。
TL;DR
EdgeQuake 为您提供了一个 Rust 原生、单二进制 RAG 平台,它将文档存储为 PostgreSQL 中的 知识图谱,允许您接入 任何 LLM(云端或本地),并提供现成的 UI、REST API、SDK 以及生产级的安全和升级机制。这是在没有单独向量和图数据库的运维开销的情况下尝试 Graph-RAG 的实用方法。
相关
- 项目
- 项目
- 项目
- 项目
- 项目