直接回答
静态离线词典是带有浏览器交付生命周期的数据产品,并不会自动变成神经翻译系统。先确定体验返回的是人工审核过的词条、短语、词形信息、固定短语命中,还是可选模型生成建议,并明确区分它们。精确键查词可以是确定性的,但词形变化、复合词、音译、方言和多义词仍可能缺失或产生歧义。模型回退也不会让缺失词条自动变成经核实的翻译。 从授权数据集和记录结构开始。每条词典记录应有稳定编号、源语言和目标语言标签、方向、词头、释义、用法标签、可用时的词形链接、来源署名、数据版本和更新日期。若许可要求保留原有编辑文本,不要擅自改写;也不要悄悄丢弃变音符号、文字系统差异或说明。数据许可和应用代码许可分开记录。网页可以免费浏览,并不代表数据可再分发。 浏览器离线能力通常由 Service Worker 与一种或多种存储机制共同实现。Service Worker 可以拦截符合条件的请求并协调应用外壳或数据响应;Cache Storage 保存请求/响应对,IndexedDB 则适合结构化客户端数据。它们的生命周期、配额、来源域作用范围和更新语义不同。缓存不是永久数据库,浏览器也可能回收存储;IndexedDB 的持久性同样受浏览器策略和可用空间影响。应把浏览器视为本地状态提供方,而非永久档案库。 采用版本化缓存策略。新应用外壳写入新缓存名,确认必要文件齐备后再激活,并且只删除本应用所有的旧缓存。大型词典包应带有清单,写明 schema 版本、语种方向、记录数、文件长度,以及发布方提供可信摘要时的值。如果服务端没有可信校验和或签名,就应说完整性尚未认证;浏览器计算的哈希只有在与已信任的参考值比较时才能检测后续字节变化。 更新流程不能让用户在查词中途失去可用版本。下载候选数据期间保留上一个完整词典;校验格式和版本后,再原子切换活动指针。存储空间不足或标签页关闭时,旧版本仍应可用并显示可恢复状态。不要承诺浏览器关闭后 Service Worker 一定会完成长任务。还要提供清楚方式查看已安装语种包、版本,并删除本地文件或数据。 在实际 HTTPS 域名上测试,因为注册 Service Worker 需要安全上下文;开发中的 localhost 是特殊例外。要覆盖首次联网、安装后刷新、断网后新开标签页、应用外壳与词典数据分别可用、更新中断、旧缓存清理、浏览器重启及显式删除。确认断网时语种方向和未命中状态仍清楚。测试结论只适用于受测浏览器和存储场景,不能推出所有浏览器兼容、词典完整或翻译质量。
读者在火车上打开双语词汇表
小型出版方将双语词表做成 Web 应用。读者曾联网打开一次,随后在查找一个变形词之前失去网络。新版本词表已经上线,但设备存储有限;如果更新失败,旧版本必须继续可用。
决策
将人工审核词条和可选生成建议分开;为词汇数据版本化;通过 Service Worker 缓存应用外壳,并选择明确的数据存储策略;只有验证通过后才切换。
预期结果
读者可以在断网时使用已安装词表,知道某个词是精确命中还是未解决;更新中断时,最后一份完整数据仍然可用。
需要收集的证据
只有将以下证据与同一模型文件和测试运行关联起来,结论才可复核:
- ARCH-01:端侧推理与普通静态词典查询是不同运行路径。
- COVE-MODEL-02:模型配置中的摘要边界提醒我们不能把未验证的文件说成完整性已认证。
任务质量需要有版本记录的语料和验收规则;流畅的单条样例不等于准确度结果。
实施流程
- 定义词条、语种方向和数据授权. 选定准确的数据来源和再分发许可。每条记录拥有稳定编号、语种标签、方向、释义、可用的词形关联、署名、schema 版本和数据修订号。
- 按职责选择浏览器存储. 用 Service Worker 与 Cache Storage 管理应用外壳等请求/响应资源和不可变词包文件;如需保存结构化词条或更新索引,可使用 IndexedDB。记录来源域范围、配额失败方式,以及每个本地副本如何删除。
- 安装有版本的应用外壳. 通过 HTTPS 提供应用,注册 Service Worker,只缓存明确归本应用所有的资源,并确保断网回退能说明当前有哪些词典数据。不要暗示首次安装无需下载。
- 安全校验并切换词典版本. 下载候选清单和文件期间保留活动词包。检查 schema、语种方向、记录数、文件长度,以及存在可信来源时的摘要。只有全部通过后才切换活动版本,否则继续保留旧词包。
- 设计查词和不确定性反馈. 把精确词条、词形建议、多义词和未命中显示为不同状态。保留文字系统、变音符号和方向。如果可选本地模型生成建议,要标记其为生成内容,并与人工审核词典分开。
- 测试断网转换与用户控制. 在线测试安装和更新,再测试断网后的新标签页查词、浏览器重启和更新中断。核对词包版本是否可见、缓存清理只影响本应用,以及显式删除行为;不要声称浏览器存储永久存在。
让每个阶段的状态都可观察。失败信息应指出阶段、模型、运行时和恢复动作,同时避免记录用户私密内容。
验收标准
- 每个词包都记录来源、再分发条款、语种方向、schema 版本和更新身份。
- 更新失败或中断时,上一份完整词包仍可使用,未完整写入的候选版本不会成为活动数据。
- 断网时精确词条、多义释义、词形建议、模型生成建议和未命中结果仍明确区分。
决策对照表
| 维度 | 选择或证据 | 解读方式 |
|---|---|---|
| 仅联网词典 | 每次查询都请求远端服务 | 可以使用最新服务器数据,但网络不可用时不满足离线查词需求。 |
| Service Worker 与 Cache Storage | 缓存应用资源和不可变响应 | 可以协调离线请求,但缓存不永久,也不能代替结构化词典数据管理。 |
| IndexedDB 词条存储 | 在浏览器里保存结构化记录与更新元数据 | 支持本地索引查询和受控版本更新,但仍受配额、来源域和浏览器存储策略影响。 |
需要避免的失败模式
- 把静态词典查找宣传成神经机器翻译
- 将浏览器缓存当成永久存储
- 覆盖旧词典后才发现新版本不完整
还要避免静默回退、版本未固定、缺少取消处理,以及把不同配置的结果混在一起下结论。失败运行也应与成功记录一并保存。
最小复现记录
| 层级 | 记录内容 |
|---|---|
| 设备 | 厂商、型号、芯片、内存档位、操作系统版本 |
| 软件 | 应用版本和 Git 提交号 |
| 模型 | 系列、变体、版本、格式、文件长度、摘要、量化方式 |
| 运行时 | 名称、版本、请求后端及实际后端证据 |
| 工作负载 | 样例版本、输入摘要、提示词摘要、输出策略 |
| 结果 | 完成、失败、取消、回退及保护隐私的诊断信息 |
发布检查表
- ☐ 主要搜索问题已回答,且没有未经支持的数字。
- ☐ 所有模型文件和运行时版本均已固定。
- ☐ 代表性任务和失败处理策略均有说明。
- ☐ 生命周期、取消、清理和回退均已测试。
- ☐ 用户内容与网络边界均有说明。
- ☐ 结论只适用于被记录的配置。
- ☐ 新增测试结果时链接到原始方法或证据。
来源与相关证据
中文部署与排错专题见。奇连 AI 端侧专题。
常见问题
加入 Service Worker 就能让词典完全离线吗?
不能。Worker 可以协调缓存请求,但应用文件和数据必须先成功安装。断网后要逐条测试所需页面和词包。
可以把 Cache Storage 当成永久的词典或模型仓库吗?
不可以。Cache Storage 保存请求/响应数据,浏览器也可能清理或回收存储。应保存版本化清单、处理数据缺失,并在恢复联网时提供可恢复下载。
查词回退到本地模型后,答案就经过词典核实了吗?
没有。生成建议与审核词条属于不同证据类型。要分开展示,并保留歧义或未命中状态,不能把模型生成内容当作权威词条。