Ollama 可以用已经下载的本地模型完成离线推理,但“装了 Ollama”不等于整套应用都离线。 你还需要排除云模型、外部搜索、在线嵌入和联网插件,并在断网时验证实际工作流。
这份指南面向想在没有网络的环境中运行助手的人。以下是配置和验收方法,不是我们对某台设备进行过的网络审计报告。
先判断你要离线的是哪一层
| 层次 | 离线前要准备什么 | 容易遗漏的依赖 |
|---|---|---|
| 模型推理 | 完整本地模型文件、能启动的 Ollama 服务 | 实际选到云模型或缺少文件 |
| 聊天界面 | 已安装并能本地打开的界面 | 页面资源、登录或历史记录依赖远程服务 |
| 本地文档问答 | 文档、索引和本地嵌入模型 | 生成模型在本机,嵌入却仍调用云 API |
| 带工具的助手 | 本地可用的工具及数据 | 搜索、网页读取和远程 MCP 服务 |
“模型在本地”只是其中一项。先写明离线时必须完成的任务,例如“读取这一组本地文本,回答三个能从文本核对的问题”。如果任务本身需要今天的网络信息,就不能要求断网后仍得到同样的新信息。
联网阶段准备完整的模型与样本
先在目标机器安装 Ollama,再下载一个适合设备容量的本地模型。用 ollama list 确认模型存在,并记下准确名称;不要仅根据界面上显示的模型名称判断文件已经完整落盘。
在联网状态先跑通一条最小本地任务,并记录启动方式。这样断网后失败时,能区分是原本就没配置好,还是确实还有联网依赖。
把测试材料一并保存到本机:短文本、接近实际长度的文档,以及预期答案。不要只测“你好”,因为它无法暴露文档读取、索引和长上下文的问题。设备容量估算见本地模型怎么选。
禁用 Ollama 的云功能
当前 Ollama 官方 FAQ 提供两种方式:在 ~/.ollama/server.json 设置 disable_ollama_cloud,或为服务进程设置环境变量 OLLAMA_NO_CLOUD=1。禁用后,Ollama 的云模型和网页搜索不可用。
配置字段示例:
{
"disable_ollama_cloud": true
}
如果文件已有其他字段,应合并这项配置,不要覆盖整份文件。改好后重新启动 Ollama,再按下一节验证。环境变量要作用于真正运行服务的进程;在一个终端设置变量,并不会自动改变已经启动的桌面应用或系统服务。
这项设置只控制 Ollama 自己的云功能,不会替你关闭第三方聊天界面、插件或其他程序的联网行为。需要限制整套应用时,还要在应用配置与网络层分别检查。
断网验收:从最小调用逐层加回功能
- 停止原来的测试会话,断开机器的外网连接,再重新打开 Ollama 和实际使用的界面。
- 用
ollama list中记录的本地模型名称执行ollama run 模型名称。这里的“模型名称”是占位符,需要替换。 - 输入一段已经保存在本机的短材料,让它提取明确字段,并人工对照原文。
- 加入较长材料,再验证你实际需要的文档索引、嵌入和检索步骤。
- 关闭并重开应用,再做一次相同任务,排除只是旧会话或缓存看起来可用。
- 记录模型名称、软件版本、启动方式、任务是否成功,以及失败信息。
这能验证被测试功能的离线可用性,不能据此声称机器永远不会尝试联网。若你的要求包括确认出站连接,需要另行检查防火墙或网络日志;无网络时调用成功和没有任何连接尝试是两种证据。
失败时按现象定位
| 现象 | 优先检查 | 下一步 |
|---|---|---|
| 提示模型不存在 | 下载是否完整、名称是否匹配 | 联网补齐目标模型,再重新断网验收 |
| 命令行可用,聊天界面失败 | 界面地址、账户或资源是否依赖网络 | 对照最小调用,检查界面的服务地址 |
| 普通聊天成功,文档问答失败 | 嵌入模型、解析器、索引位置 | 分别测试解析、嵌入和检索,找出第一处失败 |
| 能启动但响应极慢或退出 | 内存、上下文长度、并行请求 | 缩短样本或选择更小模型,再测实际材料 |
| 禁云后某些功能消失 | 原来是否使用云模型或网页搜索 | 明确替代方式,或承认该任务不支持完全离线 |
采购或部署前的最终判断
只有当你的真实任务在重启和断网后都能完成,才把“离线可用”写进部署结论。记录未覆盖的功能,例如语音、图片解析或插件;以后增加这些功能时重做对应测试。
本地运行不自动解决文件权限、日志保存或模型使用许可。是否满足组织的部署要求,需要按实际应用和数据用途检查。本文依照 Ollama FAQ 说明配置,并提供独立的分层验收方法。