模型交付

模型所在存储卷不可用时的恢复流程

区别存储路径暂时不可用、文件不存在、访问受限和制品损坏,再决定安全恢复方式。

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

直接回答

存储卷不可用应被处理为模型制品暂时无法访问,而非模型已删除或损坏。先识别文件准确路径及其所属卷,读取该路径当前状态,并将“暂时不可访问”“文件不存在”“完整性校验失败”和“运行时失败”分开记录。如果活动引擎仍映射着该卷中的文件,应由运行时所有者安全停止或释放,再尝试文件访问。保留制品身份与用户状态,随后决定等待卷恢复、使用应用专属副本,还是请用户选择恢复来源。 项目中的 ModelManager 使用位于主外部存储目录下的共享模型路径,并把应用专属模型目录作为备用路径。它会在两个位置搜索选定文件名;下载器也依据当前存储访问状态选择路径。这是代码中多路径行为的证据,不表示 Cove 已支持可移除 SD 卡,也不表示任一指定卷都适合运行模型。Android 的“外部”存储也可以是模拟存储,并由内部数据分区支持。内容应描述实际配置位置和观测到的状态,不要推断硬件类型。 对实际涉及的路径使用平台卷状态 API。Environment.getExternalStorageState(File) 可以返回 mounted、unmounted、removed、只读或 unknown 等状态;StorageManager 可枚举当前可用共享/外部卷,并在支持的 API 级别监听状态变化。这些 API 描述某一时点或事件,成功读取状态后卷仍可能立刻移除。文件操作本身仍可能失败,因此每个边界都要处理 FileNotFoundException、SecurityException 和 I/O 错误,并在重试前复核状态。不要硬编码可移除卷名,也不能假设挂载路径始终不变。 模型存储还要与用户选择的来源文件区分。应用专属模型、共享模型和通过 Storage Access Framework 选中的文档遵循不同授权和生命周期规则。只有选择器确实授予 URI 权限且应用需要后续访问时才持久化该授权;单独保存路径字符串并不能保留提供程序权限。提供程序或卷不可用时,应保留用户选择并说明暂时无法访问,不要静默复制或删除内容。也不应只为方便备用而请求宽泛文件访问权限。 恢复需要一套所有权状态机。跟踪制品 ID/修订、预期元数据、来源路径或 URI 身份、引擎是否活动、下载是否进行中及最近一次成功校验。下载时卷消失,应停止写入并保留身份明确的部分候选,不得标完成。推理中卷不可用,应通知引擎所有者并转为可恢复不可用状态。存储恢复后,重新核对实际文件身份与可用完整性信息再加载。若存在已验证的应用专属副本,仅在策略允许该准确身份时才可用,不能把名称相似视为等价。 使用多种受控情形测试,而不依赖某个模拟器对外置存储的假设:启动前卷已卸载、下载写入期间卸载、模型加载期间卸载、卷变只读、共享访问被拒或撤销、同一卷重新连接、另一卷挂载到相似路径、文件缺失或损坏。所有情况下都要确认用户历史未受影响。同时测试 ModelManager 的回退搜索顺序和真实路径策略。提示应准确说明应用正在等待、搜索另一个受控路径、请求授权还是需要可信重下,不能在卷只是暂时不可用时说“模型已删除”。 ### 操作步骤 1. 盘点每种模型路径:应用专属/私有、共享外部路径及用户选择 URI。记录制品身份、所有者、权限来源以及路径是否可变。 2. 针对相关路径读取存储卷状态,并在每次文件操作处处理错误。区分不可用、只读、文件缺失、权限拒绝和摘要失败。 3. 协调运行时与下载所有者。移动或重开路径前释放映射文件的引擎,停止活动写入并保留传输记录和部分文件身份。 4. 重挂载后核对相同修订;有可信元数据时验证长度/摘要后再加载。仅在身份和策略均匹配时使用备用副本。 5. 在启动、传输、加载和推理阶段测试卷移除与恢复,确认用户记录完好,文案区分不可用、删除和损坏。 ### 验收标准 - 应用能识别配置路径及当前存储访问状态,不假设物理可移除性。 - 卷不可用不会被误判为制品损坏或已删除;活动引擎与写入所有权都安全处理。 - 卷恢复后只有匹配且通过验证的制品可以加载;其他卷同名文件不会自动获信任。 - 用户历史与无关文件保持不变,并显示等待、授权、获准回退或重新下载等明确选项。 ### 对照 | 状态 | 正确解释 | 不安全推断 | |---|---|---| | 卷卸载或移除 | 文件路径暂时不可用 | 制品已损坏或被擦除 | | 挂载卷中缺少文件 | 预期路径没有模型文件 | 其他位置同名文件等价 | | 摘要或加载失败 | 候选未通过内容或运行时检查 | 任意存储错误都是模型完整性失败 | ### 常见问题 **Android 外部存储一定是 SD 卡吗?**不是。主外部存储可能是由内部数据支持的模拟路径。应查询准确路径和系统状态,不能从“外部”一词推断硬件可移除。 **存储卷消失时应用应删除模型吗?**不应。路径不可访问不能证明文件已删除。保留制品身份和用户状态,安全释放活动资源,再提供等待、获准备用路径或恢复操作。 **能否自动加载另一个卷中的同名文件?**不能只凭名称。还应核对修订、可信元数据及备用路径授权;文件名相同不证明字节或来源一致。 **设备或存储变化后文档 URI 一定还能访问吗?**不一定。授权取决于提供程序许可和资源是否可用。重新检查权限及资源,无法恢复时应让用户重新选择,而非猜路径。

