用EdgeQuake构建智能问答应用:从PDF摄取到GraphRAG查询的端到端完整教程
【免费下载链接】edgequakeEdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation项目地址: https://gitcode.com/gh_mirrors/ed/edgequake
EdgeQuake是一个用 Rust 编写的高性能 GraphRAG 框架:它把 PDF 等文档摄取为知识图谱(实体 + 关系),再通过向量 + 图混合检索实现智能问答,回答还带来源引用。本教程带你走完完整链路:一键部署 → PDF 摄取 → 图谱查询,10 分钟就能拥有自己的文档问答应用。
为什么需要 GraphRAG 智能问答?
传统 RAG 只靠向量相似度找文档片段,遇到这类问题就失灵:
- 跨文档关联:“这两份文件里提到的同一个产品,功能有什么区别?”
- 关系推理:“A 公司 CEO 之前在哪里工作?”
- 全局主题:“这些文档整体在讲什么?”
EdgeQuake 的解法是把文档拆解成知识图谱——LLM 从每个文本块中提取实体(人物、组织、产品……)和关系,查询时同时走向量空间和图结构,兼顾速度与推理能力。
快速开始:一键安装 EdgeQuake 问答服务
无需 Rust、无需 Node.js,只用 Docker 即可。先克隆仓库:
git clone https://gitcode.com/gh_mirrors/ed/edgequake cd edgequake sh quickstart.sh交互式向导会引导你选择模型提供商(OpenAI / Ollama)和模型,然后自动拉起完整服务栈。启动后访问http://localhost:3000即可使用,Quickstart 默认免登录。
💡 想固定版本?
EDGEQUAKE_VERSION=0.32.0 sh quickstart.sh服务地址一览:Web UI:3000、REST API:8080、Swagger 文档:8080/swagger-ui。
验证服务是否就绪:
curl -s http://localhost:8080/health | python3 -m json.tool看到"status": "healthy"就说明一切正常。完整的安装细节见 快速开始指南 和 安装文档。
第一次进入 WebUI:上传页面与知识图谱
打开 WebUI 后,左侧边栏有 Dashboard、Documents(文档)、Knowledge Graph(知识图谱)、Query(问答)等入口。文档上传页支持拖拽 PDF、TXT、MD 等文件(单文件最大 100MB),还可以为本次上传单独指定 PDF 解析器:
当文档摄取完成后,在Knowledge Graph页面就能看到自动生成的知识图谱——不同颜色代表不同实体类型(人物、组织、产品、概念等),点击节点可查看详情:
PDF 摄取:4 步把文档变成知识图谱
EdgeQuake 的 PDF 摄取采用两阶段流水线:先把 PDF 转成 Markdown(PdfProcessing任务),再进行知识图谱摄取(Insert任务)。整个过程大致分三步:
第 1 步:上传 PDF
最简单的方式是在 WebUI 的 Documents 页拖拽上传;用 API 的话只需一条 curl:
curl -X POST http://localhost:8080/api/v1/documents/pdf \ -H "X-Workspace-ID: default" \ -F "file=@your-paper.pdf" \ -F "title=Research Paper"接口会立即返回task_id和estimated_time_seconds(预估耗时),摄取是异步的,无需阻塞等待。
第 2 步:选择 PDF 解析后端
EdgeQuake 内置 4 种解析后端(pdf_parser_backend):
| 后端 | 适用场景 |
|---|---|
vision(默认) | 复杂版面:双栏、表格、图表,由视觉大模型逐页识读 |
edgeparse | 纯文本数字 PDF,CPU 解析,快速省钱 |
edgeparse-ocr | 扫描件,EdgeParse + Tesseract OCR |
auto | 按文本密度自动选择快路径 |
解析失败的 vision 路径会自动回退到文本抽取,不会卡死。
第 3 步:跟踪摄取进度
轮询进度(也可用 SSE 或 WebSocket 实时推送):
curl -s "http://localhost:8080/api/v1/documents/pdf/progress/$TASK_ID"文档状态会依次经历converting(转 Markdown)→extracting(实体抽取)→embedding(向量化),直到display_status变为completed即可查询。中途想放弃?一条命令取消:
curl -X POST "http://localhost:8080/api/v1/tasks/$TASK_ID/cancel"第 4 步:查看抽取结果
curl -s "http://localhost:8080/api/v1/graph/entities" | python3 -m json.tool curl -s "http://localhost:8080/api/v1/graph/stats"你会看到类似MARIE_CURIE(PERSON)、RADIUM(CONCEPT)这样的实体,以及 “discovered” 这类关系边。抽取细节(含多轮 Gleaning 补漏)详见 LightRAG 算法解析。
GraphRAG 查询:6 种模式怎么选?
进入 WebUI 的Query页面,输入问题即可获得带来源引用的回答。EdgeQuake 提供 6 种查询模式,覆盖不同问法:
| 模式 | 适合问题 | 原理 |
|---|---|---|
| Naive | 关键词式查找,最快 | 纯向量相似度 |
| Local | 具体实体相关问题 | 定位实体 → 遍历邻居 |
| Global | 主题/全局性问题 | 社区摘要 + 高层关键词 |
| Hybrid(默认) | 复杂综合问题 | Local + Global 结合 |
| Mix | 自定义平衡 | 全模式加权融合 |
| Bypass | 纯 LLM 对话 | 不经过 RAG |
用 API 查询只需:
curl -X POST http://localhost:8080/api/v1/query \ -H "Content-Type: application/json" \ -d '{"query": "文档中提到的关键发现是什么?", "mode": "hybrid"}'响应包含answer(自然语言回答)和sources(引用片段 + 相似度分数),每个回答都可追溯到具体文档:
实操示例:同一问题的三种问法
假设你摄入了三篇公司介绍文档(示例见 第一个 RAG 应用教程):
- “谁创立了 TechCorp?”→ 用
hybrid模式,答案直接给出两位创始人及各自职务 - “CEO 之前在哪里工作?”→ 用
local模式,图谱沿实体关系边找到 “Google DeepMind” - “这几份文档整体在讲什么?”→ 用
global模式,基于社区摘要输出主题归纳
这就是 GraphRAG 相比传统 RAG 的核心优势:关系类问题靠图遍历,主题类问题靠社区摘要,而不是硬靠向量相似度硬凑。
常见问题速查表
| 症状 | 检查方法 | 解决办法 |
|---|---|---|
文档卡在converting | 视觉模型服务是否在线 | 检查 Ollama:curl http://localhost:11434/api/tags,或改用pdf_parser_backend=edgeparse |
| 查询返回泛泛的答案 | 文档是否completed | 轮询至display_status=completed再查 |
| 401 未授权 | 生产模式需登录 | Quickstart 为免登录;生产环境先登录取 token |
| 批量上传慢 | 租户并发上限 | 查看GET /api/v1/pipeline/queue-metrics,本地 Ollama 默认每租户 1 个并发任务 |
更多排查思路见 常见故障排查 和 PDF 摄取教程。
下一步:让问答应用更强大
- 多租户:为不同项目/客户隔离工作区 → 多租户教程
- 自定义实体类型:医疗、法律等 5 套领域预设 → 实体抽取概念
- 知识注入:注入术语表、缩写表提升抽取精度 → 知识注入教程
- SDK 集成:Python / TypeScript / Go / Java 等 11 种语言 SDK → SDK 总览
- API 全量契约:REST API 参考 · 架构总览
从sh quickstart.sh到第一条带引用的智能回答,EdgeQuake 全程只需不到 10 分钟。现在就把你的 PDF 丢进去,问问它吧 🌋
【免费下载链接】edgequakeEdegQuake 🌋 High-performance GraphRAG inspired from LightRag written in Rust; Transform documents into intelligent knowledge graphs for superior retrieval and generation项目地址: https://gitcode.com/gh_mirrors/ed/edgequake
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考