Docling Studio 开发札记
当我开始构建 Docling Studio 时目标很简单为开发者提供一种可视化方式来检查 Docling 从文档中提取的内容。边界框、分块、元数据——你需要看到才能信任流水线的那些东西。但任何构建过 RAG 系统的人都知道真正的问题不在于提取。而在于提取之后发生的一切。你的分块在 JSON 中看起来没问题。然后你嵌入它们、索引它们、运行查询——答案却是一堆垃圾。当你盯着 OpenSearch 中的向量 ID 时祝你好运找出哪个分块出了问题。版本 0.4.0 填补了这个空白。Docling Studio 现在拥有完整的闭环Docling → 分块 → 嵌入 → OpenSearch。你可以在同一个界面中摄取、搜索、检查、编辑分块并重新嵌入——你已经可以看到文档结构的那个界面。这就是 Docling Studio 从查看器变成 RAG 流水线调试器的版本。1、核心思想拥有摄取流水线这个版本背后的架构赌注很简单。不依赖外部编排器来存储正确的元数据Docling Studio 运行自己的摄取流水线。Docling 解析文档Studio 进行分块嵌入微服务对分块进行向量化OpenSearch 索引一切——包括边界框和文档坐标。为什么这很重要因为当你能够将一个错误的搜索结果追溯到一个精确的分块在原始 PDF 页面上看到该分块高亮显示编辑文本并重新嵌入它——你就把一个 2 小时的调试会话变成了 30 秒的修复。该流水线通过幂等重新摄取进行端到端编排。重新摄取同一文档会干净地替换之前的版本。没有孤立的向量没有重复的分块。2、第四个 Studio 模式摄取Docling Studio 的工作流已经按三种模式组织——Configure、Verify、Prepare。版本 0.4.0 增加了第四个摄取Ingest。一旦你的文档分析完成一键将分块通过嵌入发送到 OpenSearch。可视化步骤跟踪器显示进度嵌入 → 索引 → 完成带有动画反馈。不需要终端不需要 curl 命令。摄取模式还包括对索引分块的全文本搜索。你有一个专用的搜索侧边栏可以查询已索引的文档并查看相关性分数——原始 BM25 分数而不是之前误导性的百分比这个问题也修复了。3、嵌入前编辑分块这是我最兴奋的功能。你现在可以内联编辑分块文本——双击一个分块修改文本保存。你还可以软删除不想索引的分块。删除的分块保留在数据中不会丢失任何东西但从 UI 中消失也不会被嵌入。这就是 RAG 调试的真正含义。你看到一个把表格标题和正文合并的分块修复它。一个分块捕获了页脚删除它。然后重新摄取。反馈循环以秒计算而不是部署周期。4、我的文档和监控新的我的文档屏幕让你可以概览系统中的所有内容。按摄取状态全部/已索引/未索引筛选按名称或日期排序一眼就能看到哪些文档已准备好哪些还没有。侧边栏底部的OpenSearch 连接指示器绿色/红色圆点每 30 秒轮询告诉你后端是否健康无需切换到其他工具。5、功能标志流水线是可选的不是每个人都需要完整的摄取堆栈。如果你只想要可视化检查功能没有任何变化——Docling Studio 完全像以前一样工作。当你设置OPENSEARCH_URL和EMBEDDING_URL时摄取流水线会被激活。当这些未配置时前端会自动隐藏所有摄取 UI。没有死按钮没有令人困惑的界面。对于确实想要完整堆栈的用户专用的docker-compose.ingestion.yml覆盖文件可以通过一个命令启动 OpenSearch、嵌入服务和所有其他组件。6、底层实现对于架构上好奇的人我想强调几点六边形架构的回报。VectorStore端口定义了契约ensure_index、index_chunks、search_similar、get_chunks、delete_document。OpenSearch 适配器实现了它。当有人要求 Qdrant 或 Weaviate 支持时只需一个新适配器——不需要重构。嵌入服务是独立的。它是一个独立的容器在 REST API 后面运行 sentence-transformers支持批处理。EmbeddingService端口和EmbeddingClientHTTP 适配器保持了解耦。换模型、换服务——Studio 不在乎。OpenSearch 映射使用 FAISS/HNSW kNN具有可配置的嵌入维度。IndexedChunk领域模型携带一切文本、向量、边界框坐标、文档引用、分块元数据。测试380 个后端测试161 个前端测试加上覆盖从 PDF 上传到分块进入 OpenSearch 的完整摄取工作流的 E2E Karate 测试。7、试试看# Quick start — visual inspection only docker pull ghcr.io/scub-france/docling-studio:0.4.0-remote docker compose up # Full stack with ingestion pipeline (opensearch embeddings) docker compose -f docker-compose.yml -f docker-compose.ingestion.yml up两种镜像变体0.4.0-remote轻量级委托给 Docling Serve和0.4.0-local完整的 Docling 进程内运行。仓库在 github.com/scub-france/Docling-Studio。Star 不错Issue 和 Fork 更好。8、接下来的计划这个版本奠定了基础。摄取流水线和分块编辑循环是接下来所有功能的构建块——并排模型比较、更智能的分块策略以及与 Docling 生态系统的更深度集成。如果你正在构建 RAG 流水线并且花太多时间想知道为什么检索效果不好试试 Docling Studio。其全部意义在于让不可见的东西变得可见。原文链接Docling Studio 开发札记 - 汇智网