模型交付

清理模型缓存而不误删用户数据

清理只作用于可识别并允许删除的模型资源,不得用宽泛目录删除代替数据分类。

审核状态: 内容已校验;中文稿供用户审核 · 2026-10-04 · Fact IDs: COVE-LIFECYCLE-01, COVE-DOWNLOAD-01

直接回答

模型清理应基于分类后的存储清单,而不是清空一个宽泛目录。要区分活动模型、待验收候选、可续传部分下载、派生缓存、日志和用户创建资料。每种受管理制品都要有所有者、身份、路径和可恢复规则。清理只能选择身份已知且生命周期策略允许删除的对象;不能只因为扩展名或文件年龄就推断它可丢弃。空间不足时,解释取舍并让用户做可逆选择,不要删除会话、笔记、图片或唯一可用模型。 本地 ModelDownloader 暴露 deleteModel,会删除当前配置模型文件及其 .tmp 临时文件。ModelManager 能搜索共享模型目录和应用专属备用目录;共享目录与应用专属存储的卸载行为也不同。这些代码事实表明清理必须了解路径和所有权。针对一个变体的清理不能删掉其他变体文件;一个应用也不能在没有协调时清空共享目录。这些是源码观察,不代表已经出现真实用户数据丢失,也不是 Android 所有存储位置的普遍保证。 应明确划分存储类别:活动推理制品、校验中的候选、未完成传输、依赖模型的派生缓存、应用设置、会话与历史、导入媒体和临时诊断。每类记录所属组件、模型修订、能否重建、是否需用户确认,以及是否被其他应用模块读取。派生缓存只有在源数据仍存在时才可能重建;模型本身可能需要经过可信流程重新下载。用户创建资料即使恰巧和模型放在一个目录,也不能因此被当作缓存。 清理应幂等且可审计。先生成删除计划,根据真实文件元数据展示类别和实际候选项,并确保重复执行仍安全。保护被推理引擎映射或被活动下载持有的文件。删除前应先通过锁或所有权协议协调。如果要清理部分文件,先与持久传输记录核对,因为它可能可以续传。删除后确认目标确实不存在,且无关路径仍在。删除失败时应保留清楚的错误状态,不要报告已经腾出空间。 Android 存储策略还有额外边界。应用专属外部文件与应用生命周期相关;共享目录或用户选择的文档具有不同的所有者和权限寿命。不能假设一种应用卸载、权限或清理行为覆盖所有位置。需要时应使用文档化存储接口和用户选择访问;不要只为方便清理而申请宽泛访问权限。备份与本地清理也是两条独立路径,删除本地文件不能证明所有备份副本都被清除。 测试时用受控目录树构造两个变体、一个活动模型、候选文件、有明确传输状态的部分文件、没有状态的孤立临时文件、派生缓存、会话数据库和用户媒体。分别在正常状态、推理正在使用、下载进行中、空间不足、权限丢失及多个模块并行访问时执行清理。断言只删除策略允许的路径。恢复或重下应单独测试;模型离线可用状态也要在清理后重新确认。 ### 操作步骤 1. 盘点存储路径和所有者,将每个目录映射到应用、模型身份、修订、用户数据类别和访问范围,包含共享及应用专属路径。 2. 按生命周期分类记录:活动、候选、部分/可续传、派生缓存、用户创建或临时文件;标明哪些需要明确确认。 3. 先生成带有实际目标路径和预期结果的试运行计划。排除活动或被锁文件,并在删除部分下载前核对传输状态。 4. 由制品所有者执行批准的删除,再检查真实文件系统;删除失败时保留可恢复状态并告知用户。 5. 用多个模型变体、用户数据、并发推理/下载、权限变化和重新安装测试隔离性,确认其他模型和历史保留。 ### 验收标准 - 每个删除路径都映射到明确制品/缓存身份和允许的生命周期规则。 - 正在使用、候选或可能可续传的文件不会在未核对或使用中被删除。 - 用户资料与其他模型变体保持不动,除非用户另行明确选择。 - 清理后核验真实结果并报告失败;不暗示备份被清除或模型已离线就绪。 ### 对照 | 存储类别 | 常见清理决策 | 必要注意 | |---|---|---| | 临时部分下载 | 身份和状态有效时保留,否则隔离 | 不要在写入中删除,也不要假定无用 | | 派生缓存 | 依赖变化时重建或移除 | 保留源资料,并按模型/运行时修订建立键 | | 用户历史和媒体 | 除非用户明确要求,否则保留 | 不能只因靠近模型文件就称为可丢弃缓存 | ### 常见问题 **应用能否删除模型目录内所有文件来释放空间?**没有分类和所有权核对就不安全。目录可能有其他变体、候选模型或可续传数据;用户资料也可能存放在其他位置,必须另行保护。 **所有临时模型文件都可以删除吗?**不可以。有些部分文件只要制品身份与传输状态有效,就可以安全续传。删除前要和所有者记录核对。 **删除本地模型会同时清除备份吗?**不一定。本地文件、Android 备份、设备转移和用户导出属于不同存储流程。除非逐一测试,不要声称全部清除。 **能否连同模型删除全部向量或摘要缓存?**必须先根据依赖规则确认,并且保留重建源数据。用户源记录应保留;缓存应按模型和运行时身份有选择地失效。

