03 | Ollama:本地大模型部署与调用
本节演示如何在本地部署大模型(如 DeepSeek-R1),并通过 LangChain 的
ChatOllama接口调用。
一、什么是 Ollama?
Ollama 是一个让你在 本地电脑 上运行大模型的开源工具。不需要云端 API,数据不出本机,适合:
- 隐私敏感 的场景(企业内网、个人数据)
- 离线环境 开发调试
- 低成本 学习和实验(免费,不消耗 API 额度)
Ollama 服务
localhost:11434
下载模型
如 deepseek-r1:1.5b
LangChain
ChatOllama
本地推理
无需网络
二、安装与启动
2.1 安装 Ollama
从 ollama.com 下载并安装。
2.2 拉取模型
bash
# 拉取 DeepSeek-R1 1.5B 版本(轻量,适合入门)
ollama pull deepseek-r1:1.5b
# 查看已安装的模型
ollama list
2.3 验证服务
bash
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:1.5b",
"prompt": "你好"
}'
三、LangChain 调用 Ollama
python
# 03_ollama/LangChain_Ollama.py
from langchain_ollama import ChatOllama
llm = ChatOllama(
base_url="http://localhost:11434", # Ollama 默认地址
model="deepseek-r1:1.5b", # 模型名称
reasoning=False # 是否显示推理过程
)
response = llm.invoke("你好你是谁?")
print(response.content)
参数说明
| 参数 | 说明 |
|---|---|
base_url |
Ollama 服务地址,默认 http://localhost:11434 |
model |
模型名称,格式 模型名:版本 |
reasoning |
DeepSeek-R1 特有,是否输出思考链 |
四、DeepSeek-R1 的特殊之处
DeepSeek-R1 是一个 推理模型,它的输出包含两个部分:
python
# 如果 reasoning=True
response = llm.invoke("1+1等于几?")
print(response.content) # 最终回答
print(response.additional_kwargs) # 包含推理过程
reasoning=True 可查看
用户问题
内部推理
思考链/CoT
最终回答
调试输出
五、云端 vs 本地模型对比
| 对比维度 | 云端 API(DeepSeek/Qwen) | 本地 Ollama |
|---|---|---|
| 部署难度 | 简单(注册即用) | 需要下载模型(几 GB) |
| 推理速度 | 快(GPU 集群) | 取决于本机配置 |
| 模型能力 | 强(千亿参数) | 弱(1.5B~7B 参数) |
| 费用 | 按量付费 | 免费 |
| 隐私安全 | 数据上传云端 | 数据不出本机 |
| 适用场景 | 生产环境 | 开发调试、学习、隐私场景 |
六、常用 Ollama 模型推荐
bash
# 轻量通用模型(1.5B,适合入门)
ollama pull deepseek-r1:1.5b
# 中等规模(7B,平衡性能与资源)
ollama pull qwen2.5:7b
ollama pull llama3:8b
# 更强能力(需要较好 GPU)
ollama pull qwen2.5:14b
ollama pull deepseek-r1:14b
七、小结
| 要点 | 说明 |
|---|---|
| Ollama | 本地运行大模型的开源工具 |
ChatOllama |
LangChain 的 Ollama 集成接口 |
base_url |
Ollama 服务地址,默认 localhost:11434 |
| 模型命名 | 模型名:参数规模,如 deepseek-r1:1.5b |
| 适用场景 | 隐私敏感、离线环境、开发调试 |