当前位置: 首页 > article >正文

【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】

文章目录

    • 前言
      • 电脑配置:
      • 安装的Deepseek版本:
      • 使用的UI框架:
      • 体验效果展示:
      • 本地部署体验总结
    • 部署过程
      • Ollama部署
      • 拉取模型
      • 运行模型
      • Openwebui部署
      • 运行Ollama服务
      • 在Openwebui中配置ollama的服务
    • 后话

前言

deepseek最近火的一塌糊涂,谁还不知道deepseek感觉就已经是上古时期的人了,趁着有时间我赶紧研究了一下本地部署,deepseek有很多蒸馏版的模型,对硬件要求不是很高,这就让本地部署变成了可能,于是我迫不及待的在我的mac电脑上试了一下,嘿,还挺丝滑。

现在将部署的过程分享如下:

电脑配置:

芯片 Apple M1 pro

内存 16G

macOs Sequoia 版本15.3.1

安装的Deepseek版本:

Deepseek-r1:8b(我之前装的是8b版本)

Deepseek-r1:7b(为了演示截图,我再装一个7b版本)

使用的UI框架:

Openwebui(基于docker部署的)

体验效果展示:

deepseek本地部署聊天界面

deepseek调用comfyui绘画

deepseek调用文心一言api

openwebui调用文生图api生成图片

调用文生图api生成的图片

支持联网搜索功能

整体来说部署到本地是可以玩的,响应的速度也在可以接受的范围内,配合上openwebui,还可以有文生图,联网搜索,调用API接口等玩法。

本地部署体验总结

由于机器配置有限,我仅仅部署了7b的模型,智商非常有限,所以仅限于玩玩了,如果有比较土豪的大佬,部署更大参数的模型,那部署在本地,作为生产力工具也是可以的。

但是真正的处理工作啥的,我建议还是老实用线上版本,毕竟线上是满血版,不是咱们这些小破电脑能跑起来的。

deepseek线上版:https://chat.deepseek.com/

如果老是显示服务器繁忙,也可以找平替,有很多大厂都已经接入了deepseek,响应速度都还非常不错,比如:

百度搜索:https://chat.baidu.com/

腾讯元宝:https://yuanbao.tencent.com/(默认是混元大模型,需要自己手动切换成deepseek-r1)

秘塔AI搜索:https://metaso.cn/

360纳米AI搜索:https://www.n.cn/

天工AI:https://www.tiangong.cn/

部署过程

废话不多说,直接来跟着我一步步进行部署:

Ollama部署

直接上官网:https://ollama.com/download,然后下载自己电脑适合的版本,安装即可。

下载完成后,解压,然后安装:

安装成功后,即可在终端进行调用了。

# 查看 Ollama 版本
ollama --version
# Ollama 命令帮助
ollama -h

如此,ollama的安装就搞定了。

接下来我们就来拉取deepseek的模型

拉取模型

# 拉取模型(我这里用的是先拉取,再运行)
ollama pull deepseek-r1:7b

运行模型

等待拉取结束,运行模型

#运行 deepseek-r1:7b模型
ollama run deepseek-r1:7b

可以看到已经模型已经正常运行了,可以正常进行对话了。输入 /bye 可以结束在终端的对话。

此时已经成功将deepseek-r1:7b模型在本地跑起来了,但是这和别人用的都不太一样,而且在终端对话始终不是那么的方便,那么怎么办呢?

Openwebui部署

接下来就祭出 Openwebui,相对可玩性比较高的一个大语言模型的UI框架,我们来用ollama作为服务端,Openwebui作为前端,部署起来进行访问。

这里我只介绍使用docker进行部署,因为比较方便,其他方式有兴趣的朋友自己研究即可。

什么?电脑没有安装docker?mac电脑安装docker可以说是有手就会,我就不过多介绍了,实在不会的,参考这个教程:https://www.runoob.com/docker/macos-docker-install.html

docker安装成功后,我们来使用docker安装Openwebui

# 拉取镜像并映射端口运行
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v $HOME/Documents/myDockerData/openwebui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

可以看到 已经拉取镜像成功,并且端口映射好,而且启动起来了

此时访问 http://localhost:3000/ 就可以进入到Openwebui的界面了。

