☰
EdgeQuake文档摄取完全手册:上传、进度监控、取消重试与最常见问题排查
2026/10/7 21:06:07 网站建设 项目流程

EdgeQuake文档摄取完全手册:上传、进度监控、取消重试与最常见问题排查

【免费下载链接】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 引擎,它的核心工作流就是文档摄取(Document Ingestion):把 PDF、Markdown、TXT、JSON、图片等文件上传进来,自动完成解析、分块、实体抽取、向量化,最终沉淀为可问答的知识图谱。本文带你从上传入口讲到进度监控、取消与重试,并汇总新手最容易踩的 8 个坑,一篇读懂 EdgeQuake 文档摄取全流程。

摄取流水线:你的文档经历了什么?

上传只是开始。每个文档都要走完 6 个阶段才能被检索:

解析 Parse → 分块 Chunk → 实体抽取 Extract → 归一化 Normalize → 向量化 Embed → 存储 Store

💡 默认分块大小 1200 tokens(重叠 100 tokens),每个分块都会交给 LLM 抽取实体与关系,再写入 PostgreSQL(pgvector + Apache AGE)。

关键认知:上传成功(HTTP 202)≠ 可检索。真正耗时的是 Insert(抽取 + 嵌入)阶段,这也是为什么你必须学会监控进度。

第一步:选对上传入口(90% 的报错源于此)

EdgeQuake 提供 4 类摄取路径,不同文件类型必须走不同端点——这是新手最常踩的坑:

我要上传…正确端点说明
纯文本 / JSONPOST /api/v1/documents需Content-Type: application/json
单个文件(TXT/MD/JSON/图片)POST /api/v1/documents/uploadmultipart 表单
单个 / 多个 PDFPOST /api/v1/documents/pdf(/pdf/batch)⚠️ PDF 不能走/upload!
批量文本/图片POST /api/v1/documents/upload/batchPDF 会被拒绝
服务器目录POST /api/v1/documents/scan支持递归扫描

📌 格式矩阵:TXT/MD/JSON/图片/PDF 受支持;DOCX 和 Excel 暂不支持(SPEC-121),请导出为 PDF 或 Markdown。

快速决策树和完整字段说明见官方文档:document-upload-quick-reference.md。

WebUI 上传:三步完成

打开 Web 界面进入Documents页面,一切都很直观:

  1. 拖拽或点击上传——支持 TXT、MD、JSON、PDF、PNG、JPG、GIF、WEBP(单文件上限 100MB)
  2. 选择 PDF 解析器——上传框右侧的Parser for this upload下拉框可选Workspace Default、vision(扫描件/图像型 PDF,LLM 视觉 OCR)或edgeparse(数字原生 PDF,快且免费)
  3. 等待状态变为 Completed——下方文档列表会实时显示每个文件的状态、实体数和摄取成本

✅经验法则:数字原生 PDF(电子报告、发票)用 edgeparse,几秒搞定;扫描件、排版复杂的学术论文用 vision(约 $0.001–0.01/页)。PDF 摄取的完整配置见 pdf-ingestion.md。

API 上传:一条 curl 搞定

# PDF 上传(推荐路径,返回 task_id) curl -X POST http://localhost:8080/api/v1/documents/pdf \ -F "file=@research_paper.pdf" \ -F "title=My Research Paper" # 纯文本上传(生产环境建议开启异步) curl -X POST http://localhost:8080/api/v1/documents \ -H "Content-Type: application/json" \ -d '{"content":"...","title":"My Doc","async_processing":true}'

🔑务必从响应中拿到task_id(形如pdf-<uuid>)——它是后续进度查询、WebSocket 订阅和取消操作的唯一钥匙。

进度监控:三种方式随时掌握状态

摄取过程可能长达几分钟,EdgeQuake 提供三种监控手段:

方式一:看 WebUI 状态徽章

上图中每行文档都有清晰的Status列。推荐看两个"展示字段"(SPEC-057 状态 SSOT):

