Windows本地部署DeepSeek-R1大模型并使用web界面远程交互

文章目录

    • 前言
    • 1. 安装Ollama
    • 2. 安装DeepSeek-r1模型
    • 3. 安装图形化界面
      • 3.1 Windows系统安装Docker
      • 3.2 Docker部署Open WebUI
      • 3.3 添加Deepseek模型
    • 4. 安装内网穿透工具
    • 5. 配置固定公网地址

前言

最近爆火的国产AI大模型Deepseek详细大家都不陌生,不过除了在手机上安装APP或者官网在线体验,我们其实完全可以在自己的Windows电脑上本地进行部署,并结合cpolar内网穿透工具轻松实现远程交互,带来更方便快捷的体验。

之前就和大家分享过本地运行 AI 模型具有很多优势,比如隐私安全:你的所有数据都保留在你自己的机器上,不存在共享敏感信息的风险。快速响应:官方及三方访问量过大,延迟非常高,造成卡顿,本地部署大模型可以避免这种情况。

要实现本地部署DeepSeek R1大模型其实也不难,只需在电脑中安装能够运行各种AI模型的开源工具Ollama 就可以了,不过如果感觉在终端中和AI交互不太美观,我们也可再安装一个图形化的界面,就能像和chatgpt那样在网页中和大模型聊天了,下面就来具体演示一下。

image-20250205165349645

1. 安装Ollama

首先访问Ollama的官网:Download Ollama on Windows

下载适配你的操作系统的客户端,我这里使用的是Windows11系统,点击下载即可:

image-20250205152613479

下载好之后,双击打开:

image-20250205153517007

点击Install安装:

PS:默认是安装在C盘,需要预留2G以上的存储空间。

image-20250205153557206

安装好之后,我们按住Win+R键,在运行框中输入cmd打开Windows系统自带的终端界面:

image-20250205154133040

然后输入ollama回车,看到下面信息即为安装成功!

image-20250205154055584

2. 安装DeepSeek-r1模型

回到 Ollma 官网,点击 Model:

页面跳转后可以看到第一个就是DeepSeek-r1模型:

image-20250205154710576

然后,点击它,在打开的页面中我们可以选择想要下载的各种量级的模型,右侧则是对应的模型下载命令:

image-20250205154929276

我这里下载1.5b的轻量级deepseek模型进行演示,大家可以根据自己喜好选择其他量级的模型:

它的下载命令是:

ollama run deepseek-r1:1.5b

在刚才打开的cmd终端中,执行这行命令:

PS:同样需要预留2G以上存储空间

稍等一会儿就能看到deepseek模型已经下载到了本地电脑,并提示我们可以发送信息进行交互了!

image-20250205155421941

输入问题,马上就能收到回答,速度挺快的:

image-20250205155724879

3. 安装图形化界面

现在我们已经能够在本地Windows电脑上正常使用deepseek-r1模型与AI进行聊天了,但像开头说的那样,这个界面可能不是很美观,在复制回答时也不太方便,我们可以通过安装一个GUI界面来解决这个问题。

本教程以Open WebUI这个项目为例,使用Docker进行安装,它以前的名字就叫 Formerly Ollama WebUI。可以理解为一开始就是专门适配Ollama的WebUI,它的界面也对用惯了chatgpt的小伙伴来说更相似一些。当然,大家也可以选择其他的WebUI。

3.1 Windows系统安装Docker

如果大家之前未安装过Docker,可以参考下方教程进行安装:

首先,选择要安装的Docker版本进行安装:

