在本地运行大型语言模型(LLM)不仅能保护数据隐私,还能显著降低 API 调用成本。Ollama 作为一个开源平台,让在本地计算机上部署现代大模型变得异常简单。配合 Python SDK,我们可以轻松构建支持离线使用的 AI 应用。
环境准备
要开始这段旅程,你需要确保本地环境满足以下要求:
- Ollama 服务:安装并启动 Ollama 守护进程。
- Python 3.8+:SDK 依赖较新的 Python 版本。
- 模型资源:本示例将使用
llama3.2:latest和codellama:latest。请确保磁盘空间充足,前者约需 2GB,后者约需 3.8GB。 - 硬件建议:虽然 CPU 也能跑,但若有 GPU 加速,推理速度会有质的飞跃。
搭建基础环境
首先去官网下载对应系统的安装包。Windows 和 macOS 用户直接运行安装程序即可,Linux 用户则可以通过终端执行以下命令:
curl -fsSL https://ollama.com/install.sh | sh
安装完成后,验证一下版本信息:
ollama -v
如果看到版本号,说明服务已就绪。接着启动后台服务:
ollama serve
部分 Linux 发行版可能已自动启动,若提示端口占用可忽略。随后拉取我们需要的模型:
ollama pull llama3.2:latest
ollama pull codellama:latest
这个过程就像拉取 Docker 镜像一样,完成后你可以直接在命令行测试:
ollama run llama3.2:latest
>>> Explain what Python is in one sentence.
Python is a high-level, interpreted programming language known for its simplicity...
退出后,回到 Python 环境安装 SDK:
pip install ollama
对话与文本生成
Ollama 的 Python 库主要提供两个接口:chat() 用于多轮对话,generate() 用于单次生成。理解它们的区别能帮你更灵活地设计应用。
交互式聊天
聊天的核心在于维护上下文。消息通常以字典列表形式传递,包含角色(role)和内容(content)。
from ollama import chat
messages = [
{"role": "user", "content": "Explain what Python is in one sentence."}
]
response = chat(model="llama3.2:latest", messages=messages)
print(response.message.content)
为了保持对话连贯,记得把模型的回复追加到消息列表中。比如你想继续询问关于列表推导式的问题:
messages.append(response.message)
messages.append({
"role": ,
:
})
response = chat(model=, messages=messages)
(response.message.content)


