模型交付

按阶段诊断代理网络中的模型下载超时

把代理相关超时拆成可观察阶段,不将超时直接等同于文件损坏或证书问题。

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

直接回答

代理网络中的下载超时是一种现象,包含多个可能阶段,并不是单一根因。要判断请求走直连还是代理、连接阶段是否完成、响应头是否到达、正文是否已开始后停止,再检查响应状态、最终 URL 和临时文件身份后决定重试。不能把“超时”当作模型文件损坏的证据,也不能为了让代理路径似乎恢复就关闭 TLS 证书验证。超时可能来自网络路由、代理可达性、DNS、TLS 握手、服务端响应或读取停滞;应以证据区分,而非从一条异常标签猜测。 项目下载器使用 HttpURLConnection,配置连接与读取超时,设置 identity 编码并按临时文件长度发送 Range 请求;特定套接字超时或 DNS 失败时可能尝试配置镜像。其他异常返回错误。源码不能证明观察到的任何超时一定由代理造成,也不能证明某个企业代理或门户网络已经获支持。本文应以真实代码路径为跟踪例子,提供诊断方法,而不是声称某错误很常见或在没有日志/复现时提供确定修复。 Android 的 ProxySelector API 说明 URLConnection 如何获取直连或代理路由,并提供向代理选择器报告连接失败的回调。HttpURLConnection 暴露独立的连接和读取超时配置;读取期间未收到数据也可能触发读取超时。Android Studio Network Inspector 只能观察文档列出的 HttpsURLConnection 和 OkHttp 等请求,因此要先确认应用中具体客户端。如果流量不显示,不能由此证明应用没有发出请求。当前项目使用 HttpURLConnection,故调试时需要使用兼容的观察工具或受控埋点。 记录各阶段边界,但不要收集用户内容:请求开始、可观察到的代理选择、DNS/连接结果、TLS 结果、响应头到达、首字节、正文进度、取消以及响应关闭。日志不要包含敏感查询参数或凭据。只有网络策略允许时,才和已知正常的直连测试路线做对比;不要绕过组织规定的代理或证书策略。若使用测试服务器,应分别设置连接延迟、响应头延迟、正文停滞、HTTP 失败和正常范围响应,使失败阶段能够区分。 重试策略是另一项决定。暂时超时可能允许稍后尝试,但只有传输所有者确认部分字节是否属于同一制品、且服务器范围响应能接续该表示时才可续传。在响应状态和范围元数据验证之前不能追加。如果响应头尚未到达,部分文件是否有效仍取决于实际写入与持久化边界,应与清单核对;若正文已开始再停滞,则记录真正落盘的字节。代理或 TLS 阶段失败后切换镜像不一定有用,也可能违反网络政策;不可无限重试。 支持诊断应可操作且安全。记录应用构建、Android 版本、网络路线类别、客户端类型、失败阶段、可得的 HTTP 状态、制品修订和部分文件状态。排除提示词、转写、Bearer Token、Cookie、完整签名 URL 和模型正文。面向用户可以说当前路线未完成,并提供在许可网络上重试、等待或取消;除非证据能识别代理,不应断言代理本身故障。若无法观测代理选择,则明确标为未知。 ### 操作步骤 1. 固定复现环境:应用构建、Android 版本、下载客户端、模型修订、网络策略、代理配置类别及是否存在部分文件。 2. 使用兼容工具拆分阶段,记录 DNS/连接、代理选择、TLS、响应头、首字节和读取停滞;留意 Network Inspector 支持客户端的限制。 3. 检查当前响应和临时状态,保存状态/范围元数据及已写偏移;同一表示未确认前不得续接字节。 4. 在受控服务端每次注入一种延迟或故障。直连比较必须符合网络政策,也不能削弱 TLS 验证。 5. 仅在分类阶段后选择重试、等待、取消或升级处理。记录脱敏诊断,限制重试次数并保留活动模型。 ### 验收标准 - 证据可得时,超时分清连接、响应头和正文读取阶段;未知路线明确保持未知。 - 代理或证书错误不会导致关闭 TLS 校验或绕过网络政策。 - 恢复前核对部分字节与制品身份及范围元数据。 - 支持记录不含隐私内容和凭据,重试有上限,用户可见恢复选项。 ### 对照 | 观察 | 可支持判断 | 不能证明 | |---|---|---| | 连接超时 | 配置的时间内连接未完成 | 单独判定是代理、DNS、路线还是源站导致 | | 响应头后的读取超时 | 响应开始但正文读取未及时返回 | 已收到的模型字节损坏 | | Network Inspector 无事件 | 工具没有捕获到受支持请求 | 进程没有发出任何网络请求 | ### 常见问题 **代理超时是否说明模型文件损坏?**不是。它首先是网络阶段现象。要先判断代理选择、连接、响应头和正文读取状态,再把已落盘部分与模型身份核对。 **能为了企业代理调试关闭证书验证吗?**生产路径中不应这样做。应遵循已批准的信任配置并在受控环境复现;超时或 TLS 错误并不授权降低安全验证。 **为何 Network Inspector 看不到请求?**该工具只支持指定网络客户端。先确认应用实际使用的库;视图没有记录不能单独证明应用未发起请求。 **每次代理超时都应该切换镜像吗?**不应该自动切换。镜像可能仍经过同一路由,或违反网络政策。先分类阶段、核对部分文件,再提供有边界且被允许的重试或用户选择。

