本地搭建DeepSeek-R1、WebUI的完整过程及访问

2025-02-11 04:50

本文主要是介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主...

背景       

最近几年,人工智能技术的发展势头愈发强劲。无论是大型语言模型的突破,如美国OpenAI公司开发的ChatGPT,还是中国诸家企业在自主学习系统领域的快速进步,都展现了人工智能技术的前所未有的潜力和变革力量。这不仅仅是技术本身的飞速发展,China编程更是人类对知识边界与认知极限的一次深度探索。从自然语言处理到计算机视觉,从强化学习到生成式AI,技术创新层出不穷,为人类社会js带来了前所未有的变革。

在这场技术革命中,我们欣喜地看到AI系统能够以接近或超越人类水平的能力,完成复杂的知识推理、多任务处理以及创造性思考。例如,DeepSeek等中国公司开发的智能搜索引擎,不仅在信息检索方面取得了显著进展,还展现出独特的领域适应能力。此外,AI技术的应用已经渗透到各个行业,从医疗、教育到金融,每一个领域都在经历着前所未有的数字化与智能化转型。在这个充满挑战与机遇的时代,我们需要以更加开放和包容的心态,拥抱人工智能带来的变革,同时也要保持对未知未来的一种敬畏与谨慎。

本文旨在详Lbcysozbd细介绍如何离线搭建DeepSeek-R1,主要为企业级开发使用。另外官方线上环境因火爆的访问量及持续遭受每秒上亿次的DOS恶意请求,导致访问体验感不好的小伙伴也可以进行离线搭建使用。

仅需线上体验的朋友可以直接跳转官网链接。

搭建准备

本地搭建DeepSeek-R1、WebUI的完整过程及访问

本地搭建DeepSeek-R1、WebUI的完整过程及访问

基础概念

Ollama 是一个开源的人工智能平台,专注于大语言模型(Large Language Model, LLM)的本地部署和管理。它允许开发者在自己的服务器上运行多种预训练语言模型,如 GPT-3 或 ChatGPT,并通过 RESTful API 提供服务。Ollama 的核心优势在于其高效的本地推理能力,能够在资源有限的环境下快速响应用户查询。如下附上Ollama基础指令。

#1.启动ollama服务
ollama serve
#2.创建模型 (create);使用 Modelfile 来创建一个新模型。你需要提供一个包含模型信息的 Modelfile。
ollama create /path/to/Modelfile
#3.显示模型信息 (show);查看特定模型的详细信息,例如模型名称、版本等。
ollama show model_name
#4.列出所有模型 (list);列出本地所有可用的模型,可以在这里查找模型名称。
ollama list
ollama ls
#5.运行模型 (run);运行一个已安装的模型,执行某些任务。
ollama run model_name
#6.列出正在运行的模型 (ps);显示当前正在运行的模型列表。
ollama ps
#7.删除模型 (rm);删除一个已安装的模型。
ollama rm model_name
#8.查看版本 (version);显示当前 ollama 工具的版本信息。
ollama -v
ollama --version
#9.复制模型 (cp);复制一个模型到另一个位置或给定名称的地方。
ollama cp old_model new_model
#10.Lbcysozbd注册表拉取模型 (pull);从模型注册表中拉取一个模型,供本地使用。
ollama pull model_name
#11.推送模型到注册表 (push);将本地模型推送到模型注册表中,以便他人或其他系统使用。
ollama push model_name

Docker是一种开源的容器化平台,用于将软件及其所有依赖环境打包到镜像文件中,以便于在任何环境下轻松运行。此处使用docker主要用于运行open-webui,以便于更方便的使用DeepSeek-R1。

搭建过程

上述安装产品安装成功之后,便可以开始着手搭建DeepSeek-R1。

  • 首先在ollama官网查询 deepseek 或者 deepseek-r1

本地搭建DeepSeek-R1、WebUI的完整过程及访问

  • 如下图目前存在28个tag,按照我们自身电脑配置选择对应的版本,同时复制右侧命令。

数字后面的b代表着算力参数,随着参数增加,训练和 inference 的计算量也显著增加,但也要选择和本地硬件相匹配。

本地搭建DeepSeek-R1、WebUI的完整过程及访问

配置对照表

本地搭建DeepSeek-R1、WebUI的完整过程及访问

  • MAC用户打开终端(Windows用户打开CMD)输入上述复制命令

下载结束且成功之后(出现三个箭头),则可以进行问答。前期下载速度还是蛮快的,后面速度会越来越慢(FQ可有效提高下载速度),可以手动 control c 结束之后重新运行(会接着进行下载)。

本地搭建DeepSeek-R1、WebUI的完整过程及访问

