Ollama 怎么用:从拉模型到 API 调用的完整入门
Ollama 是一个把开源大模型本地化运行打包好的工具:模型权重、推理服务、模型格式都集成在一起,省去自己折腾 llama.cpp 的麻烦。这篇教程从零走完一遍——装好 Ollama、下载模型、用命令行对话、调 REST API、用 Python SDK 接入,以及让其他应用通过 11434 端口把它接进来。

安装 Ollama
Ollama 在三大主流操作系统上都有官方安装路径,按你的平台挑一个就行。安装完后 ollama 命令会出现在命令行里。
macOS
打开终端执行:
curl -fsSL https://ollama.com/install.sh | sh
或者直接下载 dmg 包手动安装。装完新开一个终端窗口,ollama 命令就应该可用了。
Windows
在 PowerShell 里执行:
irm https://ollama.com/install.ps1 | iex
或者下载 OllamaSetup.exe 双击运行。Windows 装好之后 Ollama 会作为后台服务跑起来,命令行里直接调 ollama 即可。
Linux
跟 macOS 用的是同一个脚本:
curl -fsSL https://ollama.com/install.sh | sh
脚本会处理 systemd 服务、用户组和二进制部署。如果你的发行版需要手工处理,可以参考官方 Linux 手动安装文档(请参考官方文档)。

Docker
官方镜像 ollama/ollama 已经发布到 Docker Hub,可以直接拉:
docker run -d -p 11434:11434 --name ollama ollama/ollama
这条命令把容器的 11434 端口映射到宿主机,名字叫 ollama 并后台运行。Docker 方式适合想跟其他容器化服务一起编排的场景。

拉取模型
Ollama 不会预装任何模型,对话前要先 pull。模型名称格式是 /:,省略标签时默认 latest。
ollama pull gemma4
pull 会把模型权重下载到本地(默认在 ~/.ollama/models),速度取决于模型大小和网络。完整的模型列表见 ollama.com/library,里面按参数量、用途分类,可以根据显存挑合适的。如果拿不准选哪个,先从小一点的开始试。
交互式对话
模型下完以后一行命令就能开聊:
ollama run gemma4
进入交互模式后直接打字回车发送,输入 /bye 退出。如果想用某个特定标签,格式是 ollama run gemma4:,具体可用标签以 library 页面的实际展示为准。
run 在模型还没拉的情况下会自动先 pull 再启动,所以 ollama run gemma4 一把梭也能用。

模型管理
本地模型多了之后下面几个命令用得最多:
ollama list
列出本地所有已下载的模型,包括名称、标签、大小和最后修改时间。
ollama rm gemma4
删除指定模型释放磁盘空间。模型一旦删除,下次用就要重新 pull。建议定期 ollama list 看一下,挑不用的清掉。
REST API 调用
Ollama 启动后会监听本地 11434 端口,提供 REST API。这是最常用的接入方式——任何能发 HTTP 请求的程序都能用。
/api/chat
带对话历史的聊天端点,请求体里给一个 messages 数组按时间顺序排列:
curl http://localhost:11434/api/chat -d '{
"model": "gemma4",
"messages": [{
"role": "user",
"content": "Why is the sky blue?"
}],
"stream": false
}'
stream: false 让服务端一次返回完整结果;改成 true 则按 token 流式返回,方便做打字机效果。
/api/generate
不带对话历史的单次生成端点,适合补全、翻译、摘要这类无状态任务:
curl http://localhost:11434/api/generate -d '{
"model": "gemma4",
"prompt": "Why is the sky blue?",
"stream": false
}'
返回 JSON 里 response 字段就是模型输出。所有可用端点和参数请参考 Ollama 官方 API 文档。

Python SDK
如果要写程序集成,官方 Python 包最省事:
pip install ollama
然后在代码里:
from ollama import chat
response = chat(model='gemma4', messages=[
{
'role': 'user',
'content': 'Why is the sky blue?',
},
])
print(response.message.content)
chat() 是同步调用,返回的对象里 .message.content 就是模型回答。要流式输出的话,用 chat(stream=True) 配合 for 循环拿增量内容。
JS 端对应的是 npm i ollama,用法类似,详见官方 README。

把 Ollama 接进其他应用
本地起好之后,任何支持自定义 Ollama 端点的应用都可以指过来。通用做法是把 API base 设为 http://localhost:11434。
几个常见的搭配:
- Open WebUI:自托管的 Web 聊天界面,后端直接选 Ollama,地址填
http://localhost:11434。 - Dify:可视化搭工作流和私有知识库,模型供应商里选 Ollama,填同样的地址。
- AnythingLLM:桌面端 RAG 应用,把 Ollama 设为默认 LLM 提供方。
- Claude Code / Codex / Copilot CLI:Ollama 提供
ollama launch一键接入,例如ollama launch claude。
具体每个工具的接入步骤见各自的文档,或者参考本站相关教程。
常见坑
Docker 容器内访问宿主 Ollama:如果你的应用也跑在 Docker 里,写 localhost:11434 会连到容器自己。Docker Desktop 下改成 host.docker.internal:11434;Linux 服务器上用宿主机的实际 IP。
模型没拉就跑:直接 ollama run 是 OK 的,会自动 pull;但脚本调 API 时必须先确保 ollama list 里有这个模型,否则 API 会返回 model not found。
端口冲突:11434 被占了的话,Ollama 服务会启动失败。需要改端口的话同步修改客户端那边的配置。
显存不够:大模型在小显存机器上会直接 OOM。换小一点的模型,或者用量化标签(具体可用的量化标签请参考 ollama.com/library 的模型详情页)。
接下来怎么用
到这里你已经能从零把 Ollama 跑起来、拉模型、对话、调 API、用 SDK 写程序,再把它接进其他应用。剩下的事情取决于你想拿它做什么——聊天、RAG 问答、写代码辅助、自动化脚本,都可以基于这一套搭起来。
延伸阅读
- 想横向看看 Ollama 在本地部署工具里处于什么位置,可以读这篇评测:Ollama 本地部署工具评测
- 想搭一个带 Web UI 的本地聊天平台:Ollama + Open WebUI 完整部署教程
- 想做私有知识库问答:Dify + Ollama 私有知识库搭建教程

评论(0)