Skip to content

feat(dataset): 解析分块与图片导入先落库,索引完成后转可检索 - #7769

Open
ChanZany wants to merge 1 commit into
labring:mainfrom
ChanZany:feat/refact-dataset-training
Open

ChanZany wants to merge 1 commit into
labring:mainfrom
ChanZany:feat/refact-dataset-training

Conversation

@ChanZany

@ChanZany ChanZany commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

feat(dataset): 解析分块与图片导入先落库,索引完成后转可检索

新增数据三态 indexStatus = parsed | indexing | indexed。解析分块、图片导入与
备份/模板导入在内容确定时先写入可见的数据行(parsed),再由下游训练任务把向量
结果写回同一条 dataId,全流程只有一条数据行。

数据与任务

  • Parse 分块、图片导入、备份/模板导入在调用方事务内预落库最终分块(parsed、
    indexes 为空),训练任务携带同一 dataId;图片导入据配置继续走 ImageParse、
    图片索引或自动索引分支。集合同步等其它 rawText 调用方维持原有创建路径。
  • Vector、QA 与 Pro 的自动/图片/图片解析分支在领取任务时把 parsed 推进为
    indexing;Vector 完成后在同一 Mongo 写入边界内写回向量、全文与 indexed 标记
    并删除训练任务,不产生「全文可见但仍是待索引」或「已 indexed 但无向量」的窗口。
  • QA 一对多:源数据复用为第一条叶子(保留 metadata,状态回到 parsed),原任务改派
    为第一条叶子的 chunk 任务并保留 _id/dataId/billId,其余叶子新建 parsed 数据与
    携带 dataId 的任务;入队、数据写入与源任务删除收敛到同一 session。QA 无产出时
    源数据回到 parsed,不增不删数据行。
  • 提前落库不复用重建入口,不触发重建接力,数据与任务一对一。

访问控制

  • 待索引数据在前端隐藏编辑与删除入口(隐藏而非置灰),只读查看保留。
  • 服务端对 data update/delete 与 index create/update/delete 五个写接口返回统一
    业务错误,读接口不受影响。

检索与重处理

  • 向量侧由 indexes.dataId 反查结构性保证隔离,待索引数据没有索引项,天然不命中;
    Mongo 全文侧在反查主数据时校验状态,milvus 侧全文随向量写入。
  • 模型切换与同义词重建只选择已完成索引的数据,待索引数据既不参与重建也不产生第二条
    任务,重建链正常收敛且无 rebuilding 残留;同义词启用时预落库数据写入与创建路径
    同源的 synonymVersion。

兼容

  • 无 indexStatus 的历史数据在运行时按 indexed 处理,字段不回填;旧创建任务与正式
    数据重建路径行为不变。集合与训练详情沿用现有状态模型:trainedCount 只统计已完成
    索引的数据,dataAmount 立即包含待索引数据,indexAmount 取自向量计数。

测试

  • 集成:预落库数据与任务共享 dataId 且一一对应、三态流转、Vector 三路分流(旧创建 /
    提前落库 / 正式重建)、QA 一对多与无产出回退、Pro 三种模式的 mode 迁移保留 dataId、
    待索引数据不进入向量与全文召回、五个写接口拒绝待索引数据、模型切换与同义词重建的
    状态过滤、失败到重试复用同一记录与 dataId、集合/数据集删除与 reTraining 的清理、
    无 indexStatus 数据的运行时回退、备份/模板导入先落库且自定义索引经向量阶段逐条保留。
  • 端到端(浏览器):覆盖三态展示与只读入口、写保护、检索隔离、QA 展开、失败留存与
    重试、重建路径选择、数量口径与集合状态;导入来源覆盖 Parse 文件、链接、图片与
    备份/模板。

@ChanZany
ChanZany force-pushed the feat/refact-dataset-training branch 3 times, most recently from f97712b to 999e7d3 Compare September 17, 2026 07:52
@c121914yu c121914yu self-assigned this Sep 17, 2026
@github-actions

Copy link
Copy Markdown

Build and publish successful - Preview fastgpt Image:

ghcr.io/labring/fastgpt-pr:fastgpt_999e7d3dcfaf75bb0b88b30a1caef2ee8e57f35d

🕒 Time: 2026-09-17 16:08:23 (UTC+8)

新增数据三态 `indexStatus` = parsed | indexing | indexed。解析分块、图片导入与
备份/模板导入在内容确定时先写入可见的数据行(parsed),再由下游训练任务把向量
结果写回同一条 dataId,全流程只有一条数据行。

数据与任务

* Parse 分块、图片导入、备份/模板导入在调用方事务内预落库最终分块(parsed、
  indexes 为空),训练任务携带同一 dataId;图片导入据配置继续走 ImageParse、
  图片索引或自动索引分支。集合同步等其它 rawText 调用方维持原有创建路径。
* Vector、QA 与 Pro 的自动/图片/图片解析分支在领取任务时把 parsed 推进为
  indexing;Vector 完成后在同一 Mongo 写入边界内写回向量、全文与 indexed 标记
  并删除训练任务,不产生「全文可见但仍是待索引」或「已 indexed 但无向量」的窗口。
* QA 一对多:源数据复用为第一条叶子(保留 metadata,状态回到 parsed),原任务改派
  为第一条叶子的 chunk 任务并保留 _id/dataId/billId,其余叶子新建 parsed 数据与
  携带 dataId 的任务;入队、数据写入与源任务删除收敛到同一 session。QA 无产出时
  源数据回到 parsed,不增不删数据行。
* 提前落库不复用重建入口,不触发重建接力,数据与任务一对一。

访问控制

* 待索引数据在前端隐藏编辑与删除入口(隐藏而非置灰),只读查看保留。
* 服务端对 data update/delete 与 index create/update/delete 五个写接口返回统一
  业务错误,读接口不受影响。

检索与重处理

* 向量侧由 indexes.dataId 反查结构性保证隔离,待索引数据没有索引项,天然不命中;
  Mongo 全文侧在反查主数据时校验状态,milvus 侧全文随向量写入。
* 模型切换与同义词重建只选择已完成索引的数据,待索引数据既不参与重建也不产生第二条
  任务,重建链正常收敛且无 rebuilding 残留;同义词启用时预落库数据写入与创建路径
  同源的 synonymVersion。

兼容

* 无 indexStatus 的历史数据在运行时按 indexed 处理,字段不回填;旧创建任务与正式
  数据重建路径行为不变。集合与训练详情沿用现有状态模型:trainedCount 只统计已完成
  索引的数据,dataAmount 立即包含待索引数据,indexAmount 取自向量计数。

测试

* 集成:预落库数据与任务共享 dataId 且一一对应、三态流转、Vector 三路分流(旧创建 /
  提前落库 / 正式重建)、QA 一对多与无产出回退、Pro 三种模式的 mode 迁移保留 dataId、
  待索引数据不进入向量与全文召回、五个写接口拒绝待索引数据、模型切换与同义词重建的
  状态过滤、失败到重试复用同一记录与 dataId、集合/数据集删除与 reTraining 的清理、
  无 indexStatus 数据的运行时回退、备份/模板导入先落库且自定义索引经向量阶段逐条保留。
* 端到端(浏览器):覆盖三态展示与只读入口、写保护、检索隔离、QA 展开、失败留存与
  重试、重建路径选择、数量口径与集合状态;导入来源覆盖 Parse 文件、链接、图片与
  备份/模板。
@ChanZany
ChanZany force-pushed the feat/refact-dataset-training branch from 999e7d3 to 09abe9f Compare September 18, 2026 01:23

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants