# Ollama 与离线写作

连接本地模型，并准备一套无需网络连接也能使用的写作工作流。

Ollama 在你的电脑上运行已下载的模型。把它连接到 Oleafly，就可以在稿件旁使用本地 AI。趁有网络连接时准备好模型和文档的依赖项，然后测试你打算离线使用的工作流。

## 安装并启动 Ollama

从[官方下载页面](https://ollama.com/download)安装 Ollama。打开 Ollama，或在终端中启动它的本地服务器：

```sh
ollama serve
```

如果 Ollama 已经在运行，就使用已有的服务器。下载一个适合你电脑的模型。例如：

```sh
ollama pull qwen3:8b
ollama list
```

第一条命令下载模型；第二条列出本地模型。模型大小、可用内存和上下文长度都会影响速度。Ollama 的[文档](https://docs.ollama.com/)介绍了支持的模型和系统设置。

## 检测 Ollama

![设置 → AI 助手 → 提供商与密钥。展开提供商列表底部的 Ollama（本地），检查服务器并选择模型。](https://cdn.oleafly.com/images/screenshots/desktop/docs/settings-providers-dark-window-v2.png#view=519,89,883,902)

1. 打开 **设置 → AI 助手 → 提供商与密钥**。
2. 展开 **Ollama**。
3. 选择 **检测 Ollama**。
4. 查看状态和已安装的模型列表。

如果应用发现 Ollama 已安装但已停止，**启动 Ollama** 会启动它。服务器启动后，或下载了其他模型之后，请选择 **重新检测**。

## 选择本地模型

从检测到的列表中选一个模型，并用卡片上的操作应用它。打开助手，在发送消息之前确认已选中本地模型。

用一份练习文档试试这个：

> 说明这份文档的结构。列出它的各节，不要改动任何文件。

如果要编辑或编译，请使用支持 Oleafly 所需工具行为的模型。请查看模型的能力检测结果；能聊天的模型，并不一定能可靠地执行工具工作流。

## 更改主机

选择 **更改主机（高级）** 来编辑 Ollama 服务器地址。常用的本地主机是 `http://127.0.0.1:11434`。内置的 Ollama 卡片使用服务器主机；`/v1` 后缀属于 OpenAI 兼容端点的配置。

在另一台电脑上运行的服务器属于网络连接。如果希望处理保留在这台电脑上，请使用本地回环地址。

## 改用兼容的提供商

对于自定义的 OpenAI 兼容连接，请使用 Ollama 的端点 `http://localhost:11434/v1/`。Ollama 会接受兼容客户端所要求的 API 密钥字段，而不会把它当作云端凭据。参见 [Ollama 的兼容性指南](https://docs.ollama.com/api/openai-compatibility)和[自定义提供商](/docs/ai-setup/#add-a-custom-endpoint)。

## 离线编译的准备

打开文档，在联网时成功编译一次。Tectonic 会按需下载缺少的 TeX 宏包并缓存起来，Typst 对来自 Typst Universe 的包也是如此。然后启用 **设置 → 通用 → 离线模式** 并再次编译，检查缓存是否足够。离线模式涵盖 LaTeX 和 Typst。

Typst 项目还可以保存自己的包。从 Typst 工具栏打开 **Typst 包**，选择 **将包复制到项目**。Oleafly 会把项目导入的包复制到 `typst-packages` 文件夹，这样项目就能离线编译，也能在其他电脑上编译。

对于系统 TeX 引擎，请在断开网络之前安装所需的发行版和宏包。让图片、参考文献文件、被包含的各节和所需的字体都保存在本地。

## 在没有网络连接的情况下测试

1. 打开你将要使用的项目。
2. 确认 Ollama 正在运行，并且选中了已下载的模型。
3. 断开网络。
4. 编译文档。
5. 让本地模型解释一个段落。
6. 试一试你需要的具体编辑或工具工作流，并检查结果。

写作、本地文件、缓存的编译和本地模型请求都可以继续。在线的文献来源发现、GitHub 同步、云端模型和网络 MCP 服务需要各自的连接。Oleafly 的离线模式控制的是缓存的编译和引用查询；它不是系统级的网络防火墙。

## 断开 Ollama

使用提供商卡片上的 **断开连接**，即可移除 Oleafly 保存的连接。这不会删除安装在 Ollama 中的模型。

## 故障排查

### 未运行

启动 Ollama，确认主机和端口，然后重新检测。如果服务器报告端口已被占用，请先检查现有的实例，再启动另一个。

### 没有已安装的模型

运行 `ollama list`。下载一个模型，等待下载完成，然后在 Oleafly 中重新检测。

### 模型能回答，但不使用工具

查看它的能力状态，并尝试换一个支持工具的模型。先从一个读取项目的小请求开始，再要求它做很长的编辑并编译序列。

### 回复和问题毫不相干

可能是模型的上下文太小。Oleafly 的项目说明和工具会先于你的消息占用空间，4,096 个 token 的上下文甚至可能截断一个简短的请求。请用至少 16,384 个 token 的上下文启动 Ollama 服务器，例如：

```sh
OLLAMA_CONTEXT_LENGTH=16384 ollama serve
```

在 Windows PowerShell 中，运行 `$env:OLLAMA_CONTEXT_LENGTH = "16384"`，然后运行 `ollama serve`。请先退出所有正在运行的 Ollama。这项设置属于 Ollama 服务器，而不属于 Oleafly。更长的对话和更大的项目需要更多上下文，而更多的上下文会占用更多内存。详情请参阅 Ollama 的[上下文长度指南](https://docs.ollama.com/context-length)。

### 本地响应很慢

尝试更小的模型，或更短、更聚焦的请求。附上相关的文件或章节，而不要一次要求审阅整篇学位论文。
