fix(retrieval): 按索引策略重建并融合跨空间检索
This commit is contained in:
@@ -23,6 +23,7 @@
|
||||
| F-05 | 聊天忽略 `use_rag` | 没有知识库内容 | 真实 Block 上下文与来源事件 |
|
||||
| F-06 | 本地转写导出未传递限制 | 正文可能发送给远程 Embedding | 持久化本地索引标记 |
|
||||
| F-07 | 推理结束才读取当前模型标识 | 向量与空间错配 | 冻结模型、revision 和设备配置 |
|
||||
| F-08 | 将不同处理策略误判为配置漂移 | 普通与仅本地笔记共存时不能重建 | 按策略校验覆盖,独立检索并融合排名 |
|
||||
|
||||
## 3. F-01 / F-03:模型可用不等于索引可用
|
||||
|
||||
@@ -108,11 +109,18 @@ embedding_local_only: true
|
||||
| 本地限定索引,存在 API | 不请求 API、不解析远程凭据 |
|
||||
| 本地限定后再发普通请求 | API 仍可调用,不泄漏临时限制 |
|
||||
| 推理期间修改设置 | 当前向量与身份一致,下一请求采用新设置 |
|
||||
| 空间混用或索引覆盖不完整 | 严格重建拒绝提交,不混合不同向量空间 |
|
||||
| 普通与仅本地笔记共存 | 分区重建,各自空间内检索,再融合排名 |
|
||||
| 同一策略内空间漂移或覆盖不完整 | 严格重建拒绝提交,整体回滚 |
|
||||
|
||||
本地限定笔记与远程索引并存时,现有完整覆盖检查可能使纯向量查询提示不完整、重建拒绝混合空间;混合检索仍可退到全文检索。不能为获得完整远程索引而绕过本地标记。
|
||||
### F-08:混合处理策略的重建与检索
|
||||
|
||||
提交审阅时已用隔离数据库复现:一篇普通 API 笔记与一篇本地限定笔记共存,配置未变化,全量重建仍返回 `EMBEDDING_SPACE_CHANGED`。此项列为合并阻碍,尚未修复;后续需区分预期的处理策略差异和实际配置漂移,并明确各向量空间的索引覆盖范围。
|
||||
提交审阅时用隔离数据库复现:一篇普通 API 笔记与一篇本地限定笔记共存,配置未变化,全量重建仍返回 `EMBEDDING_SPACE_CHANGED`。原因是重建将全部笔记约束到一个空间,查询也要求单个空间覆盖全部 Block,未区分处理策略。
|
||||
|
||||
本轮追加 SQLite v6,为 Block 保存 `embedding_local_only` 策略。重建分别检查普通和仅本地策略的空间一致性及完整覆盖,仍在同一事务提交;同一策略内模型改变、缺失向量或存储失败仍整体回滚。正常 API 回退不受跨策略差异影响。
|
||||
|
||||
查询按策略生成对应查询向量,在同一个数据库快照中检查两个分区。各分区独立计算相似度,再用 RRF 融合排名,不直接比较不同模型的向量或余弦分数。仅含本地限定笔记时,查询也不请求远程 Embedding;分区失效时纯向量明确报错,混合查询仍可退到全文。
|
||||
|
||||
已有数据库升级后应重建一次索引,将 Vault 中的策略标记同步至 Block。新增和更新笔记自动同步。回归覆盖混合策略、全部本地回退、仅本地查询、单分区缺失和跨分区写入失败回滚;此项合并阻碍已修复。
|
||||
|
||||
本轮在 `backend/` 执行:
|
||||
|
||||
@@ -126,4 +134,6 @@ embedding_local_only: true
|
||||
|
||||
## 9. 工程经验
|
||||
|
||||
F-08 修复后完整后端回归:495 项通过;新增 5 个用例覆盖混合策略重建与查询、全部本地回退、仅本地查询不访问 API、跨分区回滚和不完整分区。现有同策略空间漂移拒绝用例仍通过。
|
||||
|
||||
区分配置、权重安装、推理运行、索引覆盖四种状态;按用户实际启动方式验证;跨异步边界冻结身份;持久化处理限制;增加限制时也验证普通 API 回退没有被破坏。
|
||||
|
||||
Reference in New Issue
Block a user