[Bug/Feature] 合并 ChatLab 会话时新会话无语义向量:应移植原会话已建向量 + 仅对新增消息增量生成
Author: Ruoan-486Created Aug 5, 2026Updated Aug 5, 2026
Labelsfeature
描述
合并 ChatLab 会话时,合并出的新会话完全没有语义向量:buildMergedOutput 是纯装配函数,只输出合并后的消息数据,没有任何对语义向量/embedding 的处理。
现状
- 合并功能(
merge.ts→buildMergedOutput)产出全新会话(导出 → 重新导入落地)。 buildMergedOutput(packages/node-runtime/src/merger/index.ts)只做纯去重+排序,不处理向量。- 新会话的
semantic-index要么为空,要么依赖手动/API 触发(POST /_web/ai/semantic-index/build-pending、enable、build、rebuild)。 - 结果:用户合并前各原会话已建好的语义向量全部作废;新会话要么向量为空(AI 检索不到),要么必须全量从零重建(重复耗时/耗 token)。
期望
合并产生新会话时,应当:
- 移植原各源会话已建成的语义向量(按 消息→chunk→embedding 的对应关系继承);
- 只对新增/去重后无向量的消息增量生成 embedding;
- 而不是让新会话向量从零全量重建。
补充背景
合并功能常被用来规避「同会话自动增量匹配失败」(buildPrivateIdentity 因 UID/UIN 不一致或 ownerId 缺失而 stable-id 失败、trailing-messages 不稳定 → 必须走合并)。因此合并后向量丢失/需全量重建的影响面比想象中更大。
Source: ChatLab/ChatLab