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

离线部署大模型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.5B1.1GB4核4~8G4GB轻量文本处理、快速响应
7B/8B4.7G/4.9G8核16G14GB日常使用、平衡性能与硬件
14B9GB12核32G26GB复杂推理、代码生成
32B20GB16核64G48GB专业级高精度任务
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/macOS1. 中文站: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 选 arm64wget 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. 模型存储位置修改(可选)

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

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

4. Docker 部署 Ollama(推荐)

# docker-compose.ymlservices: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. 允许局域网访问

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

系统配置命令
Windowssetx OLLAMA_HOST "0.0.0.0:11434" && setx OLLAMA_ORIGINS "*"
macOSlaunchctl setenv OLLAMA_HOST "0.0.0.0:11434" && launchctl setenv OLLAMA_ORIGINS "*"
Linuxecho '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. 模型下载慢/失败

  • 方案 2:使用国内源(魔塔/HF 镜像)或离线导入
  • 方案 3:关闭代理软件,直接连接网络

方案 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. 服务无法访问

  • 检查 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.5B4-8GB4GB轻量级,普通文本处理
7B/8B16GB14GB性能较好,日常使用
14B32GB26GB复杂任务、数学推理、代码生成
32B64GB48GB专业级高精度任务
70B128GB140GB大规模高复杂度任务

实测参考: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.ymlservices:ollama:image: ollama/ollama container_name: ollama restart: unless-stopped ports:- 11434:11434volumes:- /data/ollama:/root/.ollama environment:OLLAMA_HOST: 0.0.0.0:11434OLLAMA_ORIGINS:"*"

1.5 修改模型存储位置

# Linux/macOSecho'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 离线导入模型

# 创建Modelfileecho"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/bashwhiletrue;domodelExists=$(ollama list |grep"deepseek-r1:7b")if[ -n "$modelExists"];thenecho"模型已下载完成!"breakfiecho"开始下载模型..." ollama run deepseek-r1:7b &processId=$!sleep60ifkill -0 $processId2>/dev/null;thenkill -9 $processIdecho"已中断本次下载,准备重新尝试..."fidone
方法二:离线下载
  • 夸克网盘: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/LinuxexportOLLAMA_HOST="0.0.0.0:11434"exportOLLAMA_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:8080volumes:- ./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. 网络优化和安全配置

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

Read more

OpenClaw 新手指南:从零开始的 AI 机器人搭建完全攻略

OpenClaw 新手指南:从零开始的 AI 机器人搭建完全攻略 想随时随地通过微信、飞书、Telegram 等平台与 AI 助手对话?OpenClaw 帮你实现。 为什么选择 OpenClaw? OpenClaw 是一个开源的自托管 AI 网关,让你可以在自己服务器上运行一个 central hub,连接所有聊天平台到强大的 AI 模型(如 Claude、GPT、Pi、Kimi 等)。 核心优势: * ✅ 数据完全掌控(自托管,隐私安全) * ✅ 多平台统一管理(一个网关服务所有渠道) * ✅ 无代码扩展(通过技能系统) * ✅ 24/7 可用(开机自启动) * ✅ 日志和记忆(支持长期对话) 10个核心技巧详解 技巧 1:快速安装与配置 适用场景:

AI 核心趋势:多模态融合、AI Agent 与低代码开发的落地场景与挑战

2025 年,人工智能技术从 “技术探索” 迈入 “规模化落地” 的关键阶段,单一模态的大语言模型、孤立的 AI 工具、高门槛的开发模式已无法满足复杂的产业需求。多模态融合打破了数据形式的边界,AI Agent 实现了 AI 的自主化决策与执行,低代码开发则降低了 AI 应用落地的技术门槛,三者共同构成了当下 AI 发展的核心趋势。本文将深入剖析这三大趋势的落地场景,拆解实际应用中面临的技术、商业与安全挑战,探讨 AI 技术从实验室走向产业的可行路径。 一、多模态融合:让 AI 读懂 “世界的多元语言” 多模态融合是指 AI 模型能够同时处理并理解文本、图像、音频、视频、语音等多种数据形式,模拟人类感知世界的方式,从 “单一信息解读” 升级为 “多维度认知”。相较于纯文本大模型,多模态

【Part 4 XR综合技术分享】第一节|技术上的抉择:三维实时渲染与VR全景视频的共生

【Part 4 XR综合技术分享】第一节|技术上的抉择:三维实时渲染与VR全景视频的共生

《VR 360°全景视频开发》专栏 将带你深入探索从全景视频制作到Unity眼镜端应用开发的全流程技术。专栏内容涵盖安卓原生VR播放器开发、Unity VR视频渲染与手势交互、360°全景视频制作与优化,以及高分辨率视频性能优化等实战技巧。 📝 希望通过这个专栏,帮助更多朋友进入VR 360°全景视频的世界! Part 4|XR综合技术分享 最后一Part了,我将分享一些关于当前常用的XR综合技术,内容涵盖三维实时渲染与全景视频的共生、多模态交互体验的融合,以及AI如何深度赋能XR应用,推动智能化发展。同时畅想通向全感知XR智能沉浸时代的未来,探索如何通过更先进的技术不断提升用户体验。毕竟,360°全景视频仅是XR应用中的冰山一角。 第一节|技术上的抉择:三维实时渲染与VR全景视频的共生 文章目录 * 《VR 360°全景视频开发》专栏 * Part 4|XR综合技术分享 * 第一节|技术上的抉择:三维实时渲染与VR全景视频的共生 * 1、VR内容形态的分化与融合 * 1.1 三维实时渲染的发展 * 1.2

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装 前言 在进行 Flutter for OpenHarmony 的社交或客户支持类应用开发时,除了核心的 WebSocket 传输,如何规范化定义“消息(Message)”的数据结构以及处理复杂的对话逻辑状态,往往决定了项目的后期维护性。bavard 是一个专为高度语义化聊天交互设计的协议封装库。它能让你在鸿蒙端以极具逻辑感的对象模型来驱动对话流。本文将带大家了解如何利用 bavard 构建标准化的聊天架构。 一、原理解析 / 概念介绍 1.1 基础原理 bavard 将一次对话拆解为“参与者(Participants)”、“话题(Topics)”和“原子消息(Discrete Messages)”。它提供了一套完整的状态机,用于驱动从“