"云端太贵,网速太慢,我想让大模型住在我家的客厅。"
------一位把 GPU 声卡烧糊的工程师
🧩 什么是 Ollama?
Ollama 是一个本地部署 AI 模型的工具,主打:
- 🛠️ 轻量安装:一句命令即安装
- 📦 离线运行:无需连接云服务
- 🤖 多模型支持:Llama2、Mistral、CodeLlama、Gemma 等
- 🧵 标准接口:OpenAI 兼容 API,能和 Web 前端无缝集成
它让你不再仰望 OpenAI API 的配额上限,也不再担心"今天 LLM 又涨价了吗?"
🚀 一键安装 Ollama
macOS / Linux
arduino
curl -fsSL https://ollama.com/install.sh | sh
Windows
Ollama 提供官方 MSI 安装器:ollama.com/download
安装完成后,在终端输入:
css
ollama --version
如果你看到版本号,说明你的"AI 宿主机"已准备就绪。
📦 拉取并运行模型
比如,我们来体验一个轻量级 LLM:llama2。
arduino
ollama run llama2
首次运行会自动下载模型文件(几十 MB 到几百 MB 不等)。
你也可以换成其他模型:
arduino
ollama run mistral
ollama run codellama
ollama run gemma
模型文件会保存在本地缓存,不重复下载,冷启动一次就能脱离网络。
📡 与前端联动:用 JavaScript 调用 Ollama
Ollama 默认暴露一个 OpenAI 接口兼容的本地服务器,地址:
arduino
http://localhost:11434
前端示例:Fetch 调用 Ollama 模型
javascript
async function askOllama(prompt) {
const response = await fetch('http://localhost:11434/api/generate', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'llama2',
prompt,
stream: false
})
});
const data = await response.json();
return data.response;
}
// 使用示例
askOllama("地球是不是一个 AI 生成的模拟器?")
.then(console.log);
🌟注意:这和调用 OpenAI API 几乎一模一样,除了:
- 地址变成了
localhost
- 不需要 API Key!
- 本地模型更慢但更私有
📤 模型托管与共享
你可以训练、导出自己的模型并上传到 Ollama Hub:
lua
ollama create my-model -f Modelfile
并在本地运行:
arduino
ollama run my-model
还可以使用社区的开源模型(例如 openhermes
, neural-chat
, phi
等)。
🧪 前端集成建议
你可以在 Nuxt/Vue/React 项目中:
- 用
fetch
实现聊天交互框 - 加上
AbortController
处理中断 - 使用
stream: true
模式做实时打印
例如:
php
const controller = new AbortController();
fetch("http://localhost:11434/api/generate", {
method: "POST",
body: JSON.stringify({ model: "llama2", prompt, stream: true }),
headers: { "Content-Type": "application/json" },
signal: controller.signal,
})
.then(async res => {
const reader = res.body.getReader();
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = new TextDecoder().decode(value);
console.log(chunk); // 实时更新文本
}
});
🔐 安全性与本地数据隐私
Ollama 的最大优势之一:
- 离线部署,无需云端
- 可本地处理 PDF、CSV、数据库等私密数据
- 支持嵌入搜索、RAG 技术做文档问答系统
你的 Prompt,不再在服务器上飘来飘去,终于落地成土。
⚡ 常见模型对比(2025)
模型 | 参数量 | 特点 | 适合用途 |
---|---|---|---|
llama2 |
7B~13B | 开源稳定,基础强 | 通用对话、辅助写作 |
mistral |
7B | 小巧高效,反应快 | 本地嵌入、问答系统 |
codellama |
7B+ | 专为代码优化 | 自动补全、编程助手 |
gemma |
2B~7B | Google 推出的小型模型 | 性能优于 size 等级 |
phi |
1.3B | 微型模型 | 快速测试、超轻量嵌入 |
💭 数字浪漫主义结语
"我不想依赖云端的 AI,
我想和一个住在我硬盘里的模型聊天。"
------数字浪漫主义者 Min
Ollama 是 AI 工具民主化的一小步,却是开发者掌控本地算力未来的一大步。
从今天起,你不再是 LLM API 的消费者,而是 它的主机与建构者。
🛠️ 附录:调试技巧速查
问题 | 解决方案 |
---|---|
模型加载卡住 | 检查磁盘空间、网络下载 |
localhost:11434 无法访问 |
检查服务是否启动:ollama serve |
模型过大内存爆炸 | 选择 3B 或 7B 小模型,升级 RAM |
使用前端跨域失败 | 搭配本地代理或加 CORS 头部 |