首次进入可能需要稍微等待几分钟,然后就会出来界面,

点击开始使用,然后进行注册,登录即可使用。首次注册的账号即为管理员账号。

运行Ollama服务

我们需要使用Ollama作为后端,提供API接口的服务,所以需要将这个服务启动起来。

#启动ollama服务,默认监听端口是11434
ollama serve

访问http://localhost:11434/可以看到服务是否启动成功:

显示Ollama is running 说明服务已经成功启动了。

在Openwebui中配置ollama的服务

在个人头像-设置-管理员面板-外部连接页面,打开Ollama API的开关,填写API的地址:http://host.docker.internal:11434

注意:由于此处是在docker中进行运行的Openwebui,但是ollama是在本地直接运行的,所以配置到这里必须这样配置才可以生效,如果配置为localhost:3000 是不起作用的。

配置完成之后,就可以测试聊天了。

选择相应的模型,然后直接开始对话即可。

至此,大功告成!你已经可以在本地运行大模型,并且可以使用网页进行对话了。

后话

至于文章开始展示的集成本地文生图模型、调用api文生图功能,或者调用api接口chat,以及调用联网搜索功能的这些分支,还需要再逐一进行讲解。

如果你有以上某方面的需要,请在评论区进行留言,我将视情况再做后续的文章更新。

感谢各位大佬的观看~ 下期再见~

相关文章:

【Mac电脑本地部署Deepseek-r1:详细教程与Openwebui配置指南】

文章目录 前言电脑配置:安装的Deepseek版本:使用的UI框架:体验效果展示:本地部署体验总结 部署过程Ollama部署拉取模型运行模型Openwebui部署运行Ollama服务在Openwebui中配置ollama的服务 后话 前言 deepseek最近火的一塌糊涂&a…...

网络安全学习中,web渗透的测试流程是怎样的?

渗透测试是什么?网络安全学习中,web渗透的测试流程是怎样的? 渗透测试就是利用我们所掌握的渗透知识,对网站进行一步一步的渗透,发现其中存在的漏洞和隐藏的风险,然后撰写一篇测试报告,提供给我…...