模型配置的共享存储路径暂时不可用

模型可能正从共享存储路径加载或下载。卷状态在用户运行任务期间变化,应用需要分辨路径不可访问与模型缺失/损坏,并保护会话数据。

决策

查询准确路径状态,协调引擎与下载所有者,只在备用路径的制品身份符合政策时回退。

预期结果

应用等待、使用已验证的许可副本或请求恢复,不会谎称已删除或丢失历史。

需要收集的证据

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

  • 共享与应用专属模型路径
  • 存储卷状态和引擎所有权
  • 移除、重挂载和回退测试结果

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

实施流程

  1. 确定路径所有者和位置. 记录制品位于应用专属存储、共享外部卷还是用户选中文档,并确定文件所有者与授权来源;不能推断一定可拔除。
  2. 分类当前错误状态. 读取卷状态并检查实际文件操作结果。分别处理卸载、移除、只读、权限拒绝、文件缺失和摘要失败,并记录发生问题的路径阶段。
  3. 安全停止活动读写. 通知引擎所有者并释放映射文件;停止下载器继续写入,保留修订和偏移信息,不在暂时卸载时删除部分文件。
  4. 重挂载后核对或选择备用. 卷返回后先核验制品身份和完整性。只在策略允许同一精确身份时搜索应用专属副本,不能接受仅文件名相同的文件。
  5. 覆盖卷状态测试. 测试启动前不可用、写入中移除、推理中移除、只读、授权撤销、同卷恢复及不同卷恢复,并断言用户路径未改变。

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

验收标准

  • 界面显示准确存储路径状态且不推断介质一定可移除。
  • 卷暂时不可用与模型损坏、缺失、权限失效、成功删除分别处理。
  • 重挂载或回退文件在运行时加载前按准确身份验证。
  • 活动模型和用户历史得到保留,或显示明确恢复选项。

决策对照表

维度选择或证据解读方式
卷不可用等待或恢复授权不要直接把制品标为已删除或损坏。
已挂载路径中缺文件检查获准备用位置同名不证明字节一致。
完整性/加载拒绝隔离候选根据内容或运行时证据判断,不归为通用存储错误。

需要避免的失败模式

  • 把 external storage 当成一定可移除 SD 卡
  • 卷离线就删除或标记模型损坏
  • 只凭文件名接受其他卷上的候选文件

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

最小复现记录

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

发布检查表

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

来源与相关证据

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

常见问题

Android 外部存储就是 SD 卡吗?

不是。主外部存储可由内部数据模拟。应检查准确路径和平台状态,而不是从“外部”一词推断可拔除介质,还要核对卷的当前状态。

卷消失后应删除模型吗?

不应如此。路径不可用不能证明文件已删除。保留身份和用户状态,释放活动资源,并提供等待、获准备用路径或恢复选择,不要误标模型损坏。

另一个卷中的同名文件能直接加载吗?

不能自动接受。要核对修订、可信元数据并确认备用位置已获许可;文件名相似不等于内容或来源相同,也须核查路径归属。

存储设备变化后文档 URI 还有效吗?

不一定。访问依赖提供程序授权和资源状态。重新检查授权与文件,无法恢复时请用户重新选择,而不要猜测路径,并说明当前限制。