配置了系统代理的网络中模型下载停滞

开发者发现一个网络路线能重现传输停滞,另一条路线暂未重现。应用保存了部分模型文件并报告超时类别;团队需要区分连接失败和正文读取停滞,而不能放宽 TLS 或猜文件损坏。

决策

用兼容工具采集路线和阶段信息,核对部分响应身份,并在确认超时边界后决定恢复动作。

预期结果

记录只陈述实际观察;未知路线原因保留未知,应用提供有上限的重试或选择,不绕过安全策略。

需要收集的证据

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

  • HttpURLConnection连接与读取阶段
  • 代理路由及响应观察范围
  • 当前临时文件偏移与制品修订

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

实施流程

  1. 记录复现上下文. 记录应用构建、Android 版本、网络客户端、模型修订、路线类别、代理策略和部分文件是否存在;不保存秘密或用户提示词。
  2. 拆分连接与读取阶段. 用客户端可见日志或受控端点区分代理选择、DNS/连接、TLS、响应头到达、首字节和后续读取停滞,并确认诊断工具支持当前客户端。
  3. 确认诊断工具支持该客户端. 解读缺失网络事件之前,先确认应用使用的连接库受工具支持。可见性不足时,将路线细节标记为未知。
  4. 核对部分制品状态. 读取已持久化偏移和传输记录,验证响应状态及范围续接;确认同一表示前不打开追加写入,避免混合不同修订。
  5. 选择有边界的恢复动作. 分类之后再重试,或给用户等待、取消、合规切换路线等选项。保留活动模型与部分状态,不关闭 TLS,也不无限循环尝试镜像;明确记录未知阶段。

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

验收标准

  • 界面与日志在有证据时区分连接、响应头和正文读取阶段。
  • 未知代理原因保持未知,不建议关闭证书检查或违反网络政策。
  • 恢复前核对部分文件身份和范围响应兼容性。
  • 诊断已脱敏、重试有边界,且用户能看到恢复选择。

决策对照表

维度选择或证据解读方式
连接超时连接阶段观察没有更多证据时不能单独定位为代理、DNS、线路或源站问题。
响应头后读取超时响应阶段观察不代表已收到的模型部分字节损坏。
检查器无请求记录工具可见性限制不能证明应用进程没有发起网络请求。

需要避免的失败模式

  • 把所有 SocketTimeout 都归因于代理
  • 禁用 TLS 验证作为调试捷径
  • 未经范围检查便续传已有字节

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

最小复现记录

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

发布检查表

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

来源与相关证据

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

常见问题

代理超时是否说明模型文件坏了?

不是。它是网络阶段症状。先识别代理选择、连接、响应头和正文读取阶段,再根据制品身份核对部分字节,并保存分阶段诊断记录。

能否关闭证书验证来排查企业代理?

生产路径不要这样做。遵守批准的信任配置并在受控环境测试;超时或 TLS 失败不能作为降低验证强度的依据,也不应建议用户绕过。

Network Inspector 为何没有记录请求?

该工具只支持特定网络客户端。确认应用使用的库;视图中没有记录本身不能证明没有请求,也可能是该工具不支持当前实现。

代理超时后是否应自动改用镜像?

不应自动处理。镜像可能经过相同受限路线或违反政策。先分类阶段并核对部分文件,再提供有边界的获准重试或用户选择。