模型更新前需要腾空间,但用户想保留历史

应用同时有活动模型、更新候选、先前留下的部分文件、派生结果和会话历史。用户想释放存储,但不希望对话或可用模型消失。

决策

按存储类别展示清单,保护活动所有者,先核对部分下载,只删除身份明确且规则允许的对象。

预期结果

用户可选择可逆清理,应用准确确认删除内容,并保留用户资料与当前可用制品。

需要收集的证据

只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:

  • 目录、文件及所有者清单
  • 活动、候选与可恢复状态
  • 清理前计划和清理后核验结果

收到完整字节流还不够;最终落盘、完整性、运行时加载和恢复路径也必须验证。

实施流程

  1. 枚举路径与所有者. 检查应用专属和共享目录,尽可能将每个文件解析到模型/变体/修订,并识别可写入或读取它的组件。
  2. 分类活动和可恢复状态. 区分活动文件、候选、可续传部分、孤立部分、派生缓存、用户记录、媒体和诊断。把临时文件标记为可丢弃前先问传输所有者。
  3. 展示试运行计划. 按类别汇总实际候选目标,排除打开或锁定文件;允许用户逐类选择,不使用含糊的清空全部操作。
  4. 由正确所有者执行删除. 调用管理对应制品的组件,协调共享目录访问,并确保重复调用幂等。为每个路径保存结果,不假设全都删除成功。
  5. 核对文件系统及恢复. 确认获批目标已删除,活动模型和用户路径仍在;失败时告知用户。重新下载或重建缓存应独立验收。

让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。

验收标准

  • 清理按分类身份和策略选择,不使用宽泛目录或扩展名规则。
  • 保护活动推理、活动下载、可续传文件和用户创建数据。
  • 每项删除都核验,并为失败提供恢复说明。
  • 不把本地清理描述为备份清除或离线就绪证明。

决策对照表

维度选择或证据解读方式
部分下载清理前先核对所有者记录证明身份及状态有效时可能继续续传。
派生缓存按依赖失效仅当源数据与重建规则仍有效时才可重建。
用户记录仅按用户明确选择删除不能因为存放在模型附近就视为可丢弃。

需要避免的失败模式

  • 清空整个模型目录
  • 把任意临时文件都视为无用
  • 将本地删除说成备份也已清除

还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。

最小复现记录

层级记录内容
设备厂商、型号、芯片、内存档位、操作系统版本
软件应用版本和 Git 提交号
模型系列、变体、版本、格式、文件长度、摘要、量化方式
运行时名称、版本、请求后端及实际后端证据
工作负载样例版本、输入摘要、提示词摘要、输出策略
结果完成、失败、取消、回退及保护隐私的诊断信息

发布检查表

  • ☐ 主要搜索问题已回答,且没有未经支持的数字。
  • ☐ 所有模型文件和运行时版本均已固定。
  • ☐ 代表性任务和失败处理策略均有说明。
  • ☐ 生命周期、取消、清理和回退均已测试。
  • ☐ 用户内容与网络边界均有说明。
  • ☐ 结论只适用于被记录的配置。
  • ☐ 新增测试结果时链接到原始方法或证据。

来源与相关证据

中文部署与排错专题见。奇连 AI 端侧专题。

常见问题

应用可以清空整个模型目录吗?

未核对所有者与文件类别前不可以。目录中可能有其他变体、活动候选或可续传字节;用户资料也要独立保护,并确认目录是否共享。

所有部分文件都能安全删除吗?

不能。有些只要制品和传输身份匹配就可续传。删除前应向传输所有者核实,无法识别的状态需隔离处理,并确认没有活动写入。

本地删除是否会清除 Android 备份?

不一定。本地文件、系统备份、设备转移与用户导出是不同位置。没有逐一测试时不能声明全部已清除,应分别核实各存储目的地。

能把模型和派生缓存一起删除吗?

要先确认依赖及可重建来源。用户原始记录应保留;缓存应按模型与运行时修订定向清除,不能为了省空间清空整个数据库。