Ollama 怎么用:从拉模型到 API 调用的完整入门

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

终端中 Ollama 启动后显示 ASCII logo 的欢迎界面-1
📷 Nick Fewings / Unsplash License / 来源

安装 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 手动安装文档(请参考官方文档)。

Linux 终端执行安装脚本后显示 Ollama 部署成功的输出-2
📷 Brooke Balentine / Unsplash License / 来源

Docker

官方镜像 ollama/ollama 已经发布到 Docker Hub,可以直接拉:

docker run -d -p 11434:11434 --name ollama ollama/ollama

这条命令把容器的 11434 端口映射到宿主机,名字叫 ollama 并后台运行。Docker 方式适合想跟其他容器化服务一起编排的场景。

Docker Desktop 中 ollama 容器在运行状态列表里的截图-3
📷 Thierry Biland / Unsplash License / 来源

拉取模型

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 run 对话界面,模型正在回答用户的问题-4
📷 Gelmis Bartulis / Unsplash License / 来源

模型管理

本地模型多了之后下面几个命令用得最多:

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 文档。

终端用 curl 调用 /api/chat 后看到完整 JSON 响应的截图-5
📷 Christian Lue / Unsplash License / 来源

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。

VS Code 里调用 ollama Python SDK 的代码片段,运行后控制台输出模型回答-6
📷 Brett Jordan / Unsplash License / 来源

把 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 问答、写代码辅助、自动化脚本,都可以基于这一套搭起来。

延伸阅读

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。