2026-03-06 12:41:55 +08:00
|
|
|
|
# 公司 NAS 千问小模型 API 配置说明
|
|
|
|
|
|
|
|
|
|
|
|
> 部署位置:公司 NAS Docker(ollama-nas 容器)
|
|
|
|
|
|
> 内网/外网均可调用,无需 API Key
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-10 23:34:53 +08:00
|
|
|
|
## 公司 NAS 配置与推荐模型
|
|
|
|
|
|
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|
|
|
|------|------|
|
|
|
|
|
|
| **型号** | Synology DS1825+ |
|
|
|
|
|
|
| **CPU** | AMD Ryzen Embedded V1500B(4 核 8 线程) |
|
|
|
|
|
|
| **内存** | 8GB;Ollama 容器限制 5GB |
|
|
|
|
|
|
| **推荐模型** | **qwen2.5:3b**(效果更好,约 2GB,适合 5GB 内存) |
|
|
|
|
|
|
| **备选模型** | qwen2.5:1.5b(更省内存,约 1GB) |
|
|
|
|
|
|
|
|
|
|
|
|
已在 NAS 上安装 **qwen2.5:3b** 作为默认推荐,其他终端/应用直接选用该模型即可。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 零、配置到其他地方的速查(复制即用)
|
|
|
|
|
|
|
|
|
|
|
|
| 配置项 | 外网(推荐) | 内网(与 NAS 同网时) |
|
|
|
|
|
|
|--------|--------------|------------------------|
|
|
|
|
|
|
| **BASE URL** | `http://open.quwanzhi.com:11401` | `http://192.168.1.201:11434` |
|
|
|
|
|
|
| **OpenAI 兼容 Base URL** | `http://open.quwanzhi.com:11401/v1` | `http://192.168.1.201:11434/v1` |
|
|
|
|
|
|
| **API Key** | 无需,可填 `ollama` 占位 | 同上 |
|
|
|
|
|
|
| **推荐模型** | `qwen2.5:3b` | 同上 |
|
|
|
|
|
|
| **备选模型** | `qwen2.5:1.5b` | 同上 |
|
|
|
|
|
|
|
|
|
|
|
|
- **进程**:Docker 容器名 `ollama-nas`,镜像 `ollama/ollama:latest`,端口 11434。
|
|
|
|
|
|
- **编排路径**:`/volume1/docker/ollama/docker-compose.yml`。
|
|
|
|
|
|
- **启动/重启**:NAS 上 `sudo docker compose -f /volume1/docker/ollama/docker-compose.yml up -d` 或 `sudo docker start ollama-nas`。
|
|
|
|
|
|
|
|
|
|
|
|
### 在 OpenAI 兼容客户端中填写示例
|
|
|
|
|
|
|
|
|
|
|
|
- **Base URL**:`http://open.quwanzhi.com:11401/v1`
|
|
|
|
|
|
- **API Key**:`ollama`(或不填,Ollama 不校验)
|
|
|
|
|
|
- **Model**:`qwen2.5:3b`(推荐)或 `qwen2.5:1.5b`
|
|
|
|
|
|
|
|
|
|
|
|
### 环境变量(脚本/应用)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 外网
|
|
|
|
|
|
export OLLAMA_BASE_URL="http://open.quwanzhi.com:11401"
|
|
|
|
|
|
|
|
|
|
|
|
# 内网
|
|
|
|
|
|
export OLLAMA_BASE_URL="http://192.168.1.201:11434"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
2026-03-06 12:41:55 +08:00
|
|
|
|
## 一、接口地址
|
|
|
|
|
|
|
|
|
|
|
|
| 环境 | 基础 URL | 说明 |
|
|
|
|
|
|
|------|----------|------|
|
|
|
|
|
|
| **内网** | `http://192.168.1.201:11434` | 与 NAS 同网(如公司 WiFi) |
|
|
|
|
|
|
| **外网** | `http://open.quwanzhi.com:11401` | 任意网络,经 frp 转发 |
|
|
|
|
|
|
|
|
|
|
|
|
外网需确保 **frp 服务端(42.194.245.239)已开放 11401 端口**;若无法访问,请在宝塔/安全组中放行 `11401/TCP`。
|
|
|
|
|
|
|
2026-03-11 00:31:08 +08:00
|
|
|
|
**OpenClaw(如阿猫 Mac)使用千问**:已配置主模型为 `nas-qwen/qwen2.5:3b`,备选 `qwen2.5:1.5b` → `v0/v0-1.5-lg`。若该终端 **DNS 解析超时**(访问 `open.quwanzhi.com` 报 Resolving timed out),可改为 **IP 直连**:在 OpenClaw 的 nas-qwen 里将 `baseUrl` 设为 `http://42.194.245.239:11401/v1`(frp 同机 IP),改完后重启网关即可连通千问。
|
|
|
|
|
|
|
2026-03-06 12:41:55 +08:00
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 二、常用 API 端点
|
|
|
|
|
|
|
|
|
|
|
|
| 用途 | 方法 | 路径 |
|
|
|
|
|
|
|------|------|------|
|
|
|
|
|
|
| 模型列表 | GET | `/api/tags` |
|
|
|
|
|
|
| 生成(流式/非流式) | POST | `/api/generate` |
|
|
|
|
|
|
| 对话(OpenAI 兼容) | POST | `/v1/chat/completions` |
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 三、简单调用示例
|
|
|
|
|
|
|
|
|
|
|
|
### 1. 查看已安装模型
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 外网
|
|
|
|
|
|
curl -s http://open.quwanzhi.com:11401/api/tags | jq .
|
|
|
|
|
|
|
|
|
|
|
|
# 内网
|
|
|
|
|
|
curl -s http://192.168.1.201:11434/api/tags | jq .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 2. 文本生成(curl)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
2026-03-11 00:31:08 +08:00
|
|
|
|
# 外网示例(推荐 qwen2.5:3b,也可用 qwen2.5:1.5b)
|
2026-03-06 12:41:55 +08:00
|
|
|
|
curl -s http://open.quwanzhi.com:11401/api/generate -d '{
|
2026-03-11 00:31:08 +08:00
|
|
|
|
"model": "qwen2.5:3b",
|
2026-03-06 12:41:55 +08:00
|
|
|
|
"prompt": "用一句话介绍厦门",
|
|
|
|
|
|
"stream": false
|
|
|
|
|
|
}' | jq .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
### 3. 对话格式(OpenAI 兼容,便于接入各类客户端)
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
curl -s http://open.quwanzhi.com:11401/v1/chat/completions -d '{
|
2026-03-11 00:31:08 +08:00
|
|
|
|
"model": "qwen2.5:3b",
|
2026-03-06 12:41:55 +08:00
|
|
|
|
"messages": [{"role": "user", "content": "你好,请简短回复"}],
|
|
|
|
|
|
"stream": false
|
|
|
|
|
|
}' | jq .
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 四、环境变量配置(代码里使用)
|
|
|
|
|
|
|
|
|
|
|
|
在应用或脚本中配置 base URL,外网用 11401,内网用 11434:
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
# 外网(默认)
|
|
|
|
|
|
export OLLAMA_BASE_URL="http://open.quwanzhi.com:11401"
|
|
|
|
|
|
|
|
|
|
|
|
# 内网(与 NAS 同网时改用)
|
|
|
|
|
|
# export OLLAMA_BASE_URL="http://192.168.1.201:11434"
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 五、Python 简单配置
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
import os
|
|
|
|
|
|
import requests
|
|
|
|
|
|
|
|
|
|
|
|
# 外网
|
|
|
|
|
|
OLLAMA_BASE = os.environ.get("OLLAMA_BASE_URL", "http://open.quwanzhi.com:11401")
|
|
|
|
|
|
|
2026-03-11 00:31:08 +08:00
|
|
|
|
def chat(text: str, model: str = "qwen2.5:3b") -> str:
|
2026-03-06 12:41:55 +08:00
|
|
|
|
r = requests.post(
|
|
|
|
|
|
f"{OLLAMA_BASE}/api/generate",
|
|
|
|
|
|
json={"model": model, "prompt": text, "stream": False},
|
|
|
|
|
|
timeout=60,
|
|
|
|
|
|
)
|
|
|
|
|
|
r.raise_for_status()
|
|
|
|
|
|
return r.json().get("response", "")
|
|
|
|
|
|
|
|
|
|
|
|
# 使用
|
|
|
|
|
|
print(chat("用一句话介绍厦门"))
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
若用 OpenAI 兼容接口(如 openai 库):
|
|
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
|
from openai import OpenAI
|
|
|
|
|
|
|
|
|
|
|
|
client = OpenAI(
|
|
|
|
|
|
base_url="http://open.quwanzhi.com:11401/v1",
|
|
|
|
|
|
api_key="ollama", # Ollama 不校验,可随意
|
|
|
|
|
|
)
|
|
|
|
|
|
r = client.chat.completions.create(
|
2026-03-11 00:31:08 +08:00
|
|
|
|
model="qwen2.5:3b",
|
2026-03-06 12:41:55 +08:00
|
|
|
|
messages=[{"role": "user", "content": "你好"}],
|
|
|
|
|
|
)
|
|
|
|
|
|
print(r.choices[0].message.content)
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 六、Docker 部署与维护
|
|
|
|
|
|
|
|
|
|
|
|
- **一键部署(本机执行)**:
|
|
|
|
|
|
`bash 群晖NAS管理/scripts/ollama/deploy_ollama_nas.sh`
|
2026-03-11 00:31:08 +08:00
|
|
|
|
会完成:创建目录、上传 compose、启动容器、拉取 qwen2.5:1.5b(及推荐 qwen2.5:3b)、配置 frp 并重启 frpc。
|
2026-03-06 12:41:55 +08:00
|
|
|
|
|
|
|
|
|
|
- **NAS 上手动操作**:
|
|
|
|
|
|
- 编排目录:`/volume1/docker/ollama/`
|
|
|
|
|
|
- 启动:`sudo docker compose -f /volume1/docker/ollama/docker-compose.yml up -d`
|
|
|
|
|
|
- 拉取其他模型:`sudo docker exec ollama-nas ollama pull qwen2.5:3b`
|
|
|
|
|
|
- 查看日志:`sudo docker logs -f ollama-nas`
|
|
|
|
|
|
|
|
|
|
|
|
- **外网端口**:frp 将 **11401** → NAS **11434**,代理名 `nas-ollama`。若未生效,检查 frpc 配置并重启 `nas-frpc`,以及 frps 是否开放 11401。
|
|
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
## 七、接口速查
|
|
|
|
|
|
|
|
|
|
|
|
| 项目 | 值 |
|
|
|
|
|
|
|------|-----|
|
|
|
|
|
|
| 外网 Base URL | `http://open.quwanzhi.com:11401` |
|
|
|
|
|
|
| 内网 Base URL | `http://192.168.1.201:11434` |
|
2026-03-10 23:34:53 +08:00
|
|
|
|
| 推荐模型 | `qwen2.5:3b` |
|
|
|
|
|
|
| 备选模型 | `qwen2.5:1.5b` |
|
2026-03-06 12:41:55 +08:00
|
|
|
|
| 认证 | 无(内网服务,外网经 frp 暴露,按需在 frp 或上层加鉴权) |
|