03 | Ollama:本地大模型部署与调用

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
适用场景 隐私敏感、离线环境、开发调试
相关推荐
wangchunyu1146 小时前
JAVA CompletableFuture异步编程实战
java·开发语言·python
2501_944521598 小时前
Immer 跨端三方库仓颉适配全流程
python·eclipse·django
信誓旦旦的程序猿8 小时前
【Python量化实战宝典 #26】止损与回撤控制手册:移动止损、最大回撤(Python 可跑)
python·1024程序员节·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
2501_944521598 小时前
Deepmerge 跨端三方库仓颉适配全流程
java·python·eclipse·github
Patrick在香港8 小时前
同一行 strftime,两台机器跑出两种日期
python·datetime·时区·locale·日期处理
2601_967987378 小时前
用Python+OpenCV+YOLO写个游戏脚本:从自动瞄准到自动采集的保姆级教程
python·opencv·yolo·目标检测·游戏自动化
meiying88388 小时前
快递单号批量查询Python脚本:从手动到自动化的完整实现
开发语言·python·自动化
人工智能导论实践课8 小时前
【GUI桌面开发3】PyCharm配置外部工具
ide·python·pycharm
一千柯橘8 小时前
LangChain 的实时输出处理: stream_events 和 Streaming
python·langchain·agent
贾公子9 小时前
图片 AIGC 检测接入实战——URL 与 Base64 的取舍、体积校验与「你送过去的可能不是那张图」
python·aigc