Skip to content

Ollama 是一个强大的本地大模型部署工具,它通过简洁的命令行和丰富的 API,让开发者能在个人电脑上轻松运行和管理前沿的开源模型。本文将带你全面了解 Ollama 的核心用法,从基础的客户端命令、对话指令,到进阶的 API 集成与性能优化。

Ollama 完全指南:从命令行到API的本地大模型部署实战

Ollama 简介

Ollama 是一个开源的本地大模型部署工具,旨在简化大型语言模型(LLM)的运行和管理。通过简单命令,用户可以在消费级设备上快速启动和运行开源模型(如 Llama、DeepSeek 等),无需复杂配置。它提供 OpenAI 兼容的 API,支持 GPU 加速,并允许自定义模型开发。

核心命令行操作

模型管理高频命令

运行 ollama help 可查看所有命令,以下是高频命令总结:

命令作用描述
ollama serve启动 Ollama 服务(后台运行)
ollama create通过 Modelfile 创建自定义模型
ollama run <模型名>运行指定模型(如 ollama run llama3 --gpu
ollama list列出所有已下载模型
ollama ps查看正在运行的模型
ollama rm <模型名>删除指定模型
ollama pull <模型名>从注册表拉取模型(如 ollama pull deepseek-r1:70b
ollama stop <模型名>停止正在运行的模型
ollama show <模型名>显示模型详细信息
ollama cp <源> <目标>复制模型创建别名

模型下载与运行

下载并运行模型非常简单,一条命令即可完成:

bash
ollama run llama3.2

运行命令后会自动下载模型文件(体积较大,请耐心等待,取决于网络速度和模型大小)。下载完成后,终端会显示输入提示,即可直接与模型进行对话。

其他常见模型运行命令:

  • DeepSeek-R1: ollama run deepseek-r1
  • Llama 3.2 Vision: ollama run llama3.2-vision
  • Phi 4: ollama run phi4
  • Mistral: ollama run mistral
  • Code Llama: ollama run codellama

对话交互技巧

基础对话

在终端直接和模型互动,例如输入:

你是谁?

模型会即时响应。每次对话结束,可通过 Ctrl+D 退出,或直接关闭窗口。

多行输入

使用 """ 包装文本输入多行内容:

>>> """你好,
... 帮我写一段Python求和代码
... """

多模态模型使用

如果需要让模型分析图片(多模态模型),直接在命令里带上图片路径:

bash
ollama run gemma3 "这张图片里有什么?/Users/xxx/Desktop/test.png"

API 调用详解

Ollama 内置 HTTP RESTful API,默认监听在 localhost:11434。你可以通过 Apifox 等工具或直接用代码访问。

核心 API 端点

API 端点方法功能描述
/api/generatePOST生成文本响应
/api/chatPOST生成聊天对话中的下一条消息
/api/createPOST创建模型
/api/tagsGET列出本地可用的模型
/api/showPOST显示模型的详细信息
/api/copyPOST复制模型
/api/deleteDELETE删除模型
/api/pullPOST从Ollama库下载模型
/api/pushPOST将模型上传到Ollama库
/api/embedPOST生成文本的嵌入向量
/api/psGET列出当前加载到内存中的模型
/api/versionGET获取Ollama版本信息

生成文本响应

使用 /api/generate 端点根据给定的提示生成文本响应:

bash
curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "Why is the sky blue?",
  "stream": false
}'

请求参数说明

  • model: 需调用的已下载模型名
  • prompt: 输入的提示文本,即你想问的问题
  • stream: 是否流式输出(truefalse

响应示例

json
{
  "model": "llama3.2",
  "response": "The sky is blue because...",
  "done": true
}

聊天对话

使用 /api/chat 端点生成聊天对话中的下一条消息,支持对话历史:

bash
curl http://localhost:11434/api/chat -d '{
  "model": "llama3.2",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

响应示例

json
{
  "message": {
    "role": "assistant",
    "content": "Hello! How are you today?"
  }
}

模型管理 API

列出本地模型

bash
curl http://localhost:11434/api/tags

响应示例:

json
{
  "models": [
    {
      "name": "llama3:latest",
      "size": 3825819519
    }
  ]
}

创建模型

bash
curl http://localhost:11434/api/create -d '{
  "model": "mario",
  "from": "llama3.2",
  "system": "You are Mario"
}'

使用 Python 调用 API

Ollama 提供了原生的 Python 客户端库,方便集成:

python
import ollama

response = ollama.chat(
    model='llama3.2',
    messages=[
        {'role': 'user', 'content': 'Explain Python decorators in simple terms.'}
    ]
)

print(response['message']['content'])

安装 Python 库[citation-5]:

bash
pip install ollama

使用 JavaScript 调用 API

Ollama 也提供了 JavaScript 库:

javascript
import ollama from "ollama";

const response = await ollama.chat({
  model: "llama3.2",
  messages: [{ role: "user", content: "Why is the sky blue?" }],
});
console.log(response.message.content);

安装 JavaScript 库:

bash
npm install ollama

高级特性

自定义模型创建

通过 Modelfile 可以创建自定义模型,就像 Dockerfile 一样定义模型行为。

Modelfile 示例:

FROM mistral 

SYSTEM "You are Dev_assistant, a witty assistant who always replies with puns but is also extremely helpful."

PARAMETER temperature 0.8

Modelfile 指令说明

指令描述示例
FROM基础模型FROM mistral
SYSTEM系统提示词You are a helpful assistant
PARAMETER修改模型参数PARAMETER temperature 0.8
ADD添加文件ADD config.json /app/config.json

创建和运行自定义模型:

bash
# 创建模型
ollama create Dev_assistant -f Modelfile

# 运行自定义模型
ollama run Dev_assistant

上下文长度调优

Context Length(上下文长度)是模型能"记住"的对话/文本内容上限,单位是 token。Ollama 默认是 4096 个 token,但可以根据需要调整。

设置方法

bash
OLLAMA_CONTEXT_LENGTH=64000 ollama serve

验证设置是否生效:执行 ollama ps,查看输出中的 CONTEXT 列,数值就是当前生效的上下文长度。

⚠️ 注意:调大上下文长度会消耗更多显存,需根据硬件配置合理设置。

模型量化

如果显卡显存不够,可通过"量化"牺牲一点点精度,换更快的运行速度:

bash
# 把FP16格式的gemma3模型量化成q4_K_M(平衡速度和精度)
ollama create --quantize q4_K_M my-quant-model -f Modelfile

常用量化级别:

  • q8_0:8位,精度高
  • q4_K_M:4位,速度快
  • q4_K_S:4位,超轻量化

实用技巧与最佳实践

模型存储路径优化

默认路径可能占用系统盘空间,可以通过环境变量修改:

Windows:新建系统变量 OLLAMA_MODELS,路径设为 D:\ollama\models

Linux/macOS

bash
echo 'export OLLAMA_MODELS=/path/to/your/models' >> ~/.bashrc
source ~/.bashrc

性能监控

使用 --verbose 参数监控资源消耗:

bash
ollama run deepseek-r1:70b --verbose

输出示例:

total duration: 12m1.056s  # 总耗时
load duration: 1.810s      # 模型加载时间
eval rate: 2.09 tokens/s   # 生成速度

常见问题处理

模型下载卡在 99%

bash
Ctrl+C 取消下载 再次运行 `ollama pull <模型名>`
# 进度保留,后续速度可能恢复正常

删除无用模型释放空间

bash
ollama rm 模型名  # 删除指定模型
ollama prune      # 清理未引用的文件

安全加固

默认风险:Ollama 默认监听 0.0.0.0:11434,可能暴露公网。

解决方案:

bash
# 仅允许本地访问
export OLLAMA_HOST=127.0.0.1:11434
# 或通过环境变量设置
OLLAMA_HOST=127.0.0.1:11434 ollama serve

云模型与 Web 搜索

云模型

Ollama 支持云模型,可以在本地运行更大的模型:

bash
ollama run qwen3-coder:480b-cloud

可用的云模型:

  • qwen3-coder:480b-cloud
  • gpt-oss:120b-cloud
  • deepseek-v3.1:671b-cloud

Web 搜索 API

Ollama 提供了 Web 搜索 API,可以增强模型的最新信息获取能力。

cURL 示例

bash
curl https://ollama.com/api/web_search \
  --header "Authorization: Bearer $OLLAMA_API_KEY" \
  -d '{"query": "what is ollama?"}'

Python 示例

python
import ollama
response = ollama.web_search("What is Ollama?")
print(response)

集成 Open WebUI

可以通过 Docker Compose 部署 Open WebUI,获得图形化界面:

yaml
version: '3.8'
services:
  webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: ollama-webui
    ports:
      - "3000:8080"
    volumes:
      - ./webui-data:/app/backend/data
    environment:
      - OLLAMA_BASE_URL=http://127.0.0.1:11434
    restart: unless-stopped

访问地址:http://IP:3000

总结

Ollama 为本地大模型部署提供了简洁而强大的解决方案。通过本文介绍的客户端命令、对话指令和 API 调用方法,你可以快速上手并深入使用 Ollama。无论是基础模型运行、自定义模型创建,还是通过 API 集成到应用中,Ollama 都能满足你的需求。

硬件建议

  • 7B 模型需至少 8GB 内存
  • 13B 模型需 16GB 内存
  • 33B 模型需 32GB 内存

安全第一:避免将 Ollama 端口暴露公网,定期更新版本。

模型选择:根据需求选择,DeepSeek 适合代码生成,Qwen 适合多语言任务。

/src/technology/dateblog/2026/03/20260304-ollama%E6%8C%87%E5%8D%97.html