【大模型】实践之1:macOS一键部署本地大模型


Ollama + Open WebUI 自动部署脚本解析说明文档


先看下效果
在这里插入图片描述
在这里插入图片描述

一、脚本内容

#!/bin/bash
set -eMODEL_NAME="qwen:1.8b"
LOG_FILE="ollama_run.log"
WEBUI_PORT=3000
WEBUI_CONTAINER_PORT=8080
WEBUI_URL="http://localhost:$WEBUI_PORT"
DOCKER_DMG_URL="https://desktop.docker.com/mac/stable/arm64/Docker.dmg"
DOCKER_DMG_FILE="Docker.dmg"exec > >(tee -i "$LOG_FILE")
exec 2>&1echo "📦 Step 1: 检查 Ollama..."
if ! command -v ollama &> /dev/null; thenecho "❌ 未检测到 Ollama,请先安装:https://ollama.com/download"exit 1
elseecho "✅ Ollama 已安装:$(ollama --version)"
fiecho "🚀 Step 2: 启动 Ollama 服务(如已启动会自动跳过)..."
if ! pgrep -f "ollama serve" > /dev/null; thennohup ollama serve > /dev/null 2>&1 &sleep 2echo "✅ 已启动 Ollama 服务"
elseecho "🟢 Ollama 服务已在运行中"
fiecho "📥 Step 3: 检查模型 [$MODEL_NAME] 是否存在..."
if ! ollama list | grep -q "$MODEL_NAME"; thenecho "⬇️ 开始拉取模型:$MODEL_NAME"ollama pull "$MODEL_NAME"
elseecho "✅ 模型 [$MODEL_NAME] 已存在"
fiecho "🐳 Step 4: 检查 Docker 安装情况..."
if ! command -v docker &> /dev/null; thenecho "❌ 未安装 Docker,准备下载..."if [ ! -f "$DOCKER_DMG_FILE" ]; thenecho "⬇️ 下载 Docker Desktop 中..."curl -L -o "$DOCKER_DMG_FILE" "$DOCKER_DMG_URL"echo "✅ 下载完成:$(pwd)/$DOCKER_DMG_FILE"elseecho "⚠️ 检测到已有 Docker 安装包,跳过下载"fiecho "📂 请手动安装并启动 Docker Desktop 后再运行本脚本"open "$DOCKER_DMG_FILE"exit 1
elseecho "✅ Docker 已安装:$(docker --version)"
fiecho "🔍 Step 5: 检查 Docker 是否正在运行..."
if ! docker info > /dev/null 2>&1; thenecho "⚠️ 检测到 Docker 未运行,尝试启动 Docker Desktop..."open -a "Docker"echo "⏳ 等待 Docker Desktop 启动中(大约需 10~30 秒)..."for i in {1..30}; doif docker info > /dev/null 2>&1; thenecho "✅ Docker Desktop 已启动"breakfisleep 1doneif ! docker info > /dev/null 2>&1; thenecho "❌ Docker 启动失败,请手动打开 Docker Desktop"exit 1fi
elseecho "✅ Docker 正常运行中"
fiecho "🧱 Step 6: 启动 Web UI 容器 (open-webui)..."
if ! docker ps -a --format '{{.Names}}' | grep -q '^open-webui$'; thenecho "🛠 创建并启动 open-webui 容器..."docker run -d \-p ${WEBUI_PORT}:${WEBUI_CONTAINER_PORT} \-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \--name open-webui \--restart always \ghcr.io/open-webui/open-webui:main
elseif ! docker ps --format '{{.Names}}' | grep -q '^open-webui$'; thenecho "♻️ 启动已存在容器 open-webui..."docker start open-webuielseecho "✅ 容器 open-webui 已运行"fi
fiecho "🌐 Step 7: 检查 Web UI 是否就绪(${WEBUI_URL}ÿ

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