字段含义
display_status状态徽章:converting→extracting→embedding→completed/failed/cancelled
ui_phaserunning运行中;出现stopping说明正在取消,界面应显示Stopping…

方式二:WebSocket 实时推送(推荐)

ws://localhost:8080/ws/progress/{task_id}

长任务(如视觉转换)建议上传后立即订阅,实时接收分块进度。

方式三:HTTP 轮询

curl http://localhost:8080/api/v1/ingestion/{task_id}/progress

各阶段典型耗时参考:

阶段耗时
解析 / 分块 / 存储毫秒级
实体抽取每分块 2–10 秒(主要瓶颈)
向量化~500ms

取消与重试:随时叫停,一键重来

取消正在进行的摄取

标准取消入口(所有入口共享同一套取消语义):

curl -X POST "http://localhost:8080/api/v1/tasks/{task_id}/cancel"

三个要点:

  • 取消是协作式的:正在进行的 LLM/视觉调用会在下一个检查点中止,需短暂等待
  • 取消后的文档状态是cancelled而不是failed,不会污染失败统计
  • PDF 场景下取消会同时终止"转换"和"摄取"两个关联任务;详细语义见 ingestion-cancel-and-fairness.md

重试失败的文档(Reprocess)

文档显示Failed,或服务重启导致 "Interrupted — use Reprocess" 时,用 reprocess 端点重试(document_id 放请求体里,不是路径):

curl -X POST "http://localhost:8080/api/v1/documents/reprocess" \ -H "Content-Type: application/json" \ -d '{"document_id":"$DOC_ID","force":true,"mode":"full"}'

⚠️ 常见误区:写成POST /documents/{id}/reprocess是旧路由,请以请求体方式调用为准。

服务重启时,未完成的Pending任务会自动恢复被领取;若配置了EDGEQUAKE_STARTUP_AUTO_RESUME=0,被打断的Processing任务会标记为 Failed,此时统一用 Reprocess 补救。

常见问题排查清单(8 个高频坑)

#症状原因与解法
1Expected request with Content-Type: application/json把-F表单发到了 JSON 端点。文本用/documents+-d,文件用/documents/upload,PDF 用/documents/pdf
2PDF 上传被拒PDF 走/upload或/upload/batch会失败,必须用/documents/pdf(/pdf/batch)
3chunk_count = 0,提示"Low text content"PDF 是扫描件——用pdf_parser_backend=vision重新上传
4表格提取成一堆乱码加config={"enhance_tables":true}(约慢 2 倍,每表 ~$0.0001)
5双栏论文文字串行开启config={"layout":{"detect_columns":true}}
6413 File too large单文件超过 50MB,拆分 PDF 或提高上限;大文件可先用max_pages试跑
7文档卡在 Processing 不动查GET /api/v1/pipeline/queue-metrics;本地 Ollama 默认摄取并发只有 2,属正常排队
8Vision 提取反复超时检查模型与 provider 是否匹配(如 OpenAI 模型配了 Ollama),GET /api/v1/config/effective会直接报has_mismatch

更多细节见完整排障指南:common-issues.md 与 faq.md。

最佳实践与延伸阅读

  • 🚀异步优先:生产环境一律async_processing: true,同步模式只适合小文本冒烟测试
  • 🔑抓住 task_id:它是进度、取消、WebSocket 的唯一关联键
  • 🧠复杂文档开 gleaning:max_gleaning: 2可提升 25–35% 实体召回率,代价是更多 LLM 调用
  • 📊摄取完成后看指标:GET /api/v1/workspaces/{id}/metrics可查文档数、实体分布和 LLM 成本

想深入定制分块策略、自定义实体类型和 Gleaning,推荐这份深度教程:document-ingestion.md;API 契约的唯一事实来源见 openapi.snapshot.json。

掌握以上流程,你就能让任何文档库在 EdgeQuake 中平稳"着陆",随时叫停、随时重来 🌋

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询