离线部署大模型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

Motrix WebExtension 浏览器扩展终极配置指南

Motrix WebExtension 浏览器扩展终极配置指南 【免费下载链接】motrix-webextensionA browser extension for the Motrix Download Manager 项目地址: https://gitcode.com/gh_mirrors/mo/motrix-webextension 🎯 扩展核心功能与优势 Motrix WebExtension 是一款革命性的浏览器扩展,能够将您的下载任务无缝转移到功能强大的 Motrix 下载管理器。告别浏览器缓慢的原生下载体验,拥抱专业级下载管理的极致效率! 📋 准备工作与系统要求 在使用扩展前,请确保满足以下条件: * 已安装最新版 Motrix 应用程序(版本不低于 1.6.0) * 浏览器支持 Chrome、Firefox、Edge 或 Opera * 基本的浏览器扩展管理操作知识 ⚙️ 详细配置流程详解 第一步:生成 RPC

Vue3 Webview 转 Android 虚拟导航栏遮挡问题记录

问题描述 在 Android 设备上运行 Capacitor 打包的 Vue 3 应用时,遇到虚拟导航栏(底部返回键、主页键等)和状态栏遮挡应用内容的问题。 问题表现 * 底部 Tab 导航栏被虚拟导航栏遮挡一部分 * 顶部内容被状态栏遮挡 * 页面底部内容贴近虚拟导航栏,没有安全间距 问题根源分析 初始状态 应用使用了沉浸式布局,在 MainActivity.java 中设置了: WindowCompat.setDecorFitsSystemWindows(getWindow(),false);getWindow().setStatusBarColor(Color.TRANSPARENT);getWindow().setNavigationBarColor(Color.TRANSPARENT); 这使得 WebView 内容延伸到状态栏和导航栏后面,实现了全屏显示。 错误的假设 最初尝试使用 CSS 的环境变量来解决: padding-top:env(safe-area-inset-top,

--- 通过逆向 WebChat 协议打造 OpenClaw 的“万能胶水” ---

摘要 在 OpenClaw 的二次开发中,官方推荐的 Channel 扩展模式往往伴随着较高的开发和部署成本。本文介绍了一种更直接的“降维打击”方案:通过逆向工程解析 Gateway 与 WebChat 之间的 WebSocket 通信协议,构建一个通用适配器(Universal Adapter)。该适配器能将任何外部程序(CLI、脚本、第三方 UI)伪装成官方 WebChat 客户端,从而实现零后端修改接入,并天然支持会话历史同步。 正文内容 1. 缘起:为什么我们需要这层“胶水”? 在 OpenClaw 的生态中,如果你想让一个外部系统(比如一个 Python 脚本、一个 IoT 设备或者一个自定义网页)和 Agent 对话,官方的标准答案通常是:“去开发一个

OpenWebUI联网搜索实战:如何用SearXNG让本地大模型获取实时信息(附百度/360配置)

OpenWebUI联网搜索实战:如何用SearXNG让本地大模型获取实时信息(附百度/360配置) 如果你在本地运行大模型,比如用Ollama部署了Qwen、Llama或者DeepSeek,可能会发现一个尴尬的问题:模型的知识截止日期是固定的,它不知道今天股市涨跌,不清楚最新的科技新闻,甚至不知道明天是什么节日。这种“信息孤岛”的感觉,让本地大模型的实用性大打折扣。 我最初搭建OpenWebUI环境时,也遇到了这个痛点。看着模型一本正经地分析过时的数据,那种无力感让我开始寻找解决方案。市面上有不少联网搜索方案,但要么配置复杂,要么对国内网络环境不友好。经过几周的折腾和测试,我发现SearXNG这个开源元搜索引擎,配合OpenWebUI的联网搜索功能,是目前最稳定、最灵活的方案之一。 更重要的是,通过合理配置SearXNG,我们可以让本地大模型直接调用百度、360等国内搜索引擎,获取符合中文用户习惯的实时信息。这不仅仅是技术上的连接,更是让本地AI真正“接地气”的关键一步。下面我就把自己踩过的坑、验证过的配置,以及实际效果对比,毫无保留地分享给你。 1. 为什么需要SearXN