离线部署大模型Ollama+DeepSeek+Open-WebUI 完整指南

一、整体架构与核心组件

1. 架构流程图

硬件环境
Ollama 运行框架
模型管理
DeepSeek-R1 模型
第三方模型导入
服务暴露
命令行交互
API 服务
局域网访问
Open-WebUI 可视化界面
功能应用
聊天交互
本地知识库
图像生成

2. 核心组件说明

组件 作用 核心优势
Ollama 本地大模型运行框架 跨平台、部署简单、支持模型导入/管理/API调用
DeepSeek-R1 高性能开源大模型(中英文支持) 多参数版本、兼顾速度与精度、支持复杂任务
Open-WebUI 可视化 Web 界面 易用性强、支持 RAG 知识库、多模型切换

二、前置准备

1. 硬件要求(关键)

DeepSeek-R1 版本 模型大小 建议 CPU 建议内存 建议显存 适用场景
1.5B 1.1GB 4核 4~8G 4GB 轻量文本处理、快速响应
7B/8B 4.7G/4.9G 8核 16G 14GB 日常使用、平衡性能与硬件
14B 9GB 12核 32G 26GB 复杂推理、代码生成
32B 20GB 16核 64G 48GB 专业级高精度任务
70B+ 43GB+ 32核+ 128G+ 140GB+ 大规模计算、超复杂任务

注意:纯 CPU 可运行但速度极慢,建议至少 4GB 显存的独立显卡;Mac M 芯片用户优先选择 Apple 原生版本。

2. 环境依赖

  • 操作系统:Windows 10+/macOS 12+/Linux(Ubuntu 20.04+/CentOS 7+)
  • Docker(可选,推荐用于容器化部署)
  • 网络:在线安装需联网,离线部署需提前下载安装包与模型文件

三、Ollama 安装与配置

1. 在线安装(推荐)