下载地址

  1. 国内用户优先下载地址:

    https://github.com/tech-shrimp/docker_installer/releases/download/latest/docker_desktop_installer_windows_x86_64.exe

  2. 适用于Windows的Docker桌面 – x86_64:
    [https://desktop.docker.com/win/main/amd64/Docker%20Desktop%20Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-amd64&_gl=1rjke9f_gcl_auMjAxNTA4ODQwMy4xNzI1ODYzMTMx_gaMTc3ODM4NTkyMy4xNzI0MDM2OTcw_ga_XJWPQMJYHQMTczMDI2OTA1NC42LjEuMTczMDI2OTQwNC4zOC4wLjA.](https://desktop.docker.com/win/main/amd64/Docker Desktop Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-amd64&_gl=1rjke9f*_gcl_auMjAxNTA4ODQwMy4xNzI1ODYzMTMx_gaMTc3ODM4NTkyMy4xNzI0MDM2OTcw_ga_XJWPQMJYHQ*MTczMDI2OTA1NC42LjEuMTczMDI2OTQwNC4zOC4wLjA.)

  3. 适用于Windows的Docker Desktop Arm(测试版)
    [https://desktop.docker.com/win/main/arm64/Docker%20Desktop%20Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-arm64&_gl=118eu5gs_gcl_auMjAxNTA4ODQwMy4xNzI1ODYzMTMx_gaMTc3ODM4NTkyMy4xNzI0MDM2OTcw_ga_XJWPQMJYHQMTczMDI2OTA1NC42LjEuMTczMDI2OTQwNi4zNi4wLj](https://desktop.docker.com/win/main/arm64/Docker Desktop Installer.exe?utm_source=docker&utm_medium=webreferral&utm_campaign=docs-driven-download-win-arm64&_gl=118eu5gs*_gcl_auMjAxNTA4ODQwMy4xNzI1ODYzMTMx_gaMTc3ODM4NTkyMy4xNzI0MDM2OTcw_ga_XJWPQMJYHQ*MTczMDI2OTA1NC42LjEuMTczMDI2OTQwNi4zNi4wLj)

可选: 如果想自己指定安装目录,可以使用命令行的方式 参数 –installation-dir=D:\Docker可以指定安装位置

start /w "" "Docker Desktop Installer.exe" install --installation-dir=D:\Docker

然后点击任务栏搜索功能,启用”适用于Linux的Windows子系统” 、”虚拟机平台”

image.png

然后使用管理员权限打开命令提示符,安装wsl2:

wsl --set-default-version 2
wsl --update --web-download

等待wsl安装成功:

image.png

然后再次重启电脑,重启后点击桌面的Docker Desktop图标:选择先不注册直接登录即可。

image-20240412135009554

打开Docker Desktop后,左下角显示是绿色的running就代表我们成功了:

image-20240412135830591

PS:**Windows配置镜像站:**如无科学上网情况,可手动配置镜像站:
Setting->Docker Engine->添加上换源的那一段,如下图:image.png保存后即可正常使用Docker.

也可以打开终端,比如powershell,然后输入docker,回车:

image-20240412143329625

可以看到这个命令成功运行,同样说明docker安装成功。

3.2 Docker部署Open WebUI

然后访问Open WebUI的github页面 https://github.com/open-webui/open-webui

可以看到,如果你的Ollama和Open WebUI在同一台主机,那使用下面显示的这一行命令在cmd终端中就可以在本地快速进行部署:

image-20240412140749937

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

将上边在docker中部署Open WebUI的命令复制后粘贴到终端中,回车:

image-20240412143603992

然后等待安装完毕即可:如下图所示:

image-20240412144132799

安装完成后,在Docker Desktop中可以看到Open WebUI的web界面地址为:https://localhost:3000

image-20240412144401182

点击后,会在浏览器打开登录界面:

image-20240412144744192

点击sign up注册,账号,邮箱,密码记好,下次登录时需要用到邮箱和密码登录:

image-20240412144927140

然后点击create account创建账号即可:然后就能在浏览器中使用类似chatgpt界面的Open WebUI了!

image-20250205162722922

3.3 添加Deepseek模型

点击右上角的设置,可以修改当前界面的语言为简体中文:然后点击保存即可。

image-20240412145306289

image-20240412145337352

点击上方选择一个模型旁边的加号+可以增加大模型,点击下拉按钮可以选择当前使用哪一个已安装的模型,这里选择刚才安装的DeepSeek-r1:1.5b,接下来就可以愉快的跟DeepSeek-r1大模型在网页中聊天了!

image-20250205162855286

image-20250205163120653

到这里就成功部署了DeepSeek并使用Open WebUI在网页中与AI交互,之后你可以根据自己的需求训练 DeepSeek,将 DeepSeek 训练成自己专用AI助手。

4. 安装内网穿透工具

但如果想实现不在同一网络环境下,也能随时随地在线使用Open WebUI与本地部署的DeepSeek-r1大模型在网页中聊天,那就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透,过程同样非常简单:

首先进入cpolar官网:

cpolar官网地址: https://www.cpolar.com

点击免费使用注册一个账号,并下载最新版本的cpolar:

img

登录成功后,点击下载cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。

image-20240319175308664

cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到配置界面,结下来在WebUI管理界面配置即可。

img

接下来配置一下 Open WebUI 的公网地址,

登录后,点击左侧仪表盘的隧道管理——创建隧道,

  • 隧道名称:deepseek1(可自定义命名,注意不要与已有的隧道名称重复)
  • 协议:选择 http
  • 本地地址:3000 (本地访问的地址)
  • 域名类型:选择随机域名
  • 地区:选择China Top

image-20250205163908347

隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https:

image-20250205163938117

使用上面的任意一个公网地址,在手机或任意设备的浏览器进行登录访问,即可成功看到 Open WebUI 界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到随时在线访问Open WebUI来在网页中使用本地部署的Deepseek大模型了!

image-20250205164201330

image-20250205164242912

小结

为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。

如果有长期远程访问Open WebUI使用DeepSeek,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来为Open WebUI配置一个公网地址。

5. 配置固定公网地址

接下来演示如何为其配置固定的HTTP公网地址,该地址不会变化,方便分享给别人长期查看你部署的项目,而无需每天重复修改服务器地址。

登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称:

image-20250205164651212

保留成功后复制保留成功的二级子域名的名称:mydpsk,大家也可以设置自己喜欢的名称。

image-20250205164733794

返回Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道:deepseek1,点击右侧的编辑:

image-20250205164821363

修改隧道信息,将保留成功的二级子域名配置到隧道中

  • 域名类型:选择二级子域名
  • Sub Domain:填写保留成功的二级子域名:mydpsk

点击更新(注意,点击一次更新即可,不需要重复提交)

image-20250205164907143

更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:

image-20250205164940415

最后,我们使用固定的公网https地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地在公网环境异地在线访问本地部署的Open WebUI来使用DeepSeek模型了!

image-20250205165142086

以上就是如何在Windows系统本地安装Ollama大模型工具并使用docker部署Open WebUI,结合cpolar内网穿透工具实现公网访问本地部署的deepseek-r1大模型,并配置固定不变的二级子域名公网地址实现远程访问的全部流程,感谢您的观看,有任何问题欢迎留言交流。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/965205.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LabVIEW与PLC交互

一、写法 写命令立即读出 写命令后立即读出,在同一时间不能有多个地方写入,因此需要在整个写入后读出过程加锁 项目中会存在多个循环并行执行该VI,轮询PLC指令 在锁内耗时,就是TCP读写的实际耗时为5-8ms,在主VI六个…

【PDF多区域识别】如何批量PDF指定多个区域识别改名,基于Windows自带的UWP的文字识别实现方案

海关在对进口货物进行查验时,需要核对报关单上的各项信息。对报关单 PDF 批量指定区域识别改名后,海关工作人员可以更高效地从文件名中获取关键信息,如货物来源地、申报价值等。例如文件名 “[原产国]_[申报价值].pdf”,有助于海关快速筛选重点查验对象,提高查验效率和监管…

用python实现进度条

前言 在Python中,可以使用多种方式实现进度条。以下是几种常见的进度条格式的实现方法: 1. 使用 tqdm 库 tqdm 是一个非常流行的库,可以轻松地在循环中显示进度条。 from tqdm import tqdm import time# 示例:简单的进度条 fo…

每日一题洛谷P5721 【深基4.例6】数字直角三角形c++

#include<iostream> using namespace std; int main() {int n;cin >> n;int t 1;for (int i 0; i < n; i) {for (int j 0; j < n - i; j) {printf("%02d",t);t;}cout << endl;}return 0; }

Python----Python高级(并发编程:进程Process,多进程,进程间通信,进程同步,进程池)

一、进程Process 拥有自己独立的堆和栈&#xff0c;既不共享堆&#xff0c;也不共享栈&#xff0c;进程由操作系统调度&#xff1b;进程切换需要的资源很最大&#xff0c;效率低。 对于操作系统来说&#xff0c;一个任务就是一个进程&#xff08;Process&#xff09;&#xff…

Python 梯度下降法(六):Nadam Optimize

文章目录 Python 梯度下降法&#xff08;六&#xff09;&#xff1a;Nadam Optimize一、数学原理1.1 介绍1.2 符号定义1.3 实现流程 二、代码实现2.1 函数代码2.2 总代码 三、优缺点3.1 优点3.2 缺点 四、相关链接 Python 梯度下降法&#xff08;六&#xff09;&#xff1a;Nad…

《Kettle保姆级教学-界面介绍》

目录 一、Kettle介绍二、界面介绍1.界面构成2、菜单栏详细介绍2.1 【文件F】2.2 【编辑】2.3 【视图】2.4 【执行】2.5 【工具】2.6 【帮助】 3、转换界面介绍4、作业界面介绍5、执行结果 一、Kettle介绍 Kettle 是一个开源的 ETL&#xff08;Extract, Transform, Load&#x…

Spring Boot篇

为什么要用Spring Boot Spring Boot 优点非常多&#xff0c;如&#xff1a; 独立运行 Spring Boot 而且内嵌了各种 servlet 容器&#xff0c;Tomcat、Jetty 等&#xff0c;现在不再需要打成 war 包部署到 容器 中&#xff0c;Spring Boot 只要打成一个可执行的 jar 包就能独…

C# 中记录(Record)详解

从C#9.0开始&#xff0c;我们有了一个有趣的语法糖&#xff1a;记录(record)   为什么提供记录&#xff1f; 开发过程中&#xff0c;我们往往会创建一些简单的实体&#xff0c;它们仅仅拥有一些简单的属性&#xff0c;可能还有几个简单的方法&#xff0c;比如DTO等等&#xf…

Page Assist - 本地Deepseek模型 Web UI 的安装和使用

Page Assist Page Assist是一个开源的Chrome扩展程序&#xff0c;为本地AI模型提供一个直观的交互界面。通过它可以在任何网页上打开侧边栏或Web UI&#xff0c;与自己的AI模型进行对话&#xff0c;获取智能辅助。这种设计不仅方便了用户随时调用AI的能力&#xff0c;还保护了…

UE求职Demo开发日志#21 背包-仓库-装备栏移动物品

1 创建一个枚举记录来源位置 UENUM(BlueprintType) enum class EMyItemLocation : uint8 {None0,Bag UMETA(DisplayName "Bag"),Armed UMETA(DisplayName "Armed"),WareHouse UMETA(DisplayName "WareHouse"), }; 2 创建一个BagPad和WarePa…

Django框架丨从零开始的Django入门学习

Django 是一个用于构建 Web 应用程序的高级 Python Web 框架&#xff0c;Django是一个高度模块化的框架&#xff0c;使用 Django&#xff0c;只要很少的代码&#xff0c;Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容&#xff0c;并进一步开发出全功能…

企业四要素如何用PHP进行调用

一、什么是企业四要素&#xff1f; 企业四要素接口是在企业三要素&#xff08;企业名称、统一社会信用代码、法定代表人姓名&#xff09;的基础上&#xff0c;增加了一个关键要素&#xff0c;通常是企业注册号或企业银行账户信息。这种接口主要用于更全面的企业信息验证&#x…

JVM监控和管理工具

基础故障处理工具 jps jps(JVM Process Status Tool)&#xff1a;Java虚拟机进程状态工具 功能 1&#xff1a;列出正在运行的虚拟机进程 2&#xff1a;显示虚拟机执行主类(main()方法所在的类) 3&#xff1a;显示进程ID(PID&#xff0c;Process Identifier) 命令格式 jps […

Java 大视界 -- Java 大数据在智慧文旅中的应用与体验优化(74)

&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎来到 青云交的博客&#xff01;能与诸位在此相逢&#xff0c;我倍感荣幸。在这飞速更迭的时代&#xff0c;我们都渴望一方心灵净土&#xff0c;而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识&#xff0c;也…

ASP.NET Core中间件Markdown转换器

目录 需求 文本编码检测 Markdown→HTML 注意 实现 需求 Markdown是一种文本格式&#xff1b;不被浏览器支持&#xff1b;编写一个在服务器端把Markdown转换为HTML的中间件。我们开发的中间件是构建在ASP.NET Core内置的StaticFiles中间件之上&#xff0c;并且在它之前运…

2025游戏行业的趋势预测

一、市场现状 从总产值的角度来看&#xff0c;游戏总产值的增长率已经放缓&#xff0c;由增量市场转化为存量市场&#xff0c;整体的竞争强度将会加大&#xff0c;技术水平不强&#xff08;开发技术弱、产品品质低、开发效率低&#xff09;的公司将会面临更大的生存的困难。 从…

C++的 I/O 流

本文把复杂的基类和派生类的作用和关系捋出来&#xff0c;具体的接口请参考相关文档 C的 I/O 流相关的类&#xff0c;继承关系如下图所示 https://zh.cppreference.com/w/cpp/io I / O 的概念&#xff1a;内存和外设进行数据交互称为 I / O &#xff0c;例如&#xff1a;把数…

在https下引用IC卡读卡器web插件

HTTPS &#xff08;全称&#xff1a;Hypertext Transfer Protocol Secure &#xff09;&#xff0c;是以安全为目标的 HTTP 通道&#xff0c;在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 。HTTPS 在HTTP 的基础下加入SSL&#xff0c;HTTPS 的安全基础是 SSL&a…

堆的实现——堆的应用(堆排序)

文章目录 1.堆的实现2.堆的应用--堆排序 大家在学堆的时候&#xff0c;需要有二叉树的基础知识&#xff0c;大家可以看我的二叉树文章&#xff1a;二叉树 1.堆的实现 如果有⼀个关键码的集合 K {k0 , k1 , k2 , …&#xff0c;kn−1 } &#xff0c;把它的所有元素按完全⼆叉树…