准备一个离线工作角,不必从更大的模型开始。先问几个朴素的问题:文档是否下载了,模型文件能否找到,手账有没有本地副本,断网后错误提示还能不能看。
这个练习可以安排在任何一个午后。从已有文件清单开始,也能查出不少影响使用的小问题。
下载完成和可用之间还有一步
2026 年 10 月 20 日的 AnyLanguageModel 1.0 介绍把本地与托管模型放到相似 API 下。应用切换方便了,使用者更需要知道当前选中了哪条路径。项目介绍
离线准备至少包括模型、文档、依赖、输入样本和故障说明。检查文件存在只是第一层,第二层是实际启动,第三层才是在断网环境中完成目标任务。
文件清单能先查出哪些问题
保存为 kit.py。这个例子只建立两个临时样本,不会搜集真实私密笔记;清单中缺失的模型故意保持缺失。
from pathlib import Path import hashlib import tempfile root = Path(tempfile.mkdtemp(prefix="offline-kit-")) (root / "manual.txt").write_text("故障时保留草稿", encoding="utf-8") (root / "notes.txt").write_text("教学记录", encoding="utf-8") required = ["manual.txt", "notes.txt", "model.gguf"] report = [] for name in required: path = root / name report.append({ "name": name, "exists": path.is_file(), "sha256": hashlib.sha256(path.read_bytes()).hexdigest() if path.is_file() else None, }) assert [r["name"] for r in report if not r["exists"]] == ["model.gguf"] for item in report: print(item["name"], "存在" if item["exists"] else "缺失") print("清单位置:", root)哈希可以识别文件内容是否变化,不证明模型可信、安全或能够运行。真实模型还需要来源、许可证、格式与运行时兼容性检查。大文件逐块计算哈希,避免一次读入内存;示例文件很小,才使用 read_bytes。
给失败留一个本地出口
如果模型没有准备好,应用应该允许直接记录、手动检索和导出,别把写一段话也变成必须联网的任务。离线故障说明应写清“入口在哪里、草稿保存在哪里、如何重试”,不依赖同一个失效的服务生成说明。
Ollama FAQ 提供禁用云端功能的方法,但完成配置后仍要实测;本文没有替读者执行断网验证。官方 FAQ
代码实跑验证了缺失文件检测,未下载模型、启动服务、验证网络隔离或测试加密备份。整理后的桌面可以很安静,工具的状态却应当足够清楚。