将VsCode变得顺手好用(1

目录 设置中文 配置调试功能 提效和增强相关插件 主题和图标相关插件 创建js文件 设置中文 打开【拓展】 输入【Chinese】 下载完成后重启Vs即可变为中文 配置调试功能 在随便一个位置新建一个文件夹,用于放置调试文件以及你未来写的代码,随便命名但…...

【MySQL篇】表的操作

1,创建表 语法: create table ( field1 datatype, field2 datatype, field3 datatype )charset 字符集 collate 校验规则 engine 存储引擎; 说明: field表示列名datatype表示列的类型charset字符集,如果没有指明,则…...

第6_7章_管理权限评估和测试策略

管理权限 权限将受保护的对象与必须评估以决定是否应授予访问权限的策略相关联。 在创建要保护的资源以及要用于保护这些资源的策略后, 您可以开始管理权限。要管理权限,请在编辑资源服务器时单击 Permissions 选项卡。 可以创建权限来保护两种主要类…...

2025年网校系统源码开发趋势:技术革新的教育培训APP搭建实战

2025年,随着AI、大数据、云计算等技术的深度融合,网校教育系统的源码开发也迎来了新的发展趋势。本文将深入探讨这些趋势,并结合教育培训APP的开发实战,展示如何应对未来的技术挑战。 一、2025年网校教育系统源码的技术趋势 AI驱…...

Linux驱动开发实战(一):LED控制驱动详解

Linux驱动开发野火实战(一):LED控制驱动详解 文章目录 Linux驱动开发野火实战(一):LED控制驱动详解引言一、基础知识1.1 什么是字符设备驱动1.2 重要的数据结构read 函数write 函数open 函数release 函数 二…...

PowerShell 执行策略:fnm管理软件安装nodejs无法运行npm,错误信息:about_Execution_Policies

通过fnm管理软件安装NodeJS后添加环境变量依然无法执行npm,提示无法加载文件,错误如下: PowerShell 执行策略简介: PowerShell 执行策略是一项安全功能,用于控制 PowerShell 加载配置文件和运行脚本的条件。 此功能有助于防止恶…...

论文阅读笔记:Deep Face Recognition: A Survey

论文阅读笔记:Deep Face Recognition: A Survey 1 介绍2 总览2.1 人脸识别组件2.1.1 人脸处理2.1.2 深度特征提取2.1.3 基于深度特征的人脸对比 3 网络结构和损失函数3.1 判别损失函数的演化3.1.1 基于欧式距离的损失3.1.2 基于角度/余弦边距的损失3.1.3 Softmax损失…...

本地dify绑定notion

需要用到 notion 的“集成”功能。对于个人用户来说,选择使用**内部 internal **集成,公司用户可以考虑使用公开 public 集成。 在下面的 notion 集成网站中申请一个新的集成: Notion – The all-in-one workspace for your notes, tasks, …...

k8s中pod的调度策略之pod的亲和性调度与反亲和性调度 一文搞懂 k8s中创建的pod如何调度?

接上文写的Node亲和性调度https://blog.csdn.net/soso678/article/details/144777397 Pod 间的亲和性和反亲和性(Affinity/AntiAffinity)调度 Pod 间亲和性与反亲和性使你可以基于已经在节点上运行的 Pod 的标签来约束 Pod 可以调度到的节点&#xff0…...

JSON Schema 入门指南:如何定义和验证 JSON 数据结构

文章目录 一、引言二、什么是 JSON Schema?三、JSON Schema 的基本结构3.1 基本关键字3.2 对象属性3.3 数组元素3.4 字符串约束3.5 数值约束 四、示例:定义一个简单的 JSON Schema五、使用 JSON Schema 进行验证六、实战效果6.1 如何使用 七、总结 一、引…...

借DeepSeek的风思考:未来可通过AI+视觉识别技术,实现足球比赛中的教练决策指挥系统,以此提高中国足球冲出亚洲夺取世界杯冠军

国家如此强大,必须需要提升国足冲向世界,一雪前耻的了。现在我脑洞大开,提出以下思路寄望国家重视。具体思考如下: 通过AI视觉识别技术实现足球比赛中的教练决策指挥系统,有潜力提升中国足球的竞争力。但要实现这一目标…...

DeepSeek今日连开3源!针对优化的并行策略,梁文锋本人参与开发

DeepSeek开源周第四天,直接痛快「1日3连发」,且全都围绕一个主题: 优化并行策略。 DualPipe:一种创新的双向流水线并行算法,能够完全重叠前向和后向计算-通信阶段,并减少“流水线气泡”。它通过对称的微批…...

【含文档+PPT+源码】基于过滤协同算法的旅游推荐管理系统设计与实现

项目介绍 本课程演示的是一款基于过滤协同算法的旅游推荐管理系统设计与实现,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含:项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套…...

蓝桥杯2024年第十五届省赛真题-传送阵

#include<stdio.h> #include<stdbool.h> #define MAX 100000 int circle[MAX];//记录每个环大小 int parent[MAX];//记录每个传送阵所属的环 int m[MAX]; bool visited[MAX]; int circleIndex0;//当前环的编号 //迭代实现换的查找void findcircle(int start){int c…...

数据存储:一文掌握存储数据到mysql的详细使用

文章目录 一、环境准备1.1 安装MySQL数据库1.2 安装Python MySQL驱动 二、连接到MySQL数据库三、执行基本的CRUD操作3.1 创建&#xff08;Create&#xff09;&#xff1a;插入数据3.2 读取&#xff08;Read&#xff09;&#xff1a;查询数据3.3 更新&#xff08;Update&#xf…...

【华为OD机考】华为OD笔试真题解析(15)--异常的打卡记录

题目描述 考勤记录是分析和考核职工工作时间利用情况的原始依据&#xff0c;也是计算职工工资的原始依据&#xff0c;为了正确地计算职工工资和监督工资基金使用情况&#xff0c;公司决定对员工的手机打卡记录进行异常排查。 如果出现以下两种情况&#xff0c;则认为打卡异常…...

Java实战:使用HttpClient实现图片下载与本地保存

在当今数字化时代&#xff0c;网络资源的获取与处理已成为软件开发中的常见需求。其中&#xff0c;图片作为网络上最常见的资源之一&#xff0c;其下载与保存功能在许多应用场景中都显得尤为重要。无论是社交媒体平台、电商平台&#xff0c;还是个人项目&#xff0c;能够高效地…...

【实战】使用PCA可视化神经网络提取后的特征空间【附源码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...

DeepSeek05-大模型WebUI

一、说明&#xff1a; 将DeepSeek部署到前台Web界面的方法主要有以下几种推荐方案&#xff0c;涵盖开源工具、第三方客户端及特定场景适配方案&#xff1a; Open WebUIChatbox AICherry StudioSillyTavern 二、Open WebUI 安装配置教程 特点&#xff1a;Open WebUI 是一个开…...

第14天:C++异常处理实战指南 - 构建安全的文件解析系统

第14天&#xff1a;C异常处理实战指南 - 构建安全的文件解析系统 一、今日学习目标 &#x1f3af; 掌握C异常处理的核心语法与流程&#x1f6e1;️ 理解RAII在资源管理中的关键作用&#x1f4e6; 创建自定义文件解析异常体系&#x1f680; 实现安全的文件解析器原型 二、C异常…...

JavaScript遍历方式总结

目录 一、数组遍历方法 1.1for循环 1.2for...of循环 1.3forEach 1.4map方法 1.5filter方法 1.6reduce方法 1.7some方法 1.8every方法 二、对象遍历方法 2.1for...in方法 2.2values、keys方法 2.3entries方法 一、数组遍历方法 1.1for循环 最普通的循环&#xf…...

Python毕业设计选题:基于Python的社区爱心养老管理系统设计与实现_django

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 身体健康界面 公共书籍界面 借阅信息界面 归还…...

Spring Boot整合WebSocket

目录 ?引言 1.WebSocket 基础知识 ?1.1 什么是 WebSocket&#xff1f; ?1.2 WebSocket 的应用场景 ?2.Spring Boot WebSocket 整合步骤 2.1 创建 Spring Boot 项目 2.2 添加 Maven 依赖 2.3 配置 WebSocket 2.4 创建 WebSocket 控制器 2.5 创建前端页面 引言 在…...

Pycharm使用matplotlib出现的问题(1、不能弹出图表 2、图表标题中文不显示)

Pycharm使用matplotlib出现的问题 问题1&#xff1a;Pycharm调试时出现&#xff1a;AttributeError: module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? 排查原因&#xff1a;可能是由于matplotlib后端设置不正确或与运行环境不兼容引…...

《宇树科技:解锁机器人技术的未来密码》:此文为AI自动生成

走进宇树科技 在科技飞速发展的今天,机器人领域正以前所未有的速度蓬勃发展,成为全球瞩目的焦点。在这个充满创新与挑战的领域中,宇树科技宛如一颗璀璨的明星,闪耀着独特的光芒。它不仅在国内机器人行业占据着重要地位,更是在国际舞台上崭露头角,成为了中国机器人技术的…...

Spark map与mapPartitions算子源码级深度解析

Spark map与mapPartitions算子源码级深度解析 一、核心源码结构差异 1. map算子实现逻辑 def map[U: ClassTag](f: T => U): RDD[U] = withScope {val cleanF = sc.clean(f)new MapPartitionsRDD[U, T](this, (context, pid, iter) => iter.map(cleanF)) }实现特征: …...

在 Vue 3 中,如何缓存和复用动态组件

在 Vue 3 中&#xff0c;如何缓存和复用动态组件&#xff0c;这有助于提高应用的性能&#xff0c;避免组件重复创建和销毁带来的开销。下面详细介绍其使用方法和相关配置。 1. 使用 <KeepAlive> 组件缓存动态组件 基本使用 <KeepAlive> 是 Vue 3 内置的一个组件…...

【PromptCoder】使用 package.json 生成 cursorrules

【PromptCoder】使用 package.json 生成 cursorrules 在当今快节奏的开发世界中&#xff0c;效率和准确性至关重要。开发者们不断寻找能够优化工作流程、帮助他们更快编写高质量代码的工具。Cursor 作为一款 AI 驱动的代码编辑器&#xff0c;正在彻底改变我们的编程方式。但如…...