ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

DeepSeek 多平台部署实战:从 Ollama 本地到 Open WebUI 的完整指南

DeepSeek 多平台部署实战:从 Ollama 本地到 Open WebUI 的完整指南 简介这是一份面向AI开发者、研究人员及技术爱好者的DeepSeek多平台部署指南覆盖基于Ollama的电脑本地部署、手机端快捷方式部署以及基于Open WebUI与Docker的浏览器访问方案帮助读者在个人电脑、移动设备或业务系统中快速落地大模型NLP能力。资源打包为单个docx文档共1个文件约15KB内容以命令、链接和分步说明为主轻量易用适合随时查阅。已有3769人浏览/学习。文档按电脑、手机、浏览器三类环境组织分别给出macOS、Linux、Windows安装Ollama并运行deepseek-r1模型的具体命令介绍iPhone快捷指令配置、Android Termux编译安装Ollama的完整操作以及通过Docker启动Open WebUI实现网页对话的流程每一步都附有官方地址和可直接使用的指令从环境准备、模型拉取到交互验证均有明确指引。读者既能根据自身硬件灵活选择部署路径也能通过对比不同方案加深对模型工作机制的理解从而更好地将文本生成、问答等能力集成到实际业务或作为深度学习部署的学习模板。1. 多平台部署 DeepSeek从 Ollama 本地到移动端、WebUI 的完整落地路径DeepSeek 模型要怎么部署市面上教程很多但多数只讲一个平台、一条命令真到了自己机器上下载慢、路径不对、编译报错每一步都能卡住半天。这篇笔记把我实际拆过的一条完整链路写清楚本地用 Ollama 跑 deepseek-r1:7b手机端分 iPhone 快捷指令和 Android Termux 两条路线最后用 Docker 起 Open WebUI 把模型变成浏览器里能聊的服务。适合两类人想在个人电脑上低成本跑大模型的技术爱好者以及打算把模型接入业务流程的开发者——照着走能复现遇到坑也知道去哪排查。2. Ollama 本地部署模型拉取、终端交互与存储换盘的完整闭环Ollama 是目前本地跑 DeepSeek 最省事的一层封装它把模型下载、量化格式、推理服务、命令行交互全包了。你不需要手动处理权重文件、推理框架和依赖环境一条命令就能把模型拉到本地并进入对话。但省事的背后有几个点必须提前知道模型下载源在国内网络下经常很慢默认存储路径在系统盘容易爆以及交互式会话和 API 服务是两种完全不同的使用方式。这章把这三个问题的解法一起给出来。2.1 安装 Ollama三平台命令与下载慢的应对Ollama 官方提供 macOS、Linux、Windows 三种安装方式。macOS 用户直接去官网下载 zip 包解压安装或者用 Homebrew 安装Linux 用户最省事的是官方一键脚本Windows 用户下载 exe 安装包后Ollama 会注册为后台服务并自动配好 PATH。# macOSHomebrew 方式 brew install ollama # Linux官方一键脚本 curl -fsSL https://ollama.com/install.sh | sh # Windows下载安装包后PowerShell 里验证 ollama --version安装完成后先跑ollama --version确认版本能输出版本号就说明环境没问题。这里有个细节Linux 一键脚本安装后Ollama 会以 systemd 服务方式常驻意味着改环境变量后必须重启服务才生效后面讲换盘时还会用到这个知识点。下载慢是本地部署 DeepSeek 遇到的第一个高频痛点。模型文件动辄几个 GB默认走官方源经常卡在进度条不动。我一般的做法是先给 Ollama 配国内可用的镜像源在用户环境变量里加OLLAMA_HOST和镜像地址相关的配置如果网络环境实在不稳定就直接用离线安装包——在一台能正常下载的机器上把模型文件拉好再拷贝到目标机器导入。注意模型文件目录结构不能乱动Ollama 通过 manifest 文件管理模型拷贝时把整个 models 目录原样搬过去最稳。2.2 拉取 DeepSeek-R1命令参数与首次交互的边界环境就绪后拉取并启动模型就一行命令ollama run deepseek-r1:7b这条命令干了三件事检查本地有没有deepseek-r1:7b这个模型没有就去模型库拉取下载完成后加载进内存然后进入终端交互模式在提示符后面直接输入问题模型实时生成回复。deepseek-r1:7b里的7b是模型参数量7B 代表 70 亿参数量化和精简版本对个人 PC 友好如果你的机器配置更高可以试deepseek-r1:32b但显存和内存压力会明显上升。首次对话建议先问一个简单问题验证链路比如让它用一句话介绍自己。注意终端交互模式是独占式的输入/bye或按 CtrlD 退出退出后模型会从内存卸载。这个模式适合快速验证不适合持续对外提供服务——真要给 Web 页面或其他程序调用得用 Ollama 内置的 API 服务ollama serve默认监听 11434 端口。# 查看本地已拉取的模型列表 ollama list # 删除不再需要的模型释放磁盘空间 ollama rm deepseek-r1:7bollama list会列出模型名、体积和已修改时间用来确认模型是否真正落地。ollama rm删除指定模型这个命令在你换量化版本或磁盘吃紧时很实用。2.3 存储路径修改Linux 换盘、Windows 换目录的操作Ollama 默认把模型放在系统盘C 盘或根分区空间不够是必然遇到的坑。我自己的机器就是 256G 系统盘两个模型直接吃掉 40G所以第一步就是改存储路径。Linux 下用 systemd 管理 Ollama 服务时这样做# 1. 创建新目录 sudo mkdir -p /data/ollama/models # 2. 编辑 systemd 服务配置追加环境变量 sudo systemctl edit ollama # 在打开的配置里写入以下内容后保存 # [Service] # EnvironmentOLLAMA_MODELS/data/ollama/models # 3. 重载配置并重启服务 sudo systemctl daemon-reload sudo systemctl restart ollamaOLLAMA_MODELS是 Ollama 的核心环境变量指定模型文件存放根目录。改完之后原路径下已下载的模型不会自动迁移需要手动移动整个目录移动完再重启服务。Windows 上同理在系统环境变量里新建OLLAMA_MODELS指向 D 盘目录然后重启 Ollama 服务或注销再登录。验证方式统一用ollama list看模型路径或者直接去新目录确认有没有 manifests 和 blobs 子目录。3. 移动端部署iPhone 快捷指令与 Android Termux 的两条路线手机跑大模型是很多人最感兴趣也最容易误解的部分。先说结论iPhone 的快捷指令方案本质上不是本地部署它调用的是云端 API手机只是个发请求和收结果的客户端Android 的 Termux 方案才是真本地部署需要在手机上编译 Ollama 并加载模型。两条路线体验差异巨大选哪条取决于你的需求网络稳定且不想折腾硬件走快捷指令要离线可用、数据不出设备走 Termux。3.1 iPhone 快捷指令API Key 配置与调用链路iPhone 部署 DeepSeek 用的是快捷指令Shortcuts加 API Key 的组合。操作上分三步先用 Safari 打开快捷指令链接下载安装然后去 API 服务商页面获取 Key最后在快捷指令里填 Key 完成绑定。快捷指令的核心配置项 - API 地址模型服务商提供的 OpenAI 兼容端点 - API Key鉴权凭证填错会返回 401 - 模型名指定 deepseek 对应的模型标识 - 上下文长度控制单次请求携带的历史消息条数这里要提个醒快捷指令只是个调度壳真正跑模型的是远端服务器。所以首次运行快捷指令时iOS 会弹权限确认框必须点“允许访问”否则指令拿不到网络权限请求会直接失败。调试时遇到“无法连接网络”或“请求失败”的提示先检查设置里快捷指令的网络权限再检查 Key 有没有填对顺序不要反。这个方案的优点是手机无负担缺点是强依赖网络断网或 API 服务波动时就完全不可用。3.2 Android Termux 编译 Ollama依赖安装到构建验证Termux 方案才是移动端本地部署的正经路径但过程比想象中折腾。它的本质是在 Android 终端环境里从源码编译 Ollama然后拉取模型、本地推理全程不依赖云服务。# 1. 初始化 Termux设置存储权限并更新软件源 termux-setup-storage pkg update pkg upgrade # 2. 安装编译依赖 pkg install git cmake golang libjpegturbo # 3. 克隆 Ollama 源码注意 --depth 参数只拉最新一次提交 git clone --depth 1 https://github.com/ollama/ollama.git cd ollama # 4. 生成平台相关代码并编译 go generate ./... go build . # 5. 后台启动 Ollama 服务 ./ollama serve # 6. 验证服务是否运行 curl http://localhost:11434每个环节都有讲究。pkg install安装的 golang 是编译必需cmake 和 libjpegturbo 是部分原生模块的构建依赖缺了会在go build阶段报错。go generate ./...负责生成特定平台的操作系统适配代码Android 环境尤其需要这一步跳过可能编译出连不上 GPU 的二进制。curl http://localhost:11434是你验证服务是否起来的唯一标准返回 Ollama 版本信息才代表服务正常。服务确认后拉模型./ollama pull deepseek-r1:8b ./ollama run deepseek-r1:8bpull和run分开执行的好处是能清楚分辨是下载失败还是加载失败。手机内存小于 8G 的设备不建议硬上 8b 模型加载后系统会频繁杀后台进程实际体验会变成用一下就断一下后面细说原因。3.3 移动端硬件的边界参数量、内存与发热的取舍移动端跑 DeepSeek真正决定成败的不是模型多聪明而是设备内存和散热。7B 参数量、4bit 量化后的模型文件大约 4.4GB运行时还需要额外内存做 KV Cache 和上下文窗口这意味着 8GB 内存的手机在加载 8b 模型时系统可用内存会被压到警戒线后台应用被清是常态。我的判断标准很简单8G 内存手机跑 7b 模型是上限12G 及以上可以试 8b6G 及以下基本只能羡慕。发热是另一个被低估的问题。手机没有主动散热持续推理三五分钟后机身温度上来处理器会强制降频推理速度肉眼可见地变慢。如果你打算把手机当作固定服务长期跑最好把设备接上电源放在通风处并且用ollama serve的常驻模式而不是ollama run的交互模式——前者更稳定还能让局域网内其他设备访问。4. Open WebUI 部署Docker 容器化让 DeepSeek 变成浏览器服务终端交互只适合一个人用真要给团队或业务流程提供服务图形化界面是必需品。Open WebUI 是目前社区里最主流的方案它把模型对话、参数调节、会话管理都做成了网页界面而 Docker 负责把整个环境打包隔离避免依赖污染宿主机。这章讲清楚从安装到出界面的完整链路以及局域网共享时的几个关键参数。4.1 Docker 安装 Open WebUI容器化部署的基础链路Open WebUI 官方推荐的部署方式是 Docker因为它的依赖比较多直接裸装很容易和本机的 Python 环境冲突。前提是先把 Docker Desktop 装好Windows 和 macOS 用户注意 Docker Desktop 需要虚拟化支持BIOS 里没开 VT-x 或 Hyper-V 的话安装后起不来。# 拉取 Open WebUI 镜像并启动容器 docker run -d \ -p 3000:8080 \ --add-hosthost.docker.internal:host-gateway \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main逐一拆解参数-d后台运行-p 3000:8080把容器内 8080 端口映射到宿主机 3000浏览器访问http://localhost:3000就能打开界面--add-host是容器内访问宿主机 Ollama 服务的关键没有它 WebUI 连不上本地模型这是新手最容易漏的配置-v open-webui:/app/backend/data用命名卷持久化用户数据升级容器后聊天记录不丢--restart always让 Docker 守护进程在容器崩溃或开机时自动拉起服务生产习惯。拉镜像时如果速度慢给 Docker 配置国内镜像加速器是常规操作。4.2 在 WebUI 中加载 DeepSeek从模型选择到对话测试容器跑起来后在浏览器打开localhost:3000注册一个管理员账号进入主界面接下来的流程全是图形化操作。点开左下角设置进入模型管理页面模型列表里能看到 Ollama 里已拉取的模型如果列表是空的先确认宿主机上 Ollama 是否在运行以及容器有没有通过网络正确连接它。模型选择对应的参数关系如下表模型标识参数量量化位数推荐内存适用场景deepseek-r1:7b7BQ4_08G 以上个人对话、代码生成deepseek-r1:8b8BQ4_08G~16G移动端 / 中配 PCdeepseek-r1:32b32BQ4_032G 以上长文本推理、复杂任务选好模型后点下载WebUI 会直接调用 Ollama 拉取完成后就能在“新建对话”里选择 DeepSeek 开始测试。WebUI 和终端交互有个明显区别它会把上下文自动管理起来多轮对话时历史消息作为上下文传给模型相当于免去了你在终端里手动维护对话状态的麻烦。想验证模型效果时让它写一段函数或分析一段文本比单纯问答更能体现 DeepSeek-R1 的推理链路质量。4.3 局域网共享与资源配置从个人电脑到小团队服务Open WebUI 的价值在于它天然是服务形态同一局域网内其他人也能访问。默认配置下 Ollama 只监听localhost必须改写成0.0.0.0才能让局域网其他机器通过 HTTP 访问# Linux/macOS 启动时指定监听地址 OLLAMA_HOST0.0.0.0:11434 ollama serve # 验证局域网内另一台机器是否能访问 curl http://你的内网IP:11434OLLAMA_HOST0.0.0.0:11434表示绑定所有网卡接口这样内网其他设备才能通过这台机器的 IP 访问模型服务。这个参数有两个使用边界第一它只解决 Ollama 层的网络可达性Open WebUI 容器内的--add-host配置依然需要否则 WebUI 里模型列表仍然是空的第二小团队共用一台机器跑模型时多用户并发请求会显著拉长响应时间Ollama 默认是单任务排队所以开共享前先确认机器内存能同时容纳模型权重和多人上下文否则体验会很差。机器配置不够但又要多人用优先考虑用 CPU 推理模式并限制最大并发数而不是硬上高参数量模型。5. 避坑与排查部署 DeepSeek 时常见的五个翻车场景这套流程我前后跑过几遍每遍都踩了不一样的坑。下面五条是按出现频率排的每条都按现象、原因、解决的顺序写清楚能帮你省掉不少试错时间。现象一ollama run deepseek-r1:7b一直卡在 pulling 进度条十几分钟不动。原因默认模型仓库在境外国内网络访问不稳定。解决换国内可用的镜像源或者在网络好的机器上先用ollama pull拉完把 models 目录整个拷贝到目标机器。现象二Linux 下改了 OLLAMA_MODELS 路径重启 Ollama 后ollama list里模型全没了。原因Ollama 通过 systemd 管理时用户级 shell 里export的环境变量对服务进程完全不生效。解决用sudo systemctl edit ollama写入EnvironmentOLLAMA_MODELS/新路径然后daemon-reload加restart两步缺一不可。改完路径后旧的模型文件还在原目录需要手动移动目录再重启服务不然新路径下看不到旧模型。现象三Termux 编译时go build .报错提示找不到某些包或 CGO 编译失败。原因缺依赖或系统变量未设置。解决重新执行pkg install git cmake golang libjpegturbo确认依赖完整然后go env检查 GOPATH 是否有权限写入Termux 里务必先跑termux-setup-storage授权。还有一个常见笔误官方命令里的git clone --depth 1如果手滑写成git clone depth 1git 会把你克隆出一个错误目录注意核对。现象四Open WebUI 界面打开正常但模型列表是空的下拉框里找不到 DeepSeek。原因WebUI 容器和 Ollama 服务不在同一个网络可达域。解决确认宿主机上 Ollama 已启动且监听0.0.0.0或至少能让 Docker 内部访问重新创建容器并加上--add-hosthost.docker.internal:host-gateway。Windows 的 Docker Desktop 偶尔会出现 host-gateway 解析失败的情况重启 Docker Desktop 后再启动容器就能解决。现象五iPhone 快捷指令首次运行提示“无法运行”或请求一直失败。原因API Key 格式填错或者快捷指令没有获得网络权限。解决先检查 Key 是否带有多余空格再检查快捷指令的隐私设置里“允许访问”是否包含网络请求。iOS 对快捷指令的权限管理比较严格首次运行用系统弹出的确认框逐项放行不要批量跳过。6. 验证部署质量的两个技巧API 调用测试与接入自有应用模型能对话只是第一步真正要交付使用得验证服务层的稳定性并且把它接进自己的程序。最直接的验证方式是绕过 WebUI直接打 Ollama 的 API 接口这一步能明确区分是模型自身的问题还是上层界面的问题。# 单次请求验证不带上下文 curl http://localhost:11434/api/generate \ -d { model: deepseek-r1:7b, prompt: 用一句话解释什么是大语言模型, stream: false }stream设为false表示等完整回复生成后一次性返回适合测试时观察效果设成true则是流式输出适合 Web 聊天界面做到打字机效果。prompt是输入文本model必须和ollama list里显示的标识完全一致写错会直接返回 404。返回 JSON 里的response字段是生成内容total_duration是总耗时这个字段是评测机器性能最直观的指标。如果你想把这个服务接入自己的应用推荐用 OpenAI 兼容接口而不是上面这个原生接口。Ollama 支持 OpenAI SDK 直接调用只需改 base_urlfrom openai import OpenAI client OpenAI( base_urlhttp://localhost:11434/v1, api_keyollama # 本地服务不校验随便填 ) response client.chat.completions.create( modeldeepseek-r1:7b, messages[ {role: system, content: 你是 DeepSeek 助手回答简洁准确。}, {role: user, content: 写一段 Python 实现冒泡排序} ], temperature0.7, max_tokens2048 ) print(response.choices[0].message.content)base_url指向localhost:11434/v1就能沿用 OpenAI 的调用范式团队里已有的 OpenAI 代码栈可以直接复用。temperature控制随机性0.7 是对话场景的常用值写代码或做抽取类任务可以降到 0.2max_tokens限制单次最大输出长度DeepSeek-R1 这类推理模型做复杂任务时容易在思考链上耗费大量 token所以别把值设得太小。验证链路的顺序我之前是“终端对话 → curl 单次请求 → OpenAI SDK 接入”每次都走一遍才放心。从那以后我每次换模型或换机器部署都强制先跑一遍 curl 单次请求再交给上层应用能省掉后续一整套排查问题的时间希望帮到你。本文还有配套的精品资源点击获取
返回列表