Mac 部署Ollama + OpenWebUI完全指南
文章目录
- 💻 环境说明
- 🛠️ Ollama安装配置
- 1. 安装[Ollama](https://github.com/ollama/ollama)
- 2. 启动Ollama
- 3. 模型存储位置
- 4. 配置 Ollama
- 🌐 OpenWebUI部署
- 1. 安装Docker
- 2. 部署[OpenWebUI](https://www.openwebui.com/)(可视化大模型对话界面)
- 🔒 离线部署方案
- ⚡ 性能优化建议
- ❓ 常见问题
- 🎉 结语
想拥有一个完全属于自己的AI助手,还不依赖互联网?本教程带你从零开始搭建本地AI环境!(Apple Silicon架构)
💻 环境说明
配置项 | Mac | Windows |
---|---|---|
操作系统 | macOS Sonoma | Windows 10/11 |
CPU | M4 | 12核或以上 |
内存 | 16GB | 32GB或以上 |
硬盘空间 | 20GB | 20GB或以上 |
🛠️ Ollama安装配置
1. 安装Ollama
# 使用Homebrew安装
brew install ollama# 或直接下载安装包
curl https://ollama.ai/download/Ollama-darwin.zip -o Ollama.zip
unzip Ollama.zip# 输入`ollama`或 `ollama -v`验证安装
ollama
2. 启动Ollama
# 启动Ollama服务
ollama serve
# 或点击浏览器访问:http://localhost:11434
显示Ollama is running
代表已经运行起来了!
# 下载Llama3 8B模型
ollama run llama3:8b # 建议先尝试小模型
💡 小贴士:你应该至少有 8 GB 的 RAM 来运行 7B 模型,16 GB 的 RAM 来运行 13B 模型,以及 32 GB 的 RAM 来运行 33B 模型。
3. 模型存储位置
Mac下,Ollama的默认存储位置:
- 模型文件:
~/.ollama/models
- 配置文件:
~/Library/Application Support/Ollama
Windows下,Ollama的默认存储位置:
- 程序目录:
C:\Users\<用户名>\AppData\Local\Programs\Ollama
- 模型目录:
C:\Users\<用户名>\.ollamamodels
- 配置文件:
C:\Users\<用户名>\AppData\Local\Ollama
💡 小贴士:建议通过环境变量OLLAMA_MODELS
自定义模型存储路径,避免占用系统盘空间。
4. 配置 Ollama
Ollama 提供了多种环境变量以供配置:
- OLLAMA_DEBUG:是否开启调试模式,默认为 false。
- OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
- OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
- OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
- OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
- OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
- OLLAMA_MAX_QUEUE:最大队列数,默认为空。
- OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
- OLLAMA_MODELS:模型目录,默认为空。
- OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
- OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
- OLLAMA_NUM_PARALLEL:并行数,默认为 1。
- OLLAMA_ORIGINS:允许的来源,默认为空。
- OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
- OLLAMA_SCHED_SPREAD:调度分布,默认为空。
- OLLAMA_TMPDIR:临时文件目录,默认为空。
- OLLAMA_DEBUG:是否开启调试模式,默认为 false。
- OLLAMA_FLASH_ATTENTION:是否闪烁注意力,默认为 true。
- OLLAMA_HOST:Ollama 服务器的主机地址,默认为空。
- OLLAMA_KEEP_ALIVE:保持连接的时间,默认为 5m。
- OLLAMA_LLM_LIBRARY:LLM 库,默认为空。
- OLLAMA_MAX_LOADED_MODELS:最大加载模型数,默认为 1。
- OLLAMA_MAX_QUEUE:最大队列数,默认为空。
- OLLAMA_MAX_VRAM:最大虚拟内存,默认为空。
- OLLAMA_MODELS:模型目录,默认为空。
- OLLAMA_NOHISTORY:是否保存历史记录,默认为 false。
- OLLAMA_NOPRUNE:是否启用剪枝,默认为 false。
- OLLAMA_NUM_PARALLEL:并行数,默认为 1。
- OLLAMA_ORIGINS:允许的来源,默认为空。
- OLLAMA_RUNNERS_DIR:运行器目录,默认为空。
- OLLAMA_SCHED_SPREAD:调度分布,默认为空。
- OLLAMA_TMPDIR:临时文件目录,默认为空。
🌐 OpenWebUI部署
1. 安装Docker
- 访问 Docker官网 下载Mac版本(Apple Silicon)
- 安装并启动Docker Desktop
- 配置国内镜像源加速下载(我这里
科学上网
不需要)
💡 小贴士:Windows 安装 Docker 需要开启 Hyper-V(Windows专业版必需)
2. 部署OpenWebUI(可视化大模型对话界面)
# 拉取镜像 (直接run默认会拉取 latest 标签的镜像)
docker pull ghcr.io/open-webui/open-webui:main#(官方文档)以上是从 GitHub Container Registry (GHCR) 上拉取镜像,而不是从 Docker Hub。
# 也可以docker hub 拉取 open-webui镜像
docker pull dyrnq/open-webui:main
# 启动容器
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
访问 http://localhost:3000
即可使用Web界面。
创建账号,这个是本地账号,随便添加账号信息即可
选择ollama中的模型,聊天测试
也可以在这里直接拉取模型
与下载的新模型进行对话
💡 小贴士:
- 注册时邮箱可以随便填写,设置密码后注意保存!
- ollama后台一定要运行着模型,如:ollama run phi-4
🔒 离线部署方案
如果需要在无网环境下部署,可以按照以下步骤操作:
-
在有网环境下准备资源:
- 下载Ollama安装包
- 导出模型文件
- 导出Docker镜像
-
离线环境部署:
- 安装Ollama
- 复制模型文件到指定目录
- 导入Docker镜像
- 启动OpenWebUI
⚡ 性能优化建议
-
内存管理
- 关闭不必要的后台应用
- 使用Activity Monitor监控内存使用
-
模型选择
- 建议从小模型开始测试
- 推荐模型大小顺序:
- qwen2:0.5b (最轻量)
- llama2:7b (平衡型)
- codellama:7b (代码专用)
-
温度控制
- 保持Mac Mini通风良好
- 可使用监控工具观察CPU温度
❓ 常见问题
-
Q: M4芯片能跑多大的模型?
A: 16GB内存的M4可以流畅运行8B参数的模型,更大的模型可能会影响性能。 -
Q: Llama中文支持不好怎么办?
A: 可以使用Llama-Chinese等经过中文优化的模型。 -
Q: OpenWebUI打不开怎么办?
A: 检查Docker状态:docker ps # 查看容器状态 docker logs open-webui # 查看日志
🎉 结语
通过本教程的配置,你已经拥有了一个完全本地化的AI助手!有任何问题欢迎在评论区讨论,让我们一起探索AI的无限可能!
如果觉得这篇文章对你有帮助,别忘了点赞转发哦~ 👍
你用Mac Mini跑过哪些AI模型?欢迎分享你的使用体验!💭
相关文章:

Mac 部署Ollama + OpenWebUI完全指南
文章目录 💻 环境说明🛠️ Ollama安装配置1. 安装[Ollama](https://github.com/ollama/ollama)2. 启动Ollama3. 模型存储位置4. 配置 Ollama 🌐 OpenWebUI部署1. 安装Docker2. 部署[OpenWebUI](https://www.openwebui.com/)(可视化…...

蓝桥杯小白打卡第二天
789. 数的范围 题目描述 给定一个按照升序排列的长度为 n n n 的整数数组,以及 q q q 个查询。 对于每个查询,返回一个元素 k k k 的起始位置和终止位置(位置从 0 0 0 开始计数)。 如果数组中不存在该元素,则返…...
Docker Compose:容器编排的利器
Docker Compose:容器编排的利器 引言 随着容器技术的普及,Docker成为了当今最受欢迎的容器编排工具之一。Docker Compose作为Docker生态系统中的一部分,允许用户以声明式的方式定义和运行多容器Docker应用。本文将深入探讨Docker Compose的基本概念、工作原理、使用场景以…...
springboot项目的单元测试
文章目录 依赖编写单测代码一些注意点 依赖 依赖包含了 JUnit、Mockito、Spring Test 等常用的测试工具 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><…...

JVM图文入门
往期推荐 【已解决】redisCache注解失效,没写cacheConfig_com.howbuy.cachemanagement.client.redisclient#incr-CSDN博客 【已解决】OSS配置问题_keyuewenhua.oss-cn-beijing.aliyuncs-CSDN博客 【排坑】云服务器docker部署前后端分离项目域名解析OSS-CSDN博客 微服…...

cursor 开发java项目教程简单上手
1.官网下载 Cursor - The AI Code Editor 下载完后注册账号,可以使用无限邮的方式 注册完之后 设置中文 可以选择设置为中文 Ctrl Shift X 进入设置页面输入chinese 然后重启 更改jdk跟maven仓库设置 ctrlshiftp 打开输入框后输入json,把下面代码…...
优化fm.jiecao.jcvideoplayer_lib中视频横竖屏自动适配原视频方案
fm.jiecao:jiecaovideoplayer:x.x.x 优化fm.jiecao.jcvideoplayer_lib中视频横竖屏自动适配原视频方案: 仅优化关键代码部分,源码: public void startWindowFullscreen() {Log.i(TAG, "startWindowFullscreen " " [" …...

aws(学习笔记第二十七课) 使用aws API Gateway+lambda体验REST API
aws(学习笔记第二十七课) 使用aws API Gatewaylambda体验REST API 学习内容: 使用aws API Gatewaylambda 1. 使用aws API Gatewaylambda 作成概要 使用api gateway定义REST API,之后再接收到了http request之后,redirect到lambda进行执行。…...
物联网的三层架构:感知层、网络层与应用层
物联网(Internet of Things, IoT)作为现代科技的重要组成部分,正在深刻改变我们的生活和工作方式。它将物理世界与数字世界无缝连接,通过智能设备、传感器和网络技术,实现数据的采集、传输和应用。物联网的架构通常分为…...
常用抓包工具tcpdump、Fiddler、Charles、Wireshark 和 Sniffmaster 下载地址
抓包大师官网下载地址 Sniff Master Download - Free TCP and HTTPS Proxy Sniffing Tool, Supports IOS Sniffing Fiddler classic官网下载地址 Download Fiddler Web Debugging Tool for Free by Telerik Fiddler Everywhere官网下载地址 The Ultimate Web Debugging Tool …...

π0开源了且推出自回归版π0-FAST——打造机器人动作专用的高效Tokenizer:比扩散π0的训练速度快5倍但效果相当
前言 过去的半个多月 deepseek火爆全球,我对其的解读也成了整整一个系列 详见《火爆全球的DeepSeek系列模型》,涉及对GRPO、MLA、V3、R1的详尽细致深入的解读 某种意义来讲,deepseek 相当于把大模型的热度 又直接拉起来了——相当于给大模…...

js-对象-JSON
JavaScript自定义对象 JSON 概念: JavaScript Object Notation,JavaScript对象标记法. JSON 是通过JavaScript 对象标记法书写的文本。 由于其语法简单,层次结构鲜明,现多用于作为数据载体,在网络中进行数据传输. json中属性名(k…...

Houdini subuv制作输出阵列图
在游戏开发中经常需要用到sheet阵列图,并用其制作翻页动画。通过Houdini强大的节点组合可以配合输出subuv阵列图供游戏引擎使用。 本文出处:https://zhuanlan.zhihu.com/p/391796978 博主参考学习并写该文。 1.在obj分类下创建font节点以进行测试&#…...
虚幻基础17:动画蓝图
能帮到你的话,就给个赞吧 😘 文章目录 animation blueprint图表(Graph): 编辑动画逻辑。变量(Variables): 管理动画参数。函数(Functions): 自定义…...
路由器及工作原理与常用路由配置命令详解
一、引言 在当今数字化时代,网络已经成为人们生活和工作中不可或缺的一部分。无论是家庭网络中的多台设备同时上网,还是企业网络中各个部门之间的数据传输和资源共享,都离不开网络设备的支持。路由器作为一种关键的网络设备,在网…...

Windows编程:下载与安装 Visual Studio 2010
本节前言 在写作本节的时候,本来呢,我正在写的专栏,是 MFC 专栏。而 VS2010 和 VS2019,正是 MFC 学习与开发中,可以使用的两款软件。然而呢,如果你去学习 Windows API 知识的话,那么࿰…...
R语言 文本分析 天龙八部
起因, 目的: 前面有人对 “倚天屠龙记” 进行分析,我这里只是进行模仿而已。 完整的文件, 已经绑定了,反正读者可以找一下。 案例背景 小说《天龙八部》是金庸先生所著的武侠小说,也是“射雕三部曲”的前传。全书共50章,字数超过一百万字。故事发生在北宋末年,以大理…...

深度学习 Pytorch 建模可视化工具TensorBoard的安装与使用
50 TensorBoard的安装和使用 在深度学习建模过程中,为了能够快速绘制模型基本结构、观察模型评估指标伴随训练过程的动态变化情况,当然也为了能够观察图像数据,我们可以使用TensorBoard工具来进行Pytorch深度学习模型的可视化展示。 Tensor…...

【免费】2007-2019年各省科技支出占一般公共预算支出的比重数据
2007-2019年各省科技支出占一般公共预算支出的比重数据 1、时间:2007-2019年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、科技支出占一般公共预算支出的比重 4、范围:31省 5、指标解释:…...
19爬虫:使用playwright登录超级鹰
本次案例一共解决了如下两个问题: (1)如何使用playwright截图,特别是验证码图片 (2)在playwright中如何判断一个元素可见 1.截图 我们首先解决第一个问题,截图。如果前期接触过selenium的小伙…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
什么是EULA和DPA
文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...

Linux中《基础IO》详细介绍
目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...

ubuntu中安装conda的后遗症
缘由: 在编译rk3588的sdk时,遇到编译buildroot失败,提示如下: 提示缺失expect,但是实测相关工具是在的,如下显示: 然后查找借助各个ai工具,重新安装相关的工具,依然无解。 解决&am…...
第14节 Node.js 全局对象
JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。 在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局…...