AI Agent白手起家24: 本地大模型部署与LangChain接入实战
·
纲要
- 闭源模型与开源本地模型的权衡
- 硬件对推理速度的关键影响
- 本地推理框架选择:Ollama
- 本地部署流程
- 安装 Ollama
- 拉取模型
- 启动 API 服务
- LangChain 接入本地模型
- 安装
langchain-ollama - 使用
ChatOllama进行同步与流式调用
- 安装
- 完整可运行代码示例
闭源模型 vs 开源本地模型
在 AI Agent 开发中,选择模型时通常面临两条路径:
| 对比维度 | 闭源模型(GPT-4、Claude) | 开源本地模型(DeepSeek、Llama) |
|---|---|---|
| 使用方式 | 直接调用 API | 本地部署推理服务 |
| 成本构成 | 按 Token 计费 | 硬件投入 + 运维成本 |
| 数据隐私 | 数据需传输至外部 | 数据完全保留在本地 |
| 硬件要求 | 仅需网络连接 | 需要较高 GPU 或大内存 |
| 灵活性 | 受限于 API 提供的能力 | 可微调、量化、完全自主 |
选用本地开源模型的典型场景包括:数据安全合规要求、长期高频推理的成本控制、离线环境运行。但前提是拥有足够算力,否则推理速度会成为瓶颈。
硬件对推理速度的关键影响
本地推理的性能主要由 GPU 显存和计算单元决定。以 Llama 系列模型为例,不同硬件上的实测 Token 生成速度:
| 硬件 | 7B 参数模型(token/s) | 65B 参数模型(token/s) |
|---|---|---|
| Apple M1 | 9.00 | 1.00 |
| Apple M2 | 28.57 | 3.08 |
| NVIDIA A100 (80GB) | 276.00 | 29.77 |
- 消费级设备(M1/M2)足以运行 7B 量化模型,但大参数模型速度极慢。
- 专业 GPU(如 A100)拥有充足显存,推理速度有数量级优势,适合生产环境。
想要本地流畅运行 DeepSeek-R1 671B 等超大模型需多卡高端 GPU;日常开发使用 7B~13B 量化版本即可。
推理框架:为什么选择 Ollama
Ollama 是当前最友好的本地推理框架之一,具备以下特点:
- 一键安装,命令行操作简单
- 内置模型仓库,覆盖 Llama、DeepSeek、Phi 等主流模型
- 自动处理量化与 GPU 加速
- 提供与 OpenAI 兼容的 REST API(默认
http://localhost:11434) - 活跃的社区更新
本地部署流程
下面以部署 DeepSeek-R1 7B 为例演示完整步骤。
安装 Ollama
从 ollama.com 下载安装包。安装后在终端验证:
ollama --version
拉取模型
下载所需的模型文件:
ollama pull deepseek-r1:7b
查看已安装模型:
ollama list
# NAME ID SIZE MODIFIED
# deepseek-r1:7b ... 4.7 GB ...
启动 API 服务
运行以下命令,模型将以 API 形式在 localhost:11434 提供服务:
ollama serve
使用 curl 快速测试:
curl http://localhost:11434/api/generate -d '{
"model": "deepseek-r1:7b",
"prompt": "你好",
"stream": false
}'
收到 JSON 响应即表示部署成功。
LangChain 接入本地模型
通过官方包 langchain-ollama 即可在代码中调用本地模型。
安装依赖
pip install langchain-ollama
同步调用
from langchain_ollama import ChatOllama
llm = ChatOllama(model="deepseek-r1:7b")
response = llm.invoke("用一句话介绍什么是 AI Agent")
print(response.content)
流式输出
for chunk in llm.stream("写一首关于春天的五言绝句"):
print(chunk.content, end="", flush=True)
项目结构
最小化项目如下:
├── main.py
└── requirements.txt
requirements.txt 内容:
langchain-ollama>=0.1.0
完整可运行代码
将以下代码保存为 main.py,确保 Ollama 服务运行且模型已下载。
from langchain_ollama import ChatOllama
# 初始化本地 DeepSeek-R1 7B 模型
llm = ChatOllama(
model="deepseek-r1:7b",
temperature=0.7,
num_predict=256,
)
print("=== 同步调用 ===")
response = llm.invoke("请用一句话解释什么是强化学习")
print("回答:", response.content)
if response.usage_metadata:
print("Token 用量:", response.usage_metadata)
print("\n=== 流式输出 ===")
prompt = "请写一首关于秋天的七言绝句"
print("用户:", prompt)
print("助手: ", end="")
for chunk in llm.stream(prompt):
print(chunk.content, end="", flush=True)
print()
运行说明:
- 需提前安装
langchain-ollama。 - 确保
ollama serve正在运行,且已执行ollama pull deepseek-r1:7b。 - 若电脑性能较弱,可调小
num_predict或改用更轻量的模型。
关键要点
- 本地开源模型适合隐私敏感、长期高频、离线环境,但需投入硬件成本。
- Ollama 大幅降低了本地部署门槛,推荐作为首选推理框架。
- 通过
ChatOllama接入 LangChain 后,可与 API 模型保持一致的调用接口,方便无缝切换。 - 生产环境中建议将 Ollama 部署到独立的 GPU 服务器上,供团队共享。
更多推荐

所有评论(0)