下载成功之后可以查询到下载的模型信息

本地搭建DeepSeek-R1、WebUI的完整过程及访问

  • 安装WebUI

如上小黑框中的交互方式显然不能满足我们的要求,我们需要一个友好的交互页面(如ChatGpt一样),还可以记录下我们对话的内容。此时引入open web ui。

登录docker客户端并点击terminal输入如下命令:

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 run :使用命令启动一个新的Docker容器。

  • -d :表示运行容器时在后台,避免终端被占据。

  • -p 3000:8080 :将宿主机的端口3000映射到容器内的端口8080。这样,外部访问的请求会被转发到容器内的8080端口,以供WebUI服务提供响应。

  • --add-host=host.docker.internal:host-gateway :为Docker容器网络配置添加一个宿主名。host.docker.internal 是Docker默认配置的一个虚拟IP地址,允许容器访问主机网络中的其他服务,如本地服务器或数据库等。

  • --name open-webui :指定容器的名称为 open-webui,方便在后续操作中通过名称管理和停止容器。

  • ghcr.io/open-webui/open-webui:main :从github Container Registry(GHCR)拉取镜像。open-webui:main 表示使用仓库中的 open-webui 项目的主分支镜像。如果没有权限访问该镜像,Docker命令将失败。

  • --restart always :设置容器重启策略,当容器退出时自动启动新实例,以确保服务持续运行,避免应用程序故障导致服务中断。

  • -v open-webui:/app/backend/data :创建一个匿名卷,将宿主机的文件夹 open-webui 挂载到容器内的路径 /app/backend/data。这允许容器在运行期间生成或修改数据,而这些数据会被保存到宿主机的指定文件夹中,方便后续管理和持久化。

通过以上命令,您可以在本地启动一个WebUI服务,外部用户可以通过宿主机的3000端口访问。容器将自动重启,以应对崩溃或终止情况,并且数据会被持久保存以供后续使用。

本地搭建DeepSeek-R1、WebUI的完整过程及访问

访问

WebUI本地访问地址: http://localhost:3000/

 登录成功之后可以选择我们下载好的对应模型进行Lbcysozbd对话。

本地搭建DeepSeek-R1、WebUI的完整过程及访问

对话测试

本地搭建DeepSeek-R1、WebUI的完整过程及访问

综上,我们就完成了deepseek r1 的本地搭建。于用户角度,与ChatGpt相比,deepseek独有的思考过程让人眼前一亮。

总结

到此这篇关于本地搭建DeepSeek-R1、WebUI的文章就介绍到这了,更多相关本地搭建DeepSeek-R1、WebUI内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于本地搭建DeepSeek-R1、WebUI的完整过程及访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1153385

相关文章

Java Kafka消费者实现过程

《JavaKafka消费者实现过程》Kafka消费者通过KafkaConsumer类实现,核心机制包括偏移量管理、消费者组协调、批量拉取消息及多线程处理,手动提交offset确保数据可靠性,自动提交... 目录基础KafkaConsumer类分析关键代码与核心算法2.1 订阅与分区分配2.2 拉取消息2.3

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

使用Spring Cache本地缓存示例代码

《使用SpringCache本地缓存示例代码》缓存是提高应用程序性能的重要手段,通过将频繁访问的数据存储在内存中,可以减少数据库访问次数,从而加速数据读取,:本文主要介绍使用SpringCac... 目录一、Spring Cache简介核心特点:二、基础配置1. 添加依赖2. 启用缓存3. 缓存配置方案方案

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

使用Java读取本地文件并转换为MultipartFile对象的方法

《使用Java读取本地文件并转换为MultipartFile对象的方法》在许多JavaWeb应用中,我们经常会遇到将本地文件上传至服务器或其他系统的需求,在这种场景下,MultipartFile对象非... 目录1. 基本需求2. 自定义 MultipartFile 类3. 实现代码4. 代码解析5. 自定

AOP编程的基本概念与idea编辑器的配合体验过程

《AOP编程的基本概念与idea编辑器的配合体验过程》文章简要介绍了AOP基础概念,包括Before/Around通知、PointCut切入点、Advice通知体、JoinPoint连接点等,说明它们... 目录BeforeAroundAdvise — 通知PointCut — 切入点Acpect — 切面

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

MySQ中出现幻读问题的解决过程

《MySQ中出现幻读问题的解决过程》文章解析MySQLInnoDB通过MVCC与间隙锁机制在可重复读隔离级别下解决幻读,确保事务一致性,同时指出性能影响及乐观锁等替代方案,帮助开发者优化数据库应用... 目录一、幻读的准确定义与核心特征幻读 vs 不可重复读二、mysql隔离级别深度解析各隔离级别的实现差异