直接回答
离线就绪必须针对一个具体功能和任务定义,不能由模型名称或整个应用的抽象印象决定。只有当任务依赖的工件确实存在,并且通过了应用实际执行的检查;目标运行时能够初始化;任务需要的本地输入和其他本地依赖齐备;同时,在关闭网络时代表性执行成功,才可以将该任务标为离线就绪。如果应用还有可选云服务、远程更新或网络账户操作,就要把结论限定到测试过的任务,并说明哪些步骤仍需要网络。下载完成只是一个里程碑,并不证明功能可离线使用。 应使用分层状态契约。工件可处于不存在、传输中、已放置或被拒绝状态;校验可分为未配置、未运行、失败或针对可信值已通过;运行时可处于未初始化、加载中、已加载或错误;任务则可能被输入、权限、语言资源或其他依赖阻挡;网络状态也可为已校验、不可用或与某个本地阶段无关。面向用户的“就绪”应从该任务所必需条件的组合推导,不应只由下载器设置的一个布尔值决定。 就绪范围要对用户可见。“这项图片分析可离线使用”比“应用已离线”更窄,也更可测试。某项功能可能需要本地模型,却同时调用远程账户、许可验证、遥测、地图或可选内容服务;另一项功能则可能在本地回退,而云增强版本不可用。记录经过测试的本地路径以及被排除的网络路径。不能因为推理在设备本地执行,就宣称应用完全不会发送任何网络请求。 应使用真正的用户流程进行代表性测试,而不仅是运行时冒烟测试。模型可能加载成功,却无法处理实际输入的 tokenizer 格式;图像路径可能依赖缺失的预处理库;录音可能需要 Android 语音服务;翻译任务可能缺少语言资源包;本地索引也可能为空。需要在飞行模式或可证实阻断网络的环境中,联合检查输入、权限、工件、运行时与输出处理。记录被关闭的网络接口、应用和工件版本、任务、测试输入及结果,但不要编造性能数据。 就绪状态要能撤销。移除工件、撤销权限、删除可选语言包、改变模型变体、升级运行时或丢失存储卷,都可能让任务从就绪变为阻塞。生命周期事件发生后要重新计算状态,不能永久保留一次成功布尔标记。已知失败时说明缺少哪个前置条件;未知时应表示应用无法确认就绪并给出下一项检查。用户输入与历史记录应独立保留,不因模型状态变化而误删。 这是一份状态定义和验收方式,不是设备兼容矩阵,也不是 Cove 产品能力声明。某一构建与路径的一次成功测试,不能证明所有设备、语言、媒体格式、账号状态或未来工件都适用。测试记录需要带版本并明确边界。如果期望摘要为空,就注明完整性检查限制,不应称工件已认证。若仓库尚未对某任务执行断网测试,就保持未验证,不能仅凭架构概念把全局状态标为离线就绪。
不要把进度到百分百等同于就绪
产品页计划在传输完成后标记相机分析已离线就绪,但当前构建尚未测试断网图片处理,也未加载该模型。
决策
先建立覆盖工件、适用检查、运行时、本地依赖和断网实际执行的单任务门槛。
预期结果
产品只表述经过测试的任务范围;依赖被移除时状态退回阻塞。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- 事实卡 ARCH-01、COVE-DOWNLOAD-01;端侧推理与模型下载为不同阶段,文件传输完成不等于任务可用。
- Android offline-first 架构与网络状态官方文档。
收到完整字节流还不够;最终落盘、完整性、运行时加载和恢复路径也必须验证。
实施流程
The required asset inventory, verification status, and airplane-mode acceptance must each be documented as discrete records, then brought together for side-by-side comparison. This side-by-side review makes it possible to see whether every listed artifact is present, each verification result aligns with expectations, and the acceptance criterion in airplane mode is satisfied, supporting a conclusion grounded only in what these records collectively show.
- 明确具体任务. 说明一个用户动作及输出,并列出精确工件版本、运行时、输入、权限、本地资源,以及不包含在离线声明中的远端服务。
- 核对工件与校验. 确认配置路径存在真实文件并记录版本,列出实际运行的校验;期望摘要缺失时要说明限制,不能伪装为校验通过。
- 加载目标运行时. 使用预期应用构建打开候选模型并记录管理器状态,将成功打开模型和成功完成目标任务分别记录。
- 阻断网络依赖. 关闭网络或使用可控的网络阻断环境,记录设置,确认核心任务没有隐藏的远端依赖,并保存断网验证证据。
- 完成代表性流程. 使用确定输入贯穿预处理、推理和结果处理,记录应用、工件及运行时版本与结果,不将个案推广为普遍支持。
- 依状态变化撤销就绪. 测试删除工件、权限撤销、变体切换、运行时升级、卷丢失和可选资源缺失,任一必需条件丢失时须取消ready状态。
验收标准
- 离线就绪绑定具体任务和测试构建,而非模型名称或默认全应用状态。
- 分别记录工件存在、适用校验、加载、本地依赖与断网任务结果。
- 测试结论限定于所用设备、输入、版本、工件和运行时,不扩大为兼容保证。
- 移除前置条件会清除就绪状态并提供真实恢复方式,不删除用户数据。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 下载完成 | 字节抵达目标文件。 | 版本、完整性、加载和实际任务行为仍未知。 |
| 运行时初始化 | 特定运行时路径打开了工件。 | 输入处理、任务、断网条件和其他设备仍待测。 |
| 断网任务通过 | 一个明确记录的流程离线成功。 | 不代表其他功能、语言、设备、未来版本或公开发行。 |
需要避免的失败模式
- 不把下载完成、文件存在、模型加载或单次测试扩大成所有功能的离线保证。
- 必需模型、权限、可选语言包或运行时条件消失后,必须清除旧就绪状态。
Common pitfalls must be avoided by confining any release language to the recorded evidence. Treating download completion as equivalent to readiness ignores the need for verification and successful task execution, while overlooking tokenizer or language assets leaves gaps in the artifact set. Release wording should therefore describe only the recorded verification and acceptance results rather than implying broader capability.
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
下载完成就等于AI功能可以离线了吗?
不等于。工件可能未验证、运行时加载失败、缺少本地资源或依赖远端服务。要在实际断网情况下完成代表性任务后再判断。
一次离线测试能证明整款应用离线运行吗?
不能。结果限于具体任务、构建、模型、输入、运行时和设备;应用其他页面可能有不同本地资源或网络要求,不能扩大此次测试结论。
模型被移除后还要保留就绪状态吗?
不应保留。应在模型、权限、存储、运行时或必需资源变化后重算;条件缺失时阻止任务,待恢复后还要再次测试确认,并记录新状态。