一、简介与适用场景
Ollama 把「在本机跑开源大模型」这件事压缩成了两条命令。它内置模型下载、量化格式管理和一个 OpenAI 兼容的本地服务,装完就能用现有的任何 OpenAI 客户端连上去。
本地部署真正不可替代的价值只有一个:数据完全不出本机。处理合同、病历、内部代码这类内容时,任何云端 API 都存在合规风险,而 Ollama 连网线拔了都能跑。附带的好处是零调用成本、无限流、无额度焦虑。
代价也很实在:效果与云端一线模型有明显差距,且吃硬件。经验值是——7B 级模型在 8GB 显存上能流畅跑,14B 需要 12GB 以上,32B 起步就得 24GB。纯 CPU 也能跑但速度会慢到难以交互。
适合看这篇的情况:处理敏感数据、需要离线可用、或者想在完全不花钱的前提下无限次调用。
二、安装与拉取模型
- 到 Ollama 官网 下载对应系统的安装包,Windows / macOS / Linux 都有。
- 安装完成后打开终端,执行
ollama --version确认安装成功。 - 拉取一个模型,例如
ollama pull qwen2.5:7b。首次拉取需要下载数 GB 数据。 - 执行
ollama run qwen2.5:7b直接在终端里对话,验证模型可用。 - 执行
ollama list查看本地已有的所有模型。
Ollama 安装后会自动在后台常驻一个服务,默认监听 11434 端口。这就是你后面要填的接口地址来源。
三、Base URL 与鉴权
- Base URL:
http://localhost:11434/v1 - 鉴权方式:不需要真实 Key,但多数客户端强制要求填写,随便填
ollama即可 - 对话端点:
/chat/completions
这是全站唯一一个用 http 而非 https 的地址——因为它就在你本机,不经过网络。但也正因如此,如果你的客户端是部署在 https 网站上的网页版,浏览器会以混合内容策略拦截这个请求。解决办法是改用桌面客户端,或给 Ollama 套一层本地 https 反代。
若要让局域网内其他设备访问,需要把服务绑定地址改成 0.0.0.0:设置环境变量 OLLAMA_HOST=0.0.0.0:11434 后重启 Ollama,然后用本机内网 IP 替换 localhost。
四、客户端接入示例
以 Cherry Studio 为例:
- 打开「设置 → 模型服务 → Ollama」。
- API 地址填
http://localhost:11434,客户端会自动补/v1。 - API 密钥随便填一个非空字符串。
- 点「管理」,客户端会自动列出你
ollama list里的所有模型。 - 若显示连接失败,先在浏览器打开
http://localhost:11434,看到Ollama is running才说明服务正常。
五、代码示例
curl:
curl http://localhost:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "qwen2.5:7b",
"messages": [{"role": "user", "content": "用一句话解释什么是 API"}]
}'
Python:
from openai import OpenAI
client = OpenAI(
api_key="ollama", # 占位即可,本地服务不校验
base_url="http://localhost:11434/v1",
)
resp = client.chat.completions.create(
model="qwen2.5:7b",
messages=[{"role": "user", "content": "用一句话解释什么是 API"}],
)
print(resp.choices[0].message.content)
Node.js:
import OpenAI from 'openai';
const client = new OpenAI({
apiKey: 'ollama',
baseURL: 'http://localhost:11434/v1',
});
const resp = await client.chat.completions.create({
model: 'qwen2.5:7b',
messages: [{ role: 'user', content: '用一句话解释什么是 API' }],
});
console.log(resp.choices[0].message.content);
六、常见错误排查
| 错误码 | 现象 | 原因 | 解决方案 |
|---|---|---|---|
| 连接被拒 | ECONNREFUSED | Ollama 服务没启动 | 启动 Ollama,浏览器访问 11434 端口确认 |
| 404 | model not found | 模型没拉取,或标签写错 | 先 ollama pull,用 ollama list 核对完整名 |
| 混合内容拦截 | 网页版客户端连不上 | https 页面无法请求 http 本地服务 | 改用桌面客户端,或配置本地 https 反代 |
| 输出极慢 | 每秒只出几个字 | 显存不足导致回落到 CPU 推理 | 换更小参数或更低量化等级的模型 |
| 进程被杀 | 加载模型时崩溃 | 内存不足 | 关闭其他程序,或换 7B 以下模型 |
| 局域网访问失败 | 其他设备连不上 | 服务只绑定了 127.0.0.1 | 设置 OLLAMA_HOST=0.0.0.0:11434 后重启 |