前言

        随着开源大模型的爆发,越来越多开发者希望在本地运行和调试模型,既能保护数据隐私,又能低成本验证想法。但传统部署方式往往涉及复杂的依赖编译、显存调优,劝退了不少初学者。

        本文将介绍 Ollama 这一开箱即用的本地大模型运行框架,并结合 ModelScope(魔搭社区) 的 GGUF 模型库,实现一条命令拉起主流大模型。同时提供 Python 调用代码、常用工具对比以及一个“模型输出自动发邮件”的小彩蛋,助你快速上手本地 AI 应用开发。


一、Ollama:一条命令搞定本地大模型

1.1 什么是 Ollama?

        Ollama 是一个面向终端用户的本地大模型运行框架,它在底层封装了 llama.cpp 推理引擎,屏蔽了复杂的编译和配置过程。支持 macOS / Windows / Linux / Docker,真正做到开箱即用。

核心优势:无需手动下载权重、无需配置 CUDA 环境变量,一条命令即可运行主流开源模型。

1.2 安装与常用命令

Linux 一键安装
curl -fsSL https://ollama.com/install.sh | bash
Docker 运行方式
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
常用命令速查
命令 说明
ollama run 模型名 下载并运行模型
ollama list 查看已安装模型列表
ollama rm 模型名 删除指定模型
ollama pull 模型名 仅下载模型不运行
ollama serve 启动 API 服务

1.3 一键运行 ModelScope 上的 GGUF 模型

        Ollama 官方模型库已与 ModelScope 打通,可以直接拉取魔搭社区的量化模型:

# 通义千问 2.5 - 3B 指令版
ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF

# DeepSeek-R1 蒸馏版(1.5B)
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF

        下载完成后会自动进入交互式对话界面,直接提问即可。


二、调用大模型接口的三种方式

        Ollama 默认在 http://localhost:11434 提供 HTTP API,兼容 OpenAI 风格和原生格式,方便集成到各类应用中。

2.1 Python 调用(OpenAI 兼容风格)

        如果你的项目已经使用了 OpenAI SDK,只需修改 base_url 即可无缝切换至本地模型。

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:11434/v1",
    api_key="ollama"  # 任意非空字符串均可
)

response = client.chat.completions.create(
    model="qwen3.5:2b",
    messages=[{"role": "user", "content": "天空为什么是蓝色的?"}],
    stream=False
)
print(response.choices[0].message.content)

2.2 Python 调用(Ollama 原生 Client)

        安装 Ollama Python 库:pip install ollama

from ollama import Client

client = Client(host="http://localhost:11434")
response = client.chat(
    model="qwen3.5:2b",
    messages=[{"role": "user", "content": "你叫什么名字?"}]
)
print(response.message.content)

2.3 直接使用 HTTP 接口测试

        通过 curl 调用 /api/generate 端点,适合脚本测试或非 Python 环境。

curl http://localhost:11434/api/generate -d '{
  "model": "modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF",
  "prompt": "为什么天空是蓝色?",
  "stream": false
}'

        返回的 JSON 中 response 字段即为模型生成的文本。


三、三大本地部署工具对比速览

目前主流的本地推理工具有 Ollama、vLLM 和 llama.cpp,它们各有侧重,下表可帮你快速决策。

维度 Ollama vLLM llama.cpp
核心定位 开箱即用 高性能推理服务 极致轻量底层引擎
上手难度 ⭐ 极简 ⭐⭐⭐ 需配置环境 ⭐⭐⭐⭐⭐ 硬核编译调参
运行格式 GGUF HuggingFace (Safetensors) GGUF
硬件依赖 CPU / GPU 自动调度 NVIDIA GPU(强依赖 CUDA) CPU / Apple Silicon / 低配GPU
并发能力 弱(单用户友好) 极强(高并发服务) 弱(单线程)
适用场景 个人开发、快速验证、本地 RAG 企业级 API 服务、多卡并行推理 边缘计算、旧电脑、树莓派

选型建议

  • 普通用户/开发者 → Ollama(省心,专注应用逻辑)

  • 企业服务/N卡环境 → vLLM(吞吐量王者,支持 PagedAttention)

  • 低配硬件/嵌入式 → llama.cpp(纯 CPU 推理也不在话下)


四、彩蛋:模型输出自动发邮件

        将模型生成的内容通过邮件发送,可以用在定时报告、内容推送等场景。以下示例使用 163 邮箱的 SMTP 服务。

import smtplib
from email.mime.text import MIMEText
from ollama import chat

# 调用模型生成信件内容
res = chat(
    model="modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-1.5B-GGUF:latest",
    messages=[{"role": "user", "content": "给你的朋友写一封信"}]
)

# 配置邮件内容
msg = MIMEText(res.message.content, 'plain', 'utf-8')
msg["From"] = "your_email@163.com"
msg["To"] = "receiver@qq.com"
msg["Subject"] = "AI 写给你的信"

# SMTP 发送(163 邮箱示例,请替换为实际账号和授权码)
smtp = smtplib.SMTP()
smtp.connect("smtp.163.com", 25)
smtp.login("your_email@163.com", "授权码")   # 授权码在邮箱设置中生成
smtp.sendmail(msg["From"], msg["To"], msg.as_string())
smtp.quit()
print("邮件发送成功")

注意:不同邮箱服务商的 SMTP 地址和端口可能不同,25 端口在云服务器上可能被禁用,可换用 465 或 587 端口并启用 TLS。


结语

        本地部署大模型的技术门槛已大大降低,Ollama + ModelScope 的组合让开发者能在几分钟内跑起主流模型。根据自身场景(开发调试 / 生产服务 / 边缘设备)选择合适的推理工具,即可高效开启 AI 应用之旅。


参考链接

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