Skip to content

Commit da7eefa

Browse files
committed
docs(ollama): 添加Ollama使用文档和远程访问配置指南
1 parent 5740d0b commit da7eefa

2 files changed

Lines changed: 272 additions & 0 deletions

File tree

‎ai/docs/ollama/readme.md‎

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
## 🚀 核心命令 (Basic CLI)
2+
3+
最常用的命令行操作。
4+
5+
| 命令 | 说明 | 示例 |
6+
| :--- | :--- | :--- |
7+
| **`ollama run`** | 运行并进入交互模式 (如果没有模型会自动下载) | `ollama run llama3` |
8+
| **`ollama pull`** | 仅下载/更新模型,不运行 | `ollama pull qwen2` |
9+
| **`ollama list`** | 列出本地已下载的模型 | `ollama list` |
10+
| **`ollama rm`** | 删除本地模型 | `ollama rm llama2` |
11+
| **`ollama cp`** | 复制模型 (常用于重命名或备份) | `ollama cp llama3 my-model` |
12+
| **`ollama ps`** | 查看当前正在显存中运行的模型 | `ollama ps` |
13+
| **`ollama show`** | 显示模型详情 (Modelfile, 参数等) | `ollama show --modelfile llama3` |
14+
15+
### 交互模式下的快捷指令
16+
在 `ollama run <model>` 进入对话框后使用:
17+
* `/?`: 获取帮助
18+
* `/bye` 或 `Ctrl + D`: 退出对话
19+
* `/set parameter seed 123`: 临时设置参数
20+
* `/show info`: 查看当前模型信息
21+
* `"""`: 输入多行文本
22+
23+
---
24+
25+
## ⚙️ 模型定制 (Modelfile)
26+
27+
创建自定义的角色(System Prompt)或调整参数。
28+
29+
**1. 创建文件 `Modelfile`**
30+
```dockerfile
31+
FROM llama3
32+
33+
# 设置温度 (越高越有创造力,越低越严谨)
34+
PARAMETER temperature 0.7
35+
36+
# 设置上下文窗口大小 (默认 2048)
37+
PARAMETER num_ctx 4096
38+
39+
# 设置系统提示词 (核心灵魂)
40+
SYSTEM """
41+
你是一个资深的Linux运维专家。
42+
请只回答与Linux、Shell、网络配置相关的问题。
43+
回答要简洁,并优先给出代码示例。
44+
"""
45+
```
46+
47+
**2. 编译模型**
48+
```bash
49+
# 语法: ollama create <新模型名> -f <Modelfile路径>
50+
ollama create linux-expert -f ./Modelfile
51+
```
52+
53+
**3. 运行新模型**
54+
```bash
55+
ollama run linux-expert
56+
```
57+
58+
---
59+
60+
## 🔌 API 调用 (cURL 示例)
61+
62+
Ollama 默认监听 `11434` 端口。
63+
64+
**1. 生成回复 (Generate - 流式)**
65+
```bash
66+
curl http://localhost:11434/api/generate -d '{
67+
"model": "llama3",
68+
"prompt": "为什么天空是蓝色的?"
69+
}'
70+
```
71+
72+
**2. 聊天模式 (Chat - 类似 OpenAI)**
73+
```bash
74+
curl http://localhost:11434/api/chat -d '{
75+
"model": "llama3",
76+
"messages": [
77+
{ "role": "user", "content": "你好,介绍一下你自己" }
78+
],
79+
"stream": false
80+
}'
81+
```
82+
83+
**3. 获取 Embeddings (用于 RAG)**
84+
```bash
85+
curl http://localhost:11434/api/embeddings -d '{
86+
"model": "nomic-embed-text",
87+
"prompt": "Hello world"
88+
}'
89+
```
90+
91+
---
92+
93+
## 🛠️ 服务管理 (Linux Systemd)
94+
95+
针对 Linux 系统的后台服务管理。
96+
97+
| 操作 | 命令 |
98+
| :--- | :--- |
99+
| **启动服务** | `sudo systemctl start ollama` |
100+
| **停止服务** | `sudo systemctl stop ollama` |
101+
| **重启服务** | `sudo systemctl restart ollama` |
102+
| **查看状态** | `sudo systemctl status ollama` |
103+
| **查看日志** | `journalctl -u ollama -f` (排错神器) |
104+
105+
---
106+
107+
## 环境变量 (Environment Variables)
108+
109+
配置 Ollama 行为的关键变量。
110+
*在 Linux 中通过 `sudo systemctl edit ollama.service` 配置*。
111+
112+
| 变量名 | 默认值 | 说明 |
113+
| :--- | :--- | :--- |
114+
| **`OLLAMA_HOST`** | `127.0.0.1` | 设置为 `0.0.0.0` 可允许远程访问 |
115+
| **`OLLAMA_MODELS`** | `~/.ollama/models` | 修改模型存储路径 (如移到大硬盘 `/data/ollama`) |
116+
| **`OLLAMA_KEEP_ALIVE`**| `5m` | 模型加载在显存中的保留时间 (可设为 `24h` 或 `-1` 永久) |
117+
| **`OLLAMA_NUM_PARALLEL`** | `1` | 允许并发处理的请求数量 |
118+
| **`OLLAMA_MAX_LOADED_MODELS`** | `1` | 允许同时加载在显存中的模型数量 |
119+
| **`OLLAMA_ORIGINS`** | `*` | 跨域设置 (CORS),限制允许访问的域名 |
120+
121+
---
122+
123+
## 📦 常用热门模型 (Model Library)
124+
125+
无需死记硬背,去 [ollama.com/library](https://ollama.com/library) 查看。
126+
127+
| 模型名 | 特点 | 适用场景 |
128+
| :--- | :--- | :--- |
129+
| **`llama3`** (8b/70b) | Meta出品,目前最强开源模型之一 | 通用助手,逻辑强,速度快 |
130+
| **`gemma2`** (9b/27b) | Google出品,性能优异 | 通用,知识库丰富 |
131+
| **`qwen2.5`** | 阿里出品,**中文能力极强** | 中文对话,写作,代码 |
132+
| **`mistral`** | 欧洲团队,高性价比 | 英语任务,逻辑推理 |
133+
| **`codellama`** | 专精代码 | 代码补全,Debug |
134+
| **`llava`** | 多模态 (Multimodal) | **图片识别**,图像描述 |
135+
| **`nomic-embed-text`** | 嵌入模型 | 用于构建 RAG (知识库) 系统 |
136+
137+
---
138+
139+
## ⚠️ 远程访问安全清单
140+
141+
如果你配置了远程访问,请核对以下三点:
142+
143+
1. **绑定地址**:`OLLAMA_HOST=0.0.0.0`
144+
2. **防火墙**:`sudo ufw allow 11434` (仅允许可信 IP) 或配置 Nginx 端口。
145+
3. **认证**:**必须**配置 Nginx Basic Auth 或 LiteLLM (因为 Ollama 原生无密码)。
146+
147+
---
148+
149+
### 一键卸载 (Linux)
150+
如果需要重装或清除:
151+
```bash
152+
sudo systemctl stop ollama
153+
sudo systemctl disable ollama
154+
sudo rm /etc/systemd/system/ollama.service
155+
sudo rm -rf /usr/share/ollama /usr/local/bin/ollama
156+
sudo userdel ollama
157+
sudo groupdel ollama
158+
```

‎ai/docs/ollama/remote.md‎

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
默认情况下,Ollama 为了安全,仅绑定在本地地址 (`127.0.0.1` / `localhost`)。要实现远程访问(即让局域网内的其他设备或公网设备访问),你需要修改环境变量 `OLLAMA_HOST`。
2+
3+
以下是针对不同操作系统的详细配置步骤:
4+
5+
---
6+
7+
### 1. Linux (使用 Systemd 服务)
8+
9+
如果你是在 Linux 服务器上通过官方脚本安装的,Ollama 通常作为 systemd 服务运行。
10+
11+
1. **编辑服务配置**:
12+
运行以下命令打开编辑器:
13+
```bash
14+
sudo systemctl edit ollama.service
15+
```
16+
17+
2. **添加环境变量**:
18+
在打开的文件中,添加以下内容(注意要在 `[Service]` 下方):
19+
```ini
20+
[Service]
21+
Environment="OLLAMA_HOST=0.0.0.0"
22+
```
23+
*解释:`0.0.0.0` 表示允许所有 IP 地址访问。如果只想允许特定 IP,也可以填具体 IP,但通常填 `0.0.0.0` 更通用。*
24+
25+
3. **保存并退出**:
26+
按 `Ctrl+O` 保存,`Enter` 确认,然后 `Ctrl+X` 退出(如果是 nano 编辑器)。
27+
28+
4. **重启服务**:
29+
```bash
30+
sudo systemctl daemon-reload
31+
sudo systemctl restart ollama
32+
```
33+
34+
---
35+
36+
### 2. Windows
37+
38+
在 Windows 上,你需要通过系统设置添加环境变量。
39+
40+
1. **退出 Ollama**:
41+
点击任务栏右下角的 Ollama 图标,右键选择 "Quit Ollama"。
42+
43+
2. **设置环境变量**:
44+
* 打开“设置” -> “系统” -> “关于” -> “高级系统设置”。
45+
* 点击“环境变量”。
46+
* 在“系统变量”或“用户变量”区域,点击“新建”。
47+
* **变量名**:`OLLAMA_HOST`
48+
* **变量值**:`0.0.0.0`
49+
* 点击确定保存。
50+
51+
3. **重启 Ollama**:
52+
从开始菜单重新启动 Ollama 应用程序。
53+
54+
---
55+
56+
### 3. macOS
57+
58+
macOS 的配置稍微复杂一点,因为这是通过应用启动的。
59+
60+
1. 打开终端,运行以下命令设置环境变量:
61+
```bash
62+
launchctl setenv OLLAMA_HOST "0.0.0.0"
63+
```
64+
65+
2. **重启 Ollama 应用**:
66+
完全退出 Ollama(顶部菜单栏图标 -> Quit),然后重新打开 Ollama。
67+
68+
*注意:这种方法在重启电脑后可能会失效。如果要永久生效,可能需要创建一个启动脚本或使用 Automator。*
69+
70+
---
71+
72+
### 4. Docker 部署 (最简单)
73+
74+
如果你是使用 Docker 运行 Ollama,只需要在启动命令中添加环境变量即可:
75+
76+
```bash
77+
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama -e OLLAMA_HOST=0.0.0.0 ollama/ollama
78+
```
79+
80+
---
81+
82+
### 5. 关键步骤:防火墙设置
83+
84+
**配置完上述步骤后,如果还是连不上,99% 是因为防火墙。**
85+
86+
* **Linux (UFW)**:
87+
```bash
88+
sudo ufw allow 11434/tcp
89+
```
90+
* **Windows**:
91+
打开“Windows Defender 防火墙”,选择“允许应用通过防火墙”,找到 `ollama.exe` 并确保“专用”和“公用”网络都被勾选。
92+
* **云服务器 (AWS/阿里云/腾讯云)**:
93+
需要在云服务商的控制台(安全组)中放行 **TCP 11434** 端口。
94+
95+
---
96+
97+
### 6. 测试连接
98+
99+
在另一台电脑(或手机)的浏览器中输入:
100+
101+
`http://<安装Ollama电脑的IP地址>:11434`
102+
103+
如果显示 `Ollama is running`,则说明配置成功。
104+
105+
---
106+
107+
### ⚠️ 安全警告 (非常重要)
108+
109+
Ollama 原生 **没有任何用户验证机制**(没有账号密码)。
110+
111+
* 如果将 `OLLAMA_HOST` 设为 `0.0.0.0` 并暴露在公网(Internet),**任何人都可以使用你的显卡资源,甚至可能通过某些手段注入恶意代码**。
112+
* **建议方案**:
113+
1. **局域网使用**:仅在受信任的家庭/公司 WiFi 下使用。
114+
2. **公网使用**:请务必配合 **Nginx 反向代理**(设置 Basic Auth 密码)或者使用 **VPN / Tailscale / SSH 隧道** 进行访问,不要直接暴露端口。

0 commit comments

Comments
 (0)