本地部署大模型,最头疼的无非是环境配置和算力开销。Ollama的出现,直接把门槛拉到了“一行命令”的级别。今天咱们就来盘一盘,如何用Python优雅地调教本地AI。
🚀 一、开箱即用:3行代码跑通对话
Ollama最爽的一点,是装完就能用。不用写繁琐的请求头,不用管token鉴权。我们先拉个gemma3模型,试试最简单的问答:
from ollama import chat
response = chat(model='gemma3:1b', messages=[{
'role': 'user',
'content': '请用一句话解释什么是递归',
}])
print(response['message']['content'])
执行结果(AI输出):
函数调用自身来解决问题的编程技巧。
🔄 二、上下文记忆:让AI记住你说过的话
多轮对话的核心在于传递messages列表。把历史记录塞进去,AI就能“记仇”了。我们模拟一个连续问答:
messages = [{'role': 'user', 'content': '我今年18岁。'}]
chat(model='gemma3:1b', messages=messages)
messages.append({'role': 'user', 'content': '加5年后我几岁?'})
response = chat(model='gemma3:1b', messages=messages)
print(response['message']['content'])
执行结果(AI输出):
根据您之前提到的18岁,加5年后是23岁。
⚡️ 三、流式输出:告别“转圈圈”的等待
如果是生成大段文案,同步等待会很煎熬。开启stream=True,就能像ChatGPT一样一个字一个字往外蹦,体验感拉满:
from ollama import chat
stream = chat(model='gemma3:1b', messages=[{
'role': 'user',
'content': '写一句欢迎词'
}], stream=True)
for chunk in stream:
print(chunk['message']['content'], end='', flush=True)
执行结果(AI输出):
欢迎来到充满可能的AI世界!
💡 优势对比与避坑指南
相比原生的requests调用接口,Ollama的Python库最大的优势是零学习成本。不用记API地址,不用拼接JSON,代码极其清爽。不过也要注意,它目前更侧重于轻量级调用,如果你需要做复杂的RAG(检索增强生成)或Agent(智能体),建议配合LangChain使用。在树莓派等低配硬件上,llama.cpp的极致优化会比Ollama跑得更快。
✨ 结语
Ollama就像一把趁手的瑞士军刀,把复杂的本地模型推理简化成了几行Python代码。无论是做个人知识库,还是折腾智能家居助手,它都能让你把精力专注在业务逻辑上。大家平时用Ollama搞了什么好玩的项目?欢迎在评论区分享你的脑洞!