mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-07-04 05:00:00 +08:00
6.8 KiB
6.8 KiB
Knowledge V2 后续待办
本文档记录当前 Knowledge V2 UI 完成后,仍需要继续收敛的限制与后续工作。
只记录已经能从当前代码、计划文档或后端决策文档确认的事项;未确认 UI 稿、未确认产品语义和推测性功能不写入本文。
1. 模型与 RAG 配置
-
创建 / 恢复知识库时,不应继续由 renderer 维护固定
dimensions。- 后续需要从选中的 embedding model 或上游模型能力解析真实维度。
- 在该能力完成前,RAG 面板中的 embedding model 与 dimensions 继续保持只读。
- 参考:
v2-refactor-temp/docs/knowledge/knowledge-ui.md
-
收敛 embedding model 的可选范围与 runtime 支持范围。
- 当前运行时 embedding provider 只明确支持 Ollama。
- 后续要么接入更多 provider 的运行时能力,要么在 UI / 创建流程中限制不可运行的 provider。
- 参考:
v2-refactor-temp/docs/knowledge/knowledge-backend-decisions.md
-
扩展 rerank provider 覆盖。
- 当前知识库 rerank 运行时走
AiService,可用范围取决于 ai-core / provider 层的 rerank 支持。 - 后续如需支持 Voyage / TEI 等 provider,应优先在 provider 层补齐运行时能力。
- 参考:
src/main/services/knowledge/utils/indexing/rerank.ts
- 当前知识库 rerank 运行时走
-
为 chunk / RAG 配置变更提供明确 reindex 流程。
chunkSize/chunkOverlap可更新,但不会自动重建已有 chunk 和向量。- 后续需要在 UI 中明确提示并触发 reindex,避免配置与旧索引长期不一致。
- 参考:
src/main/data/services/KnowledgeBaseService.ts
2. 文件处理与数据源
-
接入
fileProcessorId到实际处理链路。- 当前字段已持久化,但 runtime 处理链路仍未完整消费该配置。
- 后续需要让文件解析、OCR / 预处理 provider 选择真正受该配置控制。
- 参考:
v2-refactor-temp/docs/knowledge/knowledge-backend-decisions.md
-
接入 note 数据源。
- 当前添加数据源里的 note 是占位状态,提交不可用。
- 后续需要接入真实 note picker / note 数据源 API,并替换占位 UI。
- 参考:
src/renderer/pages/knowledge.v2/components/addKnowledgeItemDialog/sources/NoteSourceContent.tsx
-
继续保持
directory展开由 main runtime 负责。- renderer 只提交 owner item 语义,不在页面里展开目录。
- 如果未来允许 nested directory,需要先重新设计 interrupt / reconcile 语义。
- 参考:
src/renderer/pages/knowledge.v2/plans/add-source-confirm-submit.md
3. UI 交互补齐
-
重新接通「知识库文件附加到聊天输入」。
- 该入口此前在
AttachmentButton通过 v2→v1 的KnowledgeRuntime.getFileMetadata桥(main 侧产出 legacyFileMetadata)实现;为避免在 v2 新增FileMetadata生产者,当前已先断开,仅保留本地文件上传。 - 重新接通依赖聊天附件管线整体迁出
FileMetadata(迁到FileEntry/FileHandle),属跨域改动。 - 参考:
src/renderer/pages/home/Inputbar/tools/components/AttachmentButton.tsx、v2-refactor-temp/docs/file-manager/filemetadata-consumer-audit.md
- 该入口此前在
-
补齐数据源列表的大数据量能力。
- 当前列表按 root items 查询,缺少完整分页、排序、子分组筛选和批量操作。
- 非终态 item 目前靠轮询刷新。
- 后续应根据数据规模和 UI 稿补分页 / 虚拟列表 / 排序 / 批量处理等能力。
- 参考:
src/renderer/hooks/useKnowledgeItems.ts
-
补齐更多语言的
knowledge_v2翻译。- 当前主要覆盖
zh-cn/zh-tw/en-us。 - 后续需要确认其他 locale 的回退策略或补齐翻译。
- 参考:
src/renderer/i18n/locales/
- 当前主要覆盖
4. Runtime 与任务队列
-
✅ 持久化任务表 + 自动恢复(Phase 4 已落地)。
- knowledge.prepare-root / knowledge.index-leaf 走
JobManager,jobTable持久化。 - 默认 per-base 并发 5、全局 cap 50;同一 base 的写入仍通过
KnowledgeRuntimeService.runWithBaseWriteLockForBase串行。 recovery: 'retry'+JobManager.onAllReady启动后 60s 跑 startup recovery,自动重新 dispatch 未完成 job。- 参考:
src/main/services/knowledge/tasks/prepareRootJobHandler.ts、src/main/services/knowledge/tasks/indexLeafJobHandler.ts。
- knowledge.prepare-root / knowledge.index-leaf 走
-
收敛失败清理与恢复体验。
- shutdown 不再 fail items;重启后由 startup recovery 自动重新 dispatch(handler 入口对
item.status === 'completed'早退)。 - delete / reindex 走业务层 list + filter +
jobManager.cancel,残留 vectors 由KnowledgeIndexStore.rebuildMaterial的单事务原子性保证不出现双倍 chunk。 - 后续若需要更明确的用户可见恢复入口或后台修复任务,可在此基础上构建。
- 参考:
src/main/services/knowledge/runtime/KnowledgeRuntimeService.ts
- shutdown 不再 fail items;重启后由 startup recovery 自动重新 dispatch(handler 入口对
-
处理 base 删除后的 artifact 清理风险。
- 当前删除 base 会删除 SQLite 记录和向量 artifact。
- 如果 artifact 清理失败,可能留下孤立向量文件。
- 后续可以补 pending cleanup / 重试清理策略。
- 参考:
src/main/services/knowledge/KnowledgeService.ts
5. 迁移与存储边界
-
明确 V1 迁移跳过项的用户影响。
- 当前 V1
memory/videoitem 不迁移。 - 旧知识库层级不重建,迁移 item 默认进入 root。
- 后续需要在 release note 或迁移说明中明确这些行为。
- 参考:
v2-refactor-temp/docs/knowledge/knowledge-schema.md
- 当前 V1
-
向量迁移仍按“保留可映射旧向量”策略执行。
- 不重新切块、不重新 embedding、不重新生成业务 item,也不校正旧知识库业务配置。
- v1 legacy 向量 DB 原地保留不动;迁移成功后作为孤儿文件留在磁盘上,当前不会自动清理。
- 后续如果要释放磁盘,需要在用户确认放弃 v1 后单独增加 cleanup 策略、实现和测试。
- 参考:
v2-refactor-temp/docs/knowledge/knowledge-vector-migrator.md
-
拆分临时镜像的文件类型。
src/shared/data/types/knowledge.ts中仍有知识域临时镜像的FileMetadata。- 后续等独立 file domain schema 稳定后,应迁移到专属文件领域类型。
- 参考:
src/shared/data/types/knowledge.ts
6. 发布与文档收尾
-
✅ Knowledge V2 首条 breaking changes 已落地(
2026-05-20-knowledge-job-auto-recovery.md)。- 后续若再有用户可感知的 v2 变更,继续写入
v2-refactor-temp/docs/breaking-changes/。 - 参考:
v2-refactor-temp/docs/breaking-changes/README.md
- 后续若再有用户可感知的 v2 变更,继续写入
-
更新后端决策文档中已落地的变化。
- 例如 RAG 清空配置、recall stale guard、queue reset/write-lock 语义等近期修复。
- 后续只有行为真正落地后再更新决策文档,避免文档提前承诺。
- 参考:
v2-refactor-temp/docs/knowledge/knowledge-backend-decisions.md