ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

Windows本地部署DeepSeek全攻略:Ollama+Open WebUI+AnythingLLM搭建AI工作台

Windows本地部署DeepSeek全攻略:Ollama+Open WebUI+AnythingLLM搭建AI工作台 从本地到大模型全家桶Windows 上把 DeepSeek 装进自己电脑这件事我折腾了一整天现在把完整过程拆给你看。先说说为什么要在本地跑大模型。这两年 DeepSeek 这类开源模型越来越强但很多人还停留在“用网页版”的阶段。网页版确实方便但有几个绕不开的痛点数据要上传到别人的服务器涉及代码、文档、私人笔记时心里总不踏实token 用完了要付费交互频繁了成本也不低最难受的是离线环境或网络波动时完全没法用。自己电脑上跑一套本地部署模型文件全在本地磁盘里断网也能玩跑满上下文也不心疼 token 费更重要的是可以配合知识库做私有化 RAG 问答——把一堆 PDF、Markdown 丢给它当“参考书”让模型在指定资料范围内回答。这套玩法在 Windows 上完全可行而且现在工具链已经成熟不用写一行代码就能搞定。这篇文章覆盖的是一条完整链路Ollama 做模型运行时、DeepSeek 做推理核心、Open WebUI 或 Page Assist 做浏览器里的聊天界面、AnythingLLM 做知识库问答。如果你是程序员、研究者或者重度知识管理用户这套组合基本就是本地 AI 工作台的标配。我按自己的实操顺序写每一步都标注了容易踩的坑你不一定全做挑需要的那段看就行。1. 整体方案设计与组件选型逻辑1.1 为什么用 Ollama 而不是直接跑 Python 推理如果要直接在 Windows 上跑 DeepSeek第一反应可能是去 HuggingFace 下权重文件然后写 Python 脚本用 Transformers 加载。这条路不是不行但对大多数人来说属于“自己造轮子”。权重下载、依赖安装、显存管理、并发处理全都要手动搞新手很容易倒在第一步。Ollama 解决的是“模型运行环境”这个麻烦它把下载、量化、加载、推理、API 暴露全部封装成一件事装完就是一个后台服务通过命令行就能拉模型、跑问答、开 API 端口。实际用下来Ollama 的模型管理方式类似 Docker——镜像和容器那种思路。模型文件统一放在C:\Users\你的用户名\.ollama\models目录下通过ollama list可以查看本地已有哪些模型ollama pull负责下载ollama run直接进入交互模式。每个模型在 Ollama 内部有一个名称标签比如deepseek-r1:7b冒号后面是版本标签不同参数规模对应不同文件。1.2 DeepSeek 版本选型规模要和硬件匹配DeepSeek 官方在 Ollama 仓库里提供了多个尺寸的模型包括 1.5B、7B、8B、14B、32B、70B 等版本。选择逻辑很简单先看显存再看内存最后看用途。以 7B 和 8B 这种量化版为例模型文件大约 4.7GB 到 5.5GB推理时至少需要 8GB 显存才流畅如果没有独立显卡用 CPU 纯算也能跑但速度会明显慢生成一个字可能要等好几秒。我的建议是首次尝试直接用deepseek-r1:7b因为 8GB 显存的机器就能跑得动16GB 内存也能应付。要是显卡是 12GB 以上显存可以试试 14B 版本推理质量会明显上一个台阶。32B 版本则需要 24GB 左右显存普通消费级显卡基本只能靠 CPU 硬扛速度不太理想。这个选择直接决定后面所有体验千万不要贪大。1.3 UI 可视化两种路线内嵌交互 vs 独立知识库模型跑起来之后用命令行聊天不是不行但体验实在太粗糙。真正好用还得配一个 UI。Windows 平台上有两条路线可选第一条是给 Ollama 套一个纯聊天 Web UI典型代表是 Open WebUI。这个项目原本是给 Ollama 做的开源界面页面风格接近 ChatGPT支持多会话、Markdown 渲染、代码高亮、联网搜索插件部署方式用 Docker 或 pip 都行。它的强项是聊天体验完整但知识库功能比较基础适合主要想获得一个顺手聊天界面的人。第二条是直接上知识库应用典型代表是 AnythingLLM。它内置聊天界面、工作区、文档管理、向量数据库核心能力是 RAG检索增强生成可以“吞”整个文件夹的文档然后基于内容问答。它的界面虽然不如 Open WebUI 精致但知识库功能是完整的上传 PDF、Word、TXT、Markdown自动切片、向量化、检索回答时引用原文来源。我自己的取舍是两者都装模式不同Open WebUI 用来日常对话、写代码、改文案AnythingLLM 用来处理本地知识库问答比如读论文、查项目文档、维护个人笔记问答。后面我分别讲清楚安装步骤。2. Ollama 安装与模型下载环节2.1 下载安装与国内镜像加速配置Windows 版 Ollama 的安装包直接从官网下载就行安装过程是标准的“下一步”式。需要注意一点Ollama 默认把模型文件装在 C 盘用户目录下如果你的 C 盘空间紧张建议在安装前设置环境变量OLLAMA_MODELS指向其他盘符否则几个模型就能吃掉几十 GB 空间。设置方法是在系统环境变量里新建OLLAMA_MODELS值填D:\ollama\models这种路径装完再改也来得及但已经下载的模型不会自动迁移。国内网络环境下载模型经常遇到速度极慢甚至中断的问题因为模型文件托管在海外对象存储上。解决办法是在环境变量里加一个国内镜像地址OLLAMA_HOST127.0.0.1:11434是默认配置不用动关键是加一条OLLAMA_BASE_URL或者直接修改 registry 配置指向加速镜像。实际上更省事的做法是在C:\Users\你的用户名\.ollama目录下编辑配置文件把下载端点换成国内可达的镜像源。实际使用中我推荐直接设置环境变量OLLAMA_MODELS模型存储路径OLLAMA_HOST服务监听地址默认为 127.0.0.1:11434OLLAMA_ORIGINS允许跨域访问的来源Open WebUI 需要留空或设*设置完环境变量后重启 Ollama 服务生效。右下角托盘区能看到 Ollama 图标点开就能看日志和状态。启动好后在浏览器访问http://127.0.0.1:11434能看到Ollama is running的提示。2.2 拉取 DeepSeek 模型与版本选择细节ollama 拉模型就一条命令ollama pull deepseek-r1:7b如果之前配置好了国内镜像这一步会直接从加速源拉取几十 KB/s 的乌龟速度会变成几 MB/s。下载完成之后用ollama list验证模型是否就位。然后直接跑一次对话测试ollama run deepseek-r1:7b如果终端能正常输出、上下文连贯、响应速度可接受说明 Ollama 运行正常。这里分享一个判断模型是否工作正常的小技巧问一个需要逻辑推理的问题而不是简单事实题。比如“一棵树上有 12 只鸟猎人开枪打死 1 只树上还剩几只”R1 推理模型会啰嗦地分析场景并给出“0 只”与“可能仍有 11 只”的辩证讨论如果回答思路混乱说明模型加载可能出了问题。命令行跑通之后先别急着走下一步花几分钟熟悉几个常用命令ollama ps查看当前加载了哪些模型占用多少显存ollama stop deepseek-r1:7b手动释放模型占用的显存ollama rm deepseek-r1:7b删除不再需要的模型文件这一阶段容易犯的错是模型尺寸选太大。我见过不少朋友直接拉 70B结果 8GB 显存根本装不下Ollama 会退到 CPU 模式硬跑生成速度慢到让人怀疑电脑坏了。所以开头那句“先 7B 试水”是肺腑之言。跑熟了再去研究量化等级、GQA 这种进阶参数也行。3. DeepSeek API 配置与模型调用核心机制3.1 Ollama 内置 API 的调用方式Ollama 启动后本质是一个本地 HTTP 服务默认监听11434端口。这意味着任何程序都可以通过标准 REST API 调用本地模型不需要额外装 SDK。最常用的接口是POST /api/chat和POST /api/generate。用curl快速验证 API 是否可用curl http://127.0.0.1:11434/api/generate -d {\model\: \deepseek-r1:7b\, \prompt\: \用一句话说明什么是大语言模型\}返回的是一段 JSONresponse字段就是模型生成的文本。如果这个接口通了说明 Ollama 已经完全可用。所有后续的 UI 界面、知识库应用、脚本调用本质上都是往这个接口发请求。在 Python 里调用就更简单了用requests或openai库都可以。因为 Ollama 接口兼容 OpenAI 风格所以可以这样写import requests response requests.post( http://127.0.0.1:11434/api/chat, json{ model: deepseek-r1:7b, messages: [ {role: user, content: 用 Python 写一个快速排序并解释思路} ], stream: False } ) print(response.json()[message][content])注意stream: False关闭流式输出方便拿到完整结果。如果要做流式输出把stream设为True返回的就是一行行 JSON适合做打字机效果的聊天界面。3.2 常用参数调节与上下文窗口设置调用 API 时有两个参数值得重点调temperature和num_ctx。temperature控制随机性。值越低输出越保守、越确定适合代码生成和数学推理值越高输出越发散、越有创意适合文案和头脑风暴。DeepSeek-R1 是推理模型本身就会输出大量“思考过程”所以代码场景我通常直接调到 0.3写作场景调到 0.8。num_ctx控制模型上下文窗口默认通常是 4096 或 8192 个 token。处理长文档或长对话时必须调大否则模型会“忘记”前文。8GB 显存机型建议设 819216GB 显存可以尝试 16384。在 Ollama 里可以通过 Modelfile 预设FROM deepseek-r1:7b PARAMETER temperature 0.5 PARAMETER num_ctx 8192然后用ollama create deepseek-r1-chat -f Modelfile创建自定义版模型。最后ollama run deepseek-r1-chat就能用上调整过参数的新模型。这个自定义模型的思路后面配知识库时特别有用因为问答场景需要更大的上下文来容纳检索到的文档片段。4. 搭建可视化界面从 Open WebUI 到 Page Assist4.1 Docker 方式部署 Open WebUI推荐路线Open WebUI 是 Ollama 生态最成熟的聊天界面支持账号管理、会话历史、Markdown、代码高亮、RAG 上传等功能。Windows 下部署它有两个办法Docker 或者 pip。只要你装了 Docker Desktop推荐走 Docker干净利落不污染 Python 环境。docker run -d \ --name open-webui \ -p 3000:8080 \ -v open-webui-data:/app/backend/data \ -e OLLAMA_BASE_URLhttp://host.docker.internal:11434 \ --add-hosthost.docker.internal:host-gateway \ ghcr.io/open-webui/open-webui:main解释一下几个关键点-p 3000:8080把容器内 8080 端口映射到宿主机 3000之后浏览器访问http://localhost:3000OLLAMA_BASE_URL必须指向host.docker.internal这个特殊域名因为容器内不能直接用127.0.0.1访问宿主机上的 Ollama--add-host参数是为了让容器解析host.docker.internal。首次启动会下载镜像和依赖大概需要几分钟。启动完成后注册一个管理员账号就能进入主界面。界面进去之后在左下角设置里确认模型列表里能看到deepseek-r1:7b如果看不到点刷新按钮或检查OLLAMA_BASE_URL配置是否正确。Open WebUI 支持直接在对话输入框里选择模型、调整参数还能把本地文件拖进去做临时 RAG属于“轻量级知识库”。4.2 不想装 DockerPage Assist 是轻量替代Docker 对很多人来说还是有点重如果只想快速搞一个漂亮界面我推荐浏览器插件 Page Assist。它是一款 Chrome/Edge 扩展安装后直接连接本地 Ollama弹出一个类似 ChatGPT 的侧边栏可以选中网页文本右键直接让模型总结或翻译。Page Assist 的好处是零服务端部署不用开 Docker、不用装 Python 包装完扩展填一下 Ollama 地址就能用。适合只需要轻量聊天、不愿折腾的人。但它不适合做知识库管理功能上比 Open WebUI 简单不少。我的建议是以 Open WebUI 为主力界面Page Assist 作为浏览器里的快速助手两边互补。先安装 Open WebUI 把主工作台搭好再装 Page Assist 处理网页场景的即时需求体验会比较完整。4.3 界面卡顿的排查思路UI 卡顿是 Windows 上本地部署的高频问题。排除网络因素后主要原因通常这几个第一模型加载时显存不够系统开始用内存交换推理和渲染互相抢资源表现就是打字都卡。解决办法是关掉ollama ps里不用的模型或者换更小的模型。第二Docker Desktop 本身的资源占用很高默认分配过多 CPU 和内存给虚拟机在 Docker 设置里调低资源限制能给 Ollama 留更多性能。第三Open WebUI 网页端在多个标签页同时连接时也会拖慢关掉不用的标签页能明显改善。如果跑ollama ps发现显存占满但 UI 依然卡优先检查是不是 Docker 容器日志太多。用docker logs --tail 50 open-webui看最近日志如果有大量报错信息多半是 Ollama 连接配置问题接口超时会导致界面等待表现就是“转圈卡住”。5. 个人知识库搭建核心是 RAG 而非“喂模型”5.1 深度拆解 AnythingLLM 的安装配置本地知识库的本质不是把文档“喂”给模型而是把文档切成小块、向量化保存等用户提问时先检索相关片段再把这些片段拼进 Prompt 里交给模型生成回答——这套机制叫 RAG检索增强生成。所以你不必担心模型“记住”你的全网资料它只是在回答时“查阅”资料。AnythingLLM 是 Windows 上搭 RAG 知识库最省心的工具。安装包在官网直接下载安装完成后第一次启动会引导你选择模型提供商。这里选 Ollama然后填http://127.0.0.1:11434再选deepseek-r1:7b作为聊天模型。向量模型推荐选all-MiniLM-L6-v2它体积小、速度快在本地做语义检索足够用了。如果没有特别需求不要选 OpenAI 的嵌入模型因为那样会把文本传到外部 API失去本地部署的意义。工作区的概念要理解清楚AnythingLLM 里的每个工作区是一套独立的知识库空间有自己的文档集合和对话历史适合按项目或领域分门别类。比如建一个“深度学习论文”工作区再建一个“项目管理笔记”工作区两个互不干扰。5.2 文档摄入、切片与向量化的实操过程进入工作区后左侧有个“Upload”面板把想喂给模型的文档拖进去。支持 PDF、DOCX、TXT、MD、CSV 等格式。上传后 AnythingLLM 会自动做切片和向量化处理完成后文档会出现在“Workspace”的文档列表里。这一步的原理很简单文档被切成长度约几百字符的片段每个片段被嵌入成一组数字向量存进内置的向量数据库。之后提问时系统会把问题和所有片段向量做相似度计算取出最相关的 Top-K 片段拼进 Prompt。切片大小和重合度是两个值得调的参数。AnythingLLM 里有Chunk Size和Chunk Overlap设置默认值一般是 1000 和 20。如果你的文档是小段落笔记建议把 Chunk Size 降到 500 左右检索粒度更细如果是长篇 PDF 论文1000 是合理起步值。这里分享一个我踩过的坑设置过大的切片会让检索片段语义混杂导致回答引用了不相关内容设置过小则一个问题要检索很多片段回答会变得零散。上传完成之后建议先做一次“测试检索”。在对话框左侧有个“引文”按钮点开会显示这次回答引用了哪些文档片段你可以直观看到检索质量高不高。如果引用的片段明显不相关就调整上面的切片参数重新摄入。5.3 文档问答效果评估为什么模型答案不理想知识库问答效果不好时大部分问题不在模型而在检索。最常见的三个原因第一文档本身质量低。把图片型 PDF 直接丢进去AnythingLLM 会把文本抽成空壳检索自然不准。解决办法是先用 OCR 工具把 PDF 转成可选中文字的版本再上传。第二提问方式太口语化。比如问“这个文档讲了啥”模型可能抓不到具体目标改成“根据工作区文档总结该方案的架构设计与技术选型”效果会好得多。第三回收的上下文不够。如果对话内容太长模型把前面的文档内容“忘”了就得调大num_ctx具体做法在第 3 节讲过。还有一个容易被忽视的点AnythingLLM 的每个工作区是隔离的如果在“A 工作区”提问“B 工作区”里的内容模型当然回答不了。很多人以为模型“坏”了实际只是文档放错了地方。5.4 Dify 与本地知识库流水线进阶路线AnythingLLM 适合个人轻量使用但如果要做更复杂的知识库流水线——比如多文档批量导入、条件分支对话、Agent 工具调用——可以考虑 Dify。Dify 是一个开源 LLM 应用开发平台可以在 Windows 上用 Docker 部署它把模型管理、知识库、工作流编排、日志分析整套东西塞进一个可视化管理后台里。Dify 的接入方式也是先选 Ollama 模型然后创建知识库、上传文档、做分段清洗再把知识库挂到对话应用上。跟 AnythingLLM 相比Dify 更强调 “流水线”你可以设置知识库召回策略、多轮改写、结果重排序等步骤更像一个生产级系统但配置复杂度也会上升一到两个级别。如果你只是“让本地模型查我的笔记”AnythingLLM 足够如果你想长期维护一个团队级知识库、做更精细的权限管理和流程控制Dify 值得投入学习。我个人目前主力是 AnythingLLM研究深度项目时才切到 Dify。6. 常见问题与排查技巧实录6.1 模型下载失败或中断如果ollama pull卡在某个进度不动或者报connection error优先检查镜像源配置。可以试着重启 Ollama 服务再执行ollama rm deepseek-r1:7b后重新 pull。如果国内镜像源速度还是慢还有一个办法用另一台有网络的电脑下载模型文件然后拷贝到本机的.ollama/models目录。模型目录结构是固定的把整个模型文件夹放对位置就能直接识别。6.2 模型已下载但ollama list没有显示这种情况八成是环境变量OLLAMA_MODELS指向了不同目录。排查顺序确认当前生效的环境变量、确认模型文件夹里是否有manifest文件、重启 Ollama。还有一种少见情况是权限问题——Ollama 服务以错误用户运行时无法读取模型目录WinR 输入services.msc找到 Ollama 服务检查登录身份是否为你自己的账户。6.3 Open WebUI 连不上 Ollama访问 Open WebUI 页面正常但对话时报Failed to connect to Ollama这类问题九成出在容器网络配置。先确认宿主机上curl http://127.0.0.1:11434通不通通了再确认容器内host.docker.internal能不能解析用docker exec open-webui curl http://host.docker.internal:11434测试。不通过就删容器重建重新配置--add-host参数。6.4 推理速度慢得像蜗牛首当其冲检查显存。ollama ps能看到进程占用的显存大小如果占到 90% 以上速度必然下降因为系统开始用内存辅助计算。解决办法换更小的模型、调低num_ctx、关闭其他占用显存的程序。如果显存还有余量但速度依然很慢检查是不是模型跑在 CPU 模式——Ollama 日志里会显示设备信息如果是CPU说明驱动没装好或者模型没有 GPU 量化版本干脆换回 CPU 推理接受慢速事实或者升级显卡驱动。6.5 Windows 防火墙拦截端口本地部署偶尔会遇到“只有本机能访问其他设备无法访问”的情况。如果想让局域网内其他设备也能用 Ollama就需要放行11434端口。打开 Windows 防火墙高级设置添加入站规则允许 TCP 端口 11434。这时启动 Ollama 要把OLLAMA_HOST改为0.0.0.0:11434让它监听所有网卡。但这样做有一定安全风险建议只在家里或实验室的信任网络里开启不要暴露到公网。6.6 知识库回答完全跑偏知识库回答质量差首选排查的是检索而不是模型。看一下引用的文档片段是不是真正相关如果引用的片段没问题那就是 Prompt 组合的问题。AnythingLLM 里可以微调系统提示词告诉模型“严格基于工作区文档回答如果文档中没有相关信息直接说明不知道”能明显减少模型自己编内容的情况。还有个技巧把工作区温度参数调低RAG 问答场景下温度太高会引入太多随机性回答容易飘。7. 从命令行到知识库的完整链路验证[_MONOMO_HINT_0]我需要先把上面这个奇怪的token忽略掉它看起来是某种系统提示或测试数据不是用户内容。我应该继续按照要求输出纯Markdown博文正文不输出任何额外的元说明。让我理一下现在的位置。我正在写一篇关于Windows上Ollama部署DeepSeek的博文已经到了第7节“从命令行到知识库的完整链路验证”。这一节我会写一个完整的从零开始的验证流程从命令行测试模型、到Open WebUI对话、再到AnythingLLM知识库问答形成一个完整的实操串联。写作风格继续保持博主分享经验的口吻穿插注意事项和心得。这一段我会写怎么把前面几个环节串起来做一个端到端验证确认整套链路都通了。包括测试命令、预期结果、以及最终效果评估。然后第8节是最后的个人体会和扩展建议以真实经验收尾符合规范。 ## 7. 从命令行到知识库的完整链路验证前面六个环节都搭好了最后一步是把整个链路串起来做一次端到端验证。这一步特别重要因为你单独看每个组件都正常不代表它们连起来也能正常工作。我在第一次搭的时候就吃过亏——Open WebUI 页面显示模型在线实际对话时却报错折腾半天发现是容器网络配置的问题。先从最底层开始验证。打开一个终端窗口直接跑一条 Ollama 命令确认模型推理正常ollama run deepseek-r1:7b 用一句话解释什么是 RAG如果模型能流畅输出说明模型文件、推理引擎、API 服务三层都是通的。接着验证 HTTP API 层因为 Open WebUI、AnythingLLM 都是走 HTTP 接口而不是本地命令curl http://127.0.0.1:11434/api/tags这条命令会返回本地模型列表的 JSON能看到deepseek-r1:7b在models数组里。只要能看到这个输出就说明 API 服务在正常监听。接下来打开浏览器访问 Open WebUI 的http://localhost:3000新建一个对话选择deepseek-r1:7b模型随便问一句“你好”确认界面能正常流式回复。最后验证知识库链路。打开 AnythingLLM在“深度学习论文”工作区里上传一份实际的 PDF 文档等向量化进度条走完然后问一个需要引用文档具体内容的问题。注意观察回答下方是否出现了引用片段如果有说明文档切片、向量化、检索、上下文拼接、模型生成这条完整的 RAG 流水线全部打通了。三个层面都验证通过之后这套本地 AI 工作台就算正式服役了。8. 实操经验总结与进一步扩展思路整套流程走完说几点真实的体会。第一在 Windows 上做本地部署耐心是最重要的技能。模型下载可能要等上好几分钟Docker 镜像拉取可能要更久中间还可能碰到网络波动导致的中断。不要慌大多是暂时的按照前面说的排查思路一步一步来问题都能解决。第二硬件够用就好不必一味追大模型。7B 模型在日常对话、代码辅助、文档问答这些场景下已经够用而且响应速度快、资源占用小。追求更高推理质量可以逐步升级到 14B但升级前一定要确认自己的显存能兜住底不然换来的是更慢的速度和更难看的体验。第三知识库的价值被很多人低估。把本地文档整理好、切片参数调优、提示词约束到位DeepSeek 本身就能变成一个非常懂你资料库的助手。这一步值得多花时间打磨因为通用模型到处都是但能准确回答你私人文档问题的模型只有本地这套。最后分享一个小技巧保存一份自己的 Modelfile把temperature、num_ctx这些参数固定成顺手的值以后重建环境时一条ollama create就能恢复自己习惯的模型配置不用每次重新调试。这套系统后续还有很多可以扩展的地方接入语音输入做口述笔记、配合 Home Assistant 做智能家居控制、通过 n8n 或者 Dify 编排自动化工作流……但那是另一个故事了。至少现在你的电脑里已经住进了一个不联网也能用的 DeepSeek还有一套随时伺候你知识的私人档案室。
返回列表