系统 安装方式
Windows/macOS 1. 中文站:http://ollama.org.cn/download/
2. 官方:https://ollama.com/download/
Linux 命令行:`curl -fsSL https://ollama.com/install.sh

验证安装:ollama --version 显示版本信息即成功。

2. 离线安装(无网络环境)

(1)Windows/macOS

直接拷贝离线安装包(从联网环境下载)到目标机器,双击安装即可。

(2)Linux
# 1. 创建安装目录
mkdir -p /home/ollama && cd /home/ollama

# 2. 下载对应架构安装包(提前从 GitHub 下载)
# 架构查询:lscpu → x86_64 选 amd64,arm64 选 arm64
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz

# 3. 下载安装脚本
wget https://ollama.com/install.sh

# 4. 修改安装脚本(跳过在线下载)
tar -zxvf ollama-linux-amd64.tgz
chmod +x install.sh
# 编辑 install.sh:注释 curl 下载行,添加本地拷贝
# 原行:curl --fail --show-error ... -o $TEMP_DIR/ollama ...
# 新增:cp ./ollama-linux-amd64 $TEMP_DIR/ollama

# 5. 执行安装
./install.sh

3. 模型存储位置修改(可选)

默认存储目录可能占用系统盘,通过环境变量修改:

系统 操作命令
Windows setx OLLAMA_MODELS "D:\data\ollama\models"(命令提示符)
macOS/Linux echo 'export OLLAMA_MODELS=/data/ollama/models' >> ~/.bashrc && source ~/.bashrc
Docker 启动时挂载卷:-v /data/ollama:/root/.ollama(见下文 Docker 部署)

4. Docker 部署 Ollama(推荐)

# docker-compose.yml
services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - "11434:11434"  # 默认端口
    volumes:
      - /data/ollama:/root/.ollama  # 模型存储目录
    environment:
      - OLLAMA_HOST=0.0.0.0:11434  # 允许局域网访问
      - OLLAMA_ORIGINS=*  # 跨域允许(生产环境限制具体IP)
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]  # GPU 支持(需安装 NVIDIA Docker)

启动命令:docker-compose up -d

四、模型下载与导入(DeepSeek-R1 为例)

1. 在线下载(简单但依赖网络)

(1)官方源
# 下载并运行 8B 版本(平衡性能与硬件)
ollama run deepseek-r1:8b

# 仅下载不运行
ollama pull deepseek-r1:8b
(2)国内源(解决下载慢)
# 魔塔社区(ModelScope)
ollama run modelscope.cn/unsloth/DeepSeek-R1-Distill-Qwen-8B-GGUF:Q4_K_M

# HF 镜像站(hf-mirror)
ollama run hf-mirror.com/unsloth/DeepSeek-R1-GGUF:deepseek-r1-8b-q4_k_m.gguf

2. 离线导入(推荐国内环境)

(1)下载模型文件

从第三方平台下载 GGUF 格式模型文件(如 DeepSeek-R1-8B.gguf):

  • 夸克网盘:https://pan.quark.cn/s/7fa235cc64ef(提取码:wasX)
  • 魔塔社区:https://modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-8B-GGUF
  • HF 镜像:https://hf-mirror.com/unsloth/DeepSeek-R1-GGUF
(2)导入 Ollama
# 1. 进入模型文件目录
cd /data/ollama/gguf

# 2. 创建 Modelfile(指定本地文件)
echo "From ./DeepSeek-R1-8B.gguf" > modelfile-deepseek-8b

# 3. 导入模型(命名为 deepseek-r1:8b)
ollama create deepseek-r1:8b -f modelfile-deepseek-8b

# 4. 验证导入
ollama list  # 查看所有模型
ollama show deepseek-r1:8b  # 查看模型详情

3. 模型管理常用命令

命令 作用
ollama list 列出所有已下载模型
ollama run <模型名> 启动模型交互
ollama stop <模型名> 停止运行中的模型
ollama rm <模型名> 删除模型(释放磁盘空间)
ollama cp <源模型> <新模型> 复制模型(用于自定义微调)

五、Ollama 服务配置

1. 允许局域网访问

默认仅本机访问,修改环境变量开放局域网:

系统 配置命令
Windows setx OLLAMA_HOST "0.0.0.0:11434" && setx OLLAMA_ORIGINS "*"
macOS launchctl setenv OLLAMA_HOST "0.0.0.0:11434" && launchctl setenv OLLAMA_ORIGINS "*"
Linux echo 'export OLLAMA_HOST=0.0.0.0:11434' >> ~/.bashrc && source ~/.bashrc
Docker 直接在 docker-compose.yml 中配置环境变量(见上文)

注意:云服务器部署需关闭公网端口,仅开放局域网或通过 Nginx 代理保护。

2. API 调用示例

Ollama 提供 REST API,支持集成到自定义应用:

# 单次请求(非流式)
curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:8b",
  "prompt": "解释什么是大语言模型",
  "stream": false
}'

# 流式响应(实时返回结果)
curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:8b",
  "prompt": "写一段 Python 代码实现快速排序",
  "stream": true
}'

3. 安全防护(云服务器部署)

通过 Nginx 代理添加 API Key 保护:

server {
    listen 8434;  # 自定义公网端口
    server_name your-domain.com;

    location / {
        # 验证 API Key(替换为自定义密钥)
        if ($http_authorization != "Bearer your-api-key-123") {
            return 403;
        }
        # 代理到 Ollama 服务
        proxy_pass http://localhost:11434;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

调用时添加 Header:Authorization: Bearer your-api-key-123

六、Open-WebUI 集成(可视化界面)

1. Docker 部署 Open-WebUI

# docker-compose.yml(与 Ollama 同文件或单独创建)
services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      - "8080:8080"  # Web 访问端口
    volumes:
      - ./open-webui-data:/app/backend/data  # 数据持久化
    environment:
      - OLLAMA_API_BASE_URL=http://ollama:11434/api  # 连接 Ollama 服务
      - HF_ENDPOINT=https://hf-mirror.com  # 国内 HF 镜像
      - ENABLE_OPENAI_API=false  # 禁用 OpenAI API(避免白屏)
      - DEFAULT_MODELS=deepseek-r1:8b  # 默认模型
      - RAG_EMBEDDING_MODEL=bge-m3  # 知识库嵌入模型(需提前 pull)
    depends_on:
      - ollama  # 依赖 Ollama 服务

启动命令:docker-compose up -d

2. 初始化与使用

  1. 访问地址:http://localhost:8080(或局域网 IP:8080)
  2. 注册管理员账号(首次登录)
  3. 核心功能:
    • 聊天交互:选择 deepseek-r1:8b 模型直接对话
    • 本地知识库:上传文档(PDF/Word/TXT),开启 RAG 增强
    • 模型切换:在界面顶部选择已下载的模型
    • 联网搜索:设置 → 联网搜索 → 启用(支持 Bing/博查,需 API Key)

3. 镜像更新

# 拉取最新镜像
docker-compose pull open-webui

# 重启服务
docker-compose up -d --remove-orphans

# 清理旧镜像
docker image prune

七、常见问题解决

1. 模型下载慢/失败

  • 方案 1:间隔重启下载(Windows PowerShell)
    while ($true) {
        if (ollama list | Select-String "deepseek-r1:8b") {
            Write-Host "下载完成!" && break
        }
        Write-Host "重新下载..."
        $process = Start-Process -FilePath "ollama" -ArgumentList "run", "deepseek-r1:8b" -PassThru -NoNewWindow
        Start-Sleep -Seconds 60
        Stop-Process -Id $process.Id -Force
    }
    
  • 方案 2:使用国内源(魔塔/HF 镜像)或离线导入
  • 方案 3:关闭代理软件,直接连接网络

2. 服务无法访问

  • 检查 Ollama 状态:systemctl status ollama(Linux)或任务管理器(Windows)
  • 防火墙开放端口:11434(Ollama)、8080(Open-WebUI)
  • 局域网访问时,确保客户端与服务器在同一网段,使用服务器内网 IP 访问

3. 模型运行卡顿

  • 降低模型参数版本(如 14B → 8B)
  • 关闭其他占用 CPU/显存的程序
  • 确保模型存储在 SSD 中(提升加载速度)
  • GPU 用户安装对应驱动(NVIDIA CUDA/AMD ROCm)

八、参考资料

资源名称 链接
Ollama 官方文档 https://ollama.readthedocs.io
Ollama 中文站 https://ollama.org.cn
DeepSeek 模型 https://huggingface.co/unsloth/DeepSeek-R1-GGUF
Open-WebUI 文档 https://docs.openwebui.com
魔塔社区 https://modelscope.cn
HF 镜像站 https://hf-mirror.com

私有化部署简述

概述

本地私有化部署 ollama、DeepSeek 模型和 open-webui 可视化界面的完整流程,涵盖安装、配置、优化及问题解决方案。

1. ollama 介绍与安装

1.1 ollama 简介

ollama 是一个开源的本地大语言模型运行框架,提供简单便捷的方式在本地部署和运行大型语言模型,支持免费离线使用 LLM 能力,确保数据隐私和安全。

1.2 硬件要求

模型规模 建议 RAM 建议显存 适用场景
1.5B 4-8GB 4GB 轻量级,普通文本处理
7B/8B 16GB 14GB 性能较好,日常使用
14B 32GB 26GB 复杂任务、数学推理、代码生成
32B 64GB 48GB 专业级高精度任务
70B 128GB 140GB 大规模高复杂度任务

实测参考:Mac Studio 2023(M2 Max,32G内存)可流畅运行 deepseek-r1:32b 及以下模型。

1.3 系统安装

Windows/macOS
  • 官方下载:https://ollama.com/download/
  • 国内中文站:http://ollama.org.cn/download/
  • GitHub Releases:https://github.com/ollama/ollama/releases/
Linux
curl -fsSL https://ollama.com/install.sh | bash
离线安装(Linux)
# 下载安装包和脚本
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz
wget https://ollama.com/install.sh

# 修改安装脚本,将curl下载行替换为本地文件
# 原始:curl --fail --show-error --location --progress-bar -o $TEMP_DIR/ollama "https://ollama.com/download/ollama-linux-${ARCH}${VER_PARAM}"
# 替换为:cp ./ollama-linux-amd64 $TEMP_DIR/ollama

# 执行安装
chmod +x install.sh
./install.sh

1.4 Docker 部署

# docker-compose.yml
services:
  ollama:
    image: ollama/ollama
    container_name: ollama
    restart: unless-stopped
    ports:
      - 11434:11434
    volumes:
      - /data/ollama:/root/.ollama
    environment:
      OLLAMA_HOST: 0.0.0.0:11434
      OLLAMA_ORIGINS: "*"

1.5 修改模型存储位置

# Linux/macOS
echo 'export OLLAMA_MODELS=/data/ollama/models' >> ~/.bashrc
source ~/.bashrc

# Windows
setx OLLAMA_MODELS D:\data\ollama\models

2. 模型下载与运行

2.1 基本使用

# 下载并运行模型
ollama run deepseek-r1:1.5b

# 仅下载模型
ollama pull deepseek-r1:8b

2.2 模型来源

  1. 官方源ollama run deepseek-r1:8b
  2. 魔塔社区ollama run modelscope.cn/Qwen/Qwen2.5-3B-Instruct-GGUF
  3. HuggingFaceollama run hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF:Q8_0
  4. HF镜像ollama run hf-mirror.com/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF:Q4_K_M

2.3 离线导入模型

# 创建Modelfile
echo "FROM ./deepseek-r1-8b.gguf" > modelfile-deepseek-r1-8b

# 导入模型
ollama create deepseek-r1:8b -f modelfile-deepseek-r1-8b

# 验证
ollama list
ollama run deepseek-r1:8b

3. API 访问

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:8b",
  "stream": false,
  "prompt": "你是谁"
}'

4. 常见问题解决

4.1 下载速度慢

方法一:断点续传脚本
#!/bin/bash
while true; do
    modelExists=$(ollama list | grep "deepseek-r1:7b")
    if [ -n "$modelExists" ]; then
        echo "模型已下载完成!"
        break
    fi
    echo "开始下载模型..."
    ollama run deepseek-r1:7b &
    processId=$!
    sleep 60
    if kill -0 $processId 2>/dev/null; then
        kill -9 $processId
        echo "已中断本次下载,准备重新尝试..."
    fi
done
方法二:离线下载
  • 夸克网盘:https://pan.quark.cn/s/7fa235cc64ef(提取码:wasX)
  • 魔塔社区:https://modelscope.cn/models/unsloth/DeepSeek-R1-Distill-Qwen-7B-GGUF/files

4.2 局域网访问配置

# Windows
setx OLLAMA_HOST 0.0.0.0:11434
setx OLLAMA_ORIGINS "*"

# macOS/Linux
export OLLAMA_HOST="0.0.0.0:11434"
export OLLAMA_ORIGINS="*"

4.3 API 安全保护(nginx配置)

server {
    listen 8434;
    server_name your_domain.com;
    
    location / {
        if ($http_authorization != "Bearer your_api_key") {
            return 403;
        }
        proxy_pass http://localhost:11434;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

5. Open WebUI 集成

5.1 部署准备

# 下载所需模型
ollama pull deepseek-r1:8b
ollama pull bge-m3  # RAG嵌入模型

5.2 Docker Compose 配置

services:
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    environment:
      - OLLAMA_API_BASE_URL=http://ollama:11434/api
      - HF_ENDPOINT=https://hf-mirror.com
      - WEBUI_NAME="私有化LLM服务"
      - ENABLE_OPENAI_API=false  # 避免请求超时
      - CORS_ALLOW_ORIGIN=*
      - ENABLE_IMAGE_GENERATION=true
      - DEFAULT_MODELS=deepseek-r1:8b
      - RAG_EMBEDDING_MODEL=bge-m3
    ports:
      - 8080:8080
    volumes:
      - ./open_webui_data:/app/backend/data
    depends_on:
      - ollama

5.3 启动服务

docker-compose up -d

访问地址:http://localhost:8080

5.4 联网搜索功能

  • 设置路径:设置 → 联网搜索 → 启用联网搜索
  • 支持搜索引擎:Bing、Bocha
  • 注意事项:保护隐私数据请勿开启此功能

6. 常用命令参考

命令 功能
ollama --help 查看帮助
ollama serve 启动服务
ollama list 列出所有模型
ollama ps 列出运行中的模型
ollama show <model> 显示模型信息
ollama rm <model> 删除模型
ollama cp <source> <new> 复制模型
ollama stop <model> 停止运行模型

7. 资源参考

  • ollama 官方:https://ollama.com
  • ollama 中文站:https://ollama.org.cn
  • ollama 文档:https://ollama.readthedocs.io
  • 魔塔社区:https://modelscope.cn
  • HF Mirror:https://hf-mirror.com
  • Open WebUI 文档:https://docs.openwebui.com

总结

通过本文档的步骤,您可以成功搭建一个完整的本地私有化 AI 服务,包括:

  1. ollama 框架部署
  2. DeepSeek 模型加载
  3. Open WebUI 可视化界面
  4. 网络优化和安全配置

此方案确保了数据的完全本地化处理,适合对隐私安全有高要求的场景使用。

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