相机Camera日志实例分析之三:相机Camx【视频光斑人像录制】单帧流程日志详解

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了: 这一篇我们开始讲: 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下: 一、场景操作步骤 操作步…

介绍一下 TCP方式程序的通讯,服务器机与客户机

TCP通信方式:服务器与客户机通信详解 TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。下面我将详细介绍TCP方式下服务器与客户机的通信过程。 基本概念 TCP特点: 面向连接:通信前需建立连接可靠传输:…

Ubuntu系统复制(U盘-电脑硬盘)

所需环境 电脑自带硬盘:1块 (1T) U盘1:Ubuntu系统引导盘(用于“U盘2”复制到“电脑自带硬盘”) U盘2:Ubuntu系统盘(1T,用于被复制) !!!建议“电脑…

【PyTorch】2024保姆级安装教程-Python-(CPU+GPU详细完整版)-

一、准备工作 pytorch需要python3.6及以上的python版本 我是利用Anaconda来管理我的python。可自行安装Anaconda。 Anaconda官网 Free Download | Anaconda 具体Anaconda安装教程可参考 https://blog.csdn.net/weixin_43412762/article/details/129599741?fromshareblogdet…

Oracle RAC私网网卡冗余

第一步:添加网卡(网络部门实施) 第二步:给新网卡配置ip地址(如果网络部门没有配置,要自己动手配置) 第三步:查看心跳网络配置 –1 su - grid oifcfg getif enp0s3 192.168.1.0 glo…

c#,Powershell,mmsys.cpl,使用Win32 API展示音频设备属性对话框

常识(基础) 众所周知,mmsys.cpl使管理音频设备的控制面板小工具, 其能产生一个对话框(属性表)让我们查看和修改各设备的详细属性: 在音量合成器中单击音频输出设备的小图标也能实现这个效果&a…

织梦dedecms内容页调用seotitle标题的写法

首先方法一&#xff0c;直接用织梦的sql实现&#xff1a; <title> {dede:field nametypeid runphpyes} $idme; global $dsql; $sql"select seotitle from dede_arctype where id$id"; $row$dsql->getOne($sql); me$row["seotitle"]; {/dede:fiel…

linux等保思路与例题

例题 最近在做玄机的靶场&#xff0c;对这方面没怎么接触过&#xff0c;于是决定做一下顺便学习一下 这里可以用change更改命令来查看&#xff1a;change -l xiaoming 也可以用shadow中存储的信息grep出来&#xff1a;cat /etc/shadow|grep xiaoming 其中&#xff1a; 第一个字…

AirSim中文文档(2025-6-11)

文档的git链接&#xff1a; https://github.com/yolo-hyl/airsim-zh-docs 目前可访问的网站&#xff1a; https://airsim.huayezuishuai.site/

​​​​​​​6板块公共数据典型应用场景【政务服务|公共安全|公共卫生|环境保护|金融风控|教育科研]

1. 政务服务 1.1 城市规划与管理 公共数据在城市规划与管理中可发挥关键作用。通过汇聚自然资源、建筑物、人口分布等基础数据,构建数字孪生城市模型,辅助城市总体规划编制、决策仿真模拟。在城市基础设施建设、安全运营、应急管理等方面,公共数据也是不可或缺的基础支撑。例…

LevelDB介绍和内部机制

介绍 LevelDB 是 Google 开源的高性能键值对嵌入式数据库&#xff0c;具有一系列设计上的优势&#xff0c;特别适合写多读少、对存储空间要求高效的场景。 核心优势 1. 高写入性能&#xff08;顺序写磁盘&#xff09; 基于 LSM-Tree&#xff08;Log Structured Merge Tree&am…

数据库-数据查询-Like

引言 &#xff1c;模糊沟通&#xff1e; 父亲&#xff08;45岁&#xff0c;对外谦和&#xff0c;对内急躁&#xff0c;东北口音&#xff09; 儿子&#xff08;18岁&#xff0c;逻辑思维强&#xff0c;喜用生活化比喻&#xff09; 母亲&#xff08;43岁&#xff0c;家庭矛盾调…

SD-WAN优化云应用与多云架构访问的关键策略

1. SD-WAN如何优化企业对公有云和SaaS应用的访问&#xff1f; 1.1 智能流量优化 SD-WAN通过应用识别技术&#xff0c;可以根据不同的业务应用流量需求&#xff0c;动态分配网络资源。例如&#xff0c;SD-WAN能够优先为钉钉、企业微信、金山文档等关键SaaS应用分配低延迟、高带…

JVM——对象模型:JVM对象的内部机制和存在方式是怎样的?

引入 在Java的编程宇宙中&#xff0c;“Everything is object”是最核心的哲学纲领。当我们写下new Book()这样简单的代码时&#xff0c;JVM正在幕后构建一个复杂而精妙的“数据实体”——对象。这个看似普通的对象&#xff0c;实则是JVM内存管理、类型系统和多态机制的基石。…

专题:2025年跨境B2B采购买家行为分析及采购渠道研究报告|附160+份报告PDF汇总下载

原文链接&#xff1a;https://tecdat.cn/?p42612 在商业决策的复杂版图中&#xff0c;数据是穿透迷雾的精准坐标。本报告汇总解读聚焦2024年跨境B2B行业核心动态&#xff0c;以详实数据为锚&#xff0c;串联商品出口、品牌网站运营、独立站流量生态三大关键领域。我们深入挖掘…

使用spring-ai-alibaba接入大模型

spring-ai-alibaba 是Spring AI生态里与阿里巴巴相关的组件&#xff0c;借助它能够实现接入各类大模型。以下为你详细介绍如何使用 spring-ai-alibaba 接入不同大模型&#xff1a; 接入open ai 项目环境准备 首先要创建一个Spring Boot项目&#xff0c;并且在 pom.xml 里添加…

字符串的向量处理技巧:KD树和TF-IDF向量

使用下面的技术&#xff0c;可以构建不用DL的搜索引擎。 向量搜索引擎使用KD-Tree KD-Tree 搭建以字符串向量为索引的树&#xff0c;以 O ( l o g n ) O(logn) O(logn) 的时间复杂度快速查找到最近的向量 代码来源&#xff1a;https://github.com/zhaozh10/ChatCAD/blob/ma…

Modbus TCP 转Canopen网关连接台达伺服驱动器的配置案例

本案例是使用欧姆龙PLC通过开疆智能ModbusTCP转Canopen网关连接台达A2伺服驱动器的配置案例。 配置过程&#xff1a; 首先打开PLC组态软件“Sysmac Studio”&#xff0c;新建项目并进行配置。 编写ModbusTCP的通讯程序。 设置连接的IP地址&#xff0c;端口号等参数。 设置Modb…

Vim Z 开头的视图滚动/折叠命令完整学习笔记

Vim Z 开头的视图滚动/折叠命令完整学习笔记 文章目录 Vim Z 开头的视图滚动/折叠命令完整学习笔记1. 核心概念2. 垂直滚动对齐命令2.1 基础对齐2.2 重画增强版 3. 横向滚动命令3.1 字符级滚动3.2 半屏滚动 4. 代码折叠命令4.1 基础折叠操作4.2 高级折叠操作4.3 全局折叠控制4.…

【Keepalived】Keepalived-2.3.4 已恢复对 CentOS 7 支持

之前在CentOS 7.9系统中对 Keepalived 2.3.2、2.3.3 版本进行编译和安装测试&#xff0c;都出现了编译报错&#xff0c;且官方文档中也给出了不再支持RHEL 7的申明&#xff0c;但是6月10日&#xff0c;Keeplived-2.3.4版本在CentOS 7.9系统中编译、安装成功。 对于此问题&#…