Hello 大家好我是周日金 AI这两年离咱们普通用户越来越近 现在甚至不需要单独买一台服务器 我们就可以直接把手头闲置在Mac 变成一台属于自己的本地AI服务器 这期视频我会从零开始 带大家把Olama、OpenWeb UI、REG、OCR、Whisper.cpp和N8N一步步串起来 这套方案的重点就是 模型和大部分的数据都运行在自己本地的Mac上 也不要求特别高的配置 如果大家对这类玩法感兴趣 后面还可以继续带大家折腾本地图片和视频生成 本地AI编程 以及把AI介入Home Assistant 通过自然语言控制家里的智能设备 视频正式开始前 先求一波一进三连加关注支持一下 这样以后有新的教程更新 也能第一时间受到推送 非常感谢 接下来我们就从我的这台Mac mini来开始 在开始下载模型之前 我们需要先在Mac上安装OLAMA 你可以把它理解为 让普通用户可以在本地运行AI大模型的运行环境 直接前往OLAMA的官网下载对应的安装包 然后拖动到MacOS用程式文件夹就可以了 平时使用ChatGBT Cloud这类AI服务时 模型都是运行在云端服务器上 而OLAMA要做的事情 就是把像Deepseek签问LAMA这类开源模型 下载安装到你的Mac上 让他们直接利用本机的CPU 和GPU运行 安装后Olama并打开之后 下一步就是下载模型 不过这里需要注意啊 本DAI和ChatGPT这类云端的模型 最大的区别 就是模型大小会直接影响运行体验 所以不能盲目追求越大的模型就越好 我这里使用的是一台M4入门款的Mac mini 采用16GB的同一列存 加256GB的固态硬盘 确认Olama的服务在正常运行后 我们在MacOS的中段App中 输入这三条命令 它们分别负责不同的功能 第一个是大约模型 也就是本地AI的大脑 负责日常聊天 内容生成 总业资料等任务 其中4B代表40亿参数 Q4KM代表经过4B特量化 可以在降低模型这样的同时 保持不错的运行效果 是目前比较适合普通Mac的选择 第二个是向量模型 主要用于知识库检索 如果你以后想让AI读取自己的PDF 文档 视频稿件 然后根据这些资料回答问题 就需要通过embedding模型 先帮AI找到相关内容 第三个是欧塞AR文字试园模型 负责处理图片 扫描版PDF等内容 把图片里的文字提许出来 再交给语言模型进行分析 这里之所以选择签问的AR模型 是因为签问是目前比较成熟的 开源大模型之一 对中文理解和中文生成比较友好 其次是它提供的模型规格丰富 从4B到更大的参数版本 可以适配不同配置的Mac 还有一个是 它在OLAMA里的支持比较完善 安装和电用也都比较简单 当然除了签问 DeepSeq、Lama等模型也都可以运行 大家可以根据自己的需求进行选择 至于不同的Mac应该选择多大的模型 主要看新变性能和统一内存的大小 8GB内存的Mac建议先从4B级别模型开始 16GB内存运行4B会相对轻松 也可以在实际内存压力云雪情况下尝试9B 而24GB、32GB以及更高内存的Mac 则可以继续尝试更大的规格 但具体体验还会受到上下文长度和后台任务的影响 这里需要注意啊 模型标签不能随便改数字 如果继续使用千万3.5 目前OLAMA还提供9B 27B 35B等更大规格 具体名称一定以OLAMA模型库实际存在的标签为准 那咱们还是先把本地AI服务器跑起来 后续再根据实际需求升级模型 接下来我们在Microsoft的中段APP中 输入以下命令OLAMA LIST 查看是否已经全部下载完成 如果前面下载的模型都正常列出来 就可以来简单试一下模型能不能在本地正常运行 输入制传命令 olama run 千万3.5 4b-q4km 然后随便发一句话 比如你好 如果能正常给出回复就没问题了 随后输入制传命令结束对话 Bye 之后我们就可以停止运行 以释放资源 输入制传命令 olama stop 千万3.5 4b-q4km 然后再输入制传命令 olama ps 查看这个AR大模型是否仍在运行 此时应该唯空 那么就说明我们的大模型已经没有在运行了 接下来咱们就要开始准备部署 家庭局网AN对话见面了 前面我们已经通过Olama把AI模型运行在Mac上 但是目前还需要通过中端的进行操作 对于日常使用来说不太方便 所以接下来我们就要给他搭建一个 类似ChatGB的网页界面 这里使用OpenWebUI 也就是让Olama负责运行AI模型 OpenWebUI负责提供交互界面 部署完成后 家里的手机平板电脑都可以通过 浏览器放完这台Mac mini 直接使用自己的本地AI 考虑到中国大陆用户的网络环境 这里直接通过Python安装OpenWebUI 同时Olama继续只监听本机地址 不会直接报道网络中 本教程固定使用OpenWebUI 0.11.0版本 不使用latest或滚动更新版本 避免版本变化导致操作流程不一炸 首先准备Python环境 如果你的Mac已经安装Homebrew 则可以输入brew install python at 3.11 如果没有安装Homebrew 也可以直接前往Python官方网站 下载安装Python 3.11对应的MacOS安装包 后面如果会继续折腾这类工具 建议提前装好Homebrew 管理和升级会方便不少 接下来创建OpenWeb UI独立运行环境 避免影响系统里的其他python项目 后续相关代码我不再一一进行解释 如果有看不懂 可以查看代码上方的文本注释 然后通过轻滑镜像安装OpenWebUI 安装完成后 第一次启动将以只允许本机访问 先完成账号和安全设置 等命令跑起来以后 不要关闭这个中端窗口 因为OpenWeb UI的服务就运行在这里 然后617打开127.0.0.1 网好3000 第一次进入需要充电账号 第一个账号就会自动成为管理员 进入管理后台后 前往设置身份验证 把newsign apps关闭 也就是不允许新用户自由注册 同时暂时不要安装来源不明的第三方Tools Functions或Pipelines 接着就可以在流量器打开127.0.0.1 冒号11434 -API-Version 确认欧拉玛本地API正常响应 回到OpenWeb UI 在检查之前下载的前文3.5 4B-Q4KM是否已经出现在母型列表当中 确认没有问题后 在中端App中 按Ctrl加C停止OpenWeb UI 接下来开放家庭局域网 实际在系统设置网络中查看Mac mini的局域网IP 实际操作需要替完成你自己的IP 重新启动OpenWeb UI 现在Mac mini本机可以继续访问127.0.0.1 网号3000 并使用刚才创建的管理员账号进行登录 通过家庭网络里的手机 电脑则可以通过Mac mini的IP地址加段稿号3000来访问 同样使用刚才的账号来登录 这时候可以随便问您问题 看看局域网访问和模型交用是否正常 如果下设备都无法打开 依次可以清查几个地方 最后提醒一下 这里搭建的家庭局域网AI服务器 不会把服务暴露到公网 因此不需要进行路由器短口转发 也不要直接把OpenWeb AI开放到互联网环境 而这样配置后保持终端App不关闭 AI模式运行在自己的Mac上 数据只在家庭网络里进行流转 同时手机平板和电脑都可以共享这台本地AI服务器 前面OpenWeb UI已经可以这张访问了 接下来我们再给整个家庭AI服务器 建立一个统一的API接口 这样以后不管是N8N手机会议指令 还是其他支持OpenAI API的程序 都统一连接OpenWeb UI 不需要直接访问底层的奥拉玛 那这样的好处是 模型、账号和权限都可以在OpenWeb UI这一层统一管理 后面更换模型时 也不用重新修改每一个应用 时间咱们回到OpenWeb UI 点击左下角头像依次进入设置 身份验证找到API密钥并打开 如果界面提供API密钥端点限制 也一并开启 然后填写这个 这样生成的key就只允许访问模型列表和聊天接口 接下来进入账号API密钥 点击右侧的显示创建新的API密钥 生成密钥通常会以SK开头 这个密钥相当于访问我们家庭i服务器的密码 不要直接公开或者分享出去 如果后面准备长期让N8N这类的自动化工具使用 建议专门创建一个普通的本地账号 再用这个账号生成API密钥 不要长期使用管理员账号的密钥 因为密钥会计权创建这个账号的权限 而且一个账号通常只保留一个API密钥 接着我们来测试接口是否正常 打开一个新的终端APP窗口 把下面的命令中的SK换成刚才生成的密钥 如果结构正常 终端会访问当前OpenWeb UI可以调用的模型列表 这里可以顺便记一下返回结果里模型队的真实ID 因为后面其他地方调用AI时就需要填写这个名称 接下来再来测试聊天接口 同样的记得把SK开头的这串换成刚才生成的密钥 而model后面需要填写刚才模型列表里面实际反馈的ID 如果你下载的是其他签问或者其他模型 就替完成对应的模型 如果最后反馈Json里能够看到API正常 就说明这一套接口已经可以正常使用了 签问3.5在开启思考时 反馈内容里可能还会出现reasoning content这一类字段 这是正常现象 到这里我们就相当于给整个家庭AI服务器建立一个统一的入口 最底层人是Olama负责运行模型 上面的OpenWeb UI统一管理模型和API 在网上则可以接N8N手机快递指令或者其他应用 后面不管增加多少个客户端都尽量连接OpenWeb UI 而不是让每台设备直接访问欧拉玛 整个架构会更容易管理 前面我们已经把本地AI和聊天的API都搭好了 接下来就再补上一个非常熟能功能 Cell文档知识库 也就是RAG RAG可以列成先从你的资料里找内容 再交给AI声称回答 这样以后不管是自己的PDF 说明书工作文档还是视频稿 都可以放进知识库 让AI尽量根据这些资料来回答 而不是只靠模型本身的记忆 首先进入OpenWeb UI试试里的文档页面 进入模型引擎选择OLAMA API密钥可以留空 地址填写127.0.0.1 冒号11434 进入模型出入 我们在视频一开始就下载好的 轻文3-embadding0.6b 而这里顺便解释一下 这个模型不负责聊天 它的工作是把文档找完成 便于检索的向量数据 只要你提问以后 系统才能快速找到和问题最相关的资料 其他参数可以先按照这一套来设置 大部分是我认的 这些参数主要是在检索效果和上下文本 占用之间做一个比较稳妥的平衡 比如快大小可以列成 每次把文档切成多大片段 快重叠则是在相邻片段之间 保留的部分重复内容 避免一句话刚好被重点切断 TuboK代表每次提问 最多取回多少个相关片段 这里先设置为3 并不是越大越好 因为塞进太多资料 反而会占模型有限的上下文空间 接下来我们创建一个 非常简单的测试文件 方便确认RA器是否真的正常工作 用任意文本编定器 新建一个Text文本 如果你用的是 MicroOS自带的文本编辑App 记得在菜单里选择制作成文本 比如里面写上这些内容 然后保存为家庭AI测试资料.txt 回到OpenWebUI 找到左侧边来的工作空间 再点击顶部的知识库 最后点击右上角的创建 名称填写家庭AI测试库 目标可以简单写真 用于测试本地RIG文档检索和应用功能 知识库创建完之后 再点击右上角的加号 选择上传文件 把刚才的txt文件上传进去 后面也可以上传带有文字层的PDF Docx或Markdown文档 上乘完之后 在新兑化的聊天输入框里 通过警号手动附加这个支持库 而我这里为了教程演示方便 先手动选择 因为小参数模型主动判断 什么时候动用支持库 有时候不够稳定 然后我们可以问一个问题 只依据支持库回答 项目代号和设备维护时间 氛围是什么 请给出引用 正常情况下 耐心等待一会儿 他应该回答项目代号是清零 设备维护时间是每月第一 周六上午十点 而且回答旁边能够看到对应的资料引用 那么这套最基础的REG知识库就算大奖成功了 不过这样配置下来 你可能会发现还有一个地方容易踩坑 如果你的PDF是扫描件 本身没有可以复制的文字层 就不要拿它来测试REG了 因为知识库首先需要能够读取里面的文字 才能进行后续的处理 所以这种文件就需要先经过OCR 把图片里的文字设备成TXC或者Markdown 再上传到知识库来进行处理 接下来我们就继续把本地OCR的功能 也接近来 前面我们已经让AI能够读取次的文档 接下来再补上图片理解和OCR 也就是让这台本地AI不只能读文字 还可以看图片 那这里先区分两个概念 普通图片理解更适合看一张图里有什么 界面再显示什么 再顺便识别其中的文字 OCR则更专注于把图片里的文字 表格或者图表内容尽可能提取出来 先在OpenWeb UI里选择我们前面使用的 千万305 4B-KL4KM 如果你的Mac配置更高 也可以用9B的版本 上传一张同时包含物体和文字图片 然后输入 先描述画面内容 再逐项提取可见文字 不确定的部分标注为不确定 不需要自信补圈 这里可以分别拿产品包装 软件界面截图 中文表格 或者已经做好隐私透明的发票 和数据照片来测试一下 这样可以比较直观的判断出 模型到底是理解了图片内容 还是只是把里面的文字给识别出来 如果你出现了类似我这样的提示 就前往OpenWeb UI的设置 模型 找到刚才你前面使用的模型 编辑界面 找到高级参数下的NUMCTX Olama 针对我16GB的Mac mini 将数字更改为8192 然后重复上的操作就可以了 如果我们的目标不是理解图片 而是尽可能把图片里的文字给提取出来 就可以使用我们前面已经下载好的GLM OCR OCR模型运行前 如果较大的千万模型还占着同一印存 先可以把它停掉 接下来我们准备好需要识别图片 放到一个统一的文件夹中 比如我这个目录像 对于我们Mac仿达中的用户文件夹 AI test 这里手动新建一个test的文件夹就可以了 对于需要识别不同的内容图片 比如普通收据表格图表 都可以使用不同的命令 注意命令结尾的文件名 需要换成你自己图片的文件名 第一次测试时 建议每次只处理一张图片 先确认整套工作流能够稳定运行 如果遇到扫描PDF 也不用一开始就折腾完整的PDF解析工具 最简单办法就是 先用Microx自带的预览打开PDF 把其中一页导成PN器 再交给GLM OCR进行处理 等确认单页OCR没问题后 再考虑批量处理整份文档 识别出来的内容还可以继续利用 保存成TXT或者Markdown 再上传到我们上一节创建的知识库 然后交给签问做摘要 自端整理或者检索问答 那么整个流程就传起来了 如果OCR出现空白重复或者乱码 可以先更新Olam 然后每次只处理一张图片 图片过大时 可以把长辨锁到大约1600至2200像素 并优先使用PNG或者GPG 同时检查原图有没有明显模糊 倾斜反光 这些都会直接影响识别效果 除了文字和图片之外 本地还有一个非常实用的场景 就是处理视频和录音 比如把会议录音转成文字 把视频自动生成字幕 或者把自己的素材库快速整理成可搜索的文本 这里我们使用Whisper.cpp 它是Whisper模型C++实现的 针对Apple Silicon提供Mental加速 可以直接利用Mac的GPU进行本地转写 首先安装需要用到的工具 FMMP1G负责处理音频格式 Whisper.cpp负责语音识别 如果你的Mac已经安装Homebrew 可以直接输入代码来进行安装 如果你仍然没有安装Homebrew 安装whisper.cpp可以走圆码编译路线 不过对于普通用户来说 这一步会比Homebrew更复杂一些 还需要提前安装Xcode的Command Align Tools 这里就不展开了 安装完成后 可以通过下面两个命令来确认是否正常 接下来下载Whisper模型 我这里选择的是这个 这是一个支持中文和多语言的模型 相比完整Large模型体积更小 同时保留了比较好的转眼效果 更适合Mac本地运行 我们先创建存放模型和临时文件的目录 然后下载模型 下载完整后再计算一次SHA-1的值 方便和whisper.cpp模型文档公开的接应值进行核对 模型准备好后就可以开始处理视频 假设你的视频文件位于这个文件夹 也就是MicroOS用户目录的影片文件夹当中 大家根据自己的实际文件存储位置进行修改 首先使用FMMP1G把视频里的音频转换成Whisper更适合处理的格式 这几个参数简单介绍一下 VM表示去掉视频 只保留音频 AR16表示转换成16000赫兹的采样率 AC1表示单身道 PCM S16LE则是转换成Whisper 更容易处理的WAB格式 接下来运行Whisper 同时生成文字稿和字幕文件 -M用来指定我们前面下载的Whisper模型 -F指定需要转写的音频文件 -LZH告诉我们模型 这段文字主要内容是中文 -Prompt则可以提前提供一些 容易识别错误的中有名词 比如Mac mini Apple Silicon Olama和千问 对于科技类视频有其有用 比如这里我就加上了我的Lookup Weekly 后面的-otxt-oosrt和-ovtt 分别让它同时生成TXT文字稿 SRT字幕和VTT字幕 最后通过-off 指定输出文件的位置和名称 运行完成后会生成这些文件 其中TXT是纯文字稿 适合后续交给AI总结或者整理 SRT是常见的字幕格式 可以直接导入紧接软件 VTT是主要用于网页播放器的字幕 如果是8GB的Mac 也可以先尝试这里的Large-V3-Turbo-Q50电话模型 如果实际转写时内存压力较大或者速度不理想 再换成体积更小的Small多语言模型 不要下载来带EAN后置的英文专用模型 因为它只针对英文优化 如果需要中文转写 也不要开启翻译参数 否则模型会把内容翻译成英文 而不是保留原始的语言 到这里整套本地i工作流基本已经闭环 视频和录音可以通过Whisper 转写文字 再交给前文做总结 整理 最后也可以存入前面搭建的知识库 实现自己本地的内容管理系统 前面我们已经分别完成了本地云转写OpenWebUIAPI和签问调用 至于使用N8N搭建一条自动化工作流 上传音频或者视频后 N8N自动调用Whisper来转写 再把转写稿交给签问来整理 最后返回摘要提纲标题和证捷建议 不需要每次手动复制粘贴 首先把前面安装好的Whisper.cpp 变成一个可以被其他程序调用的本地API 先尝试允许Mac本机访问 保持这个中端窗口开启 再新开一个中南app窗口进行测试 如果能够正常返回转写结果 Whisper API就已经运行成功 后面N8N会运行在Docker容器里 如果出现无法连接Whisper的情况 可以按Ctrl加C停止服务 再这样改 这里需要特别注意 Whisper server本身没有用户登录和全线验证的功能 所以使用0.0.0.0时 只建议放在可信的家庭局网内 不要进行路由器端口转发 也不要把8178端口直接暴露到公网 接下来安装N8N 这里使用Docker Desktop来运行 并固定N8N版本 避免后续更新导致教程界面或者节点配置发生变化 先从Docker官网下载安装Docker Desktop 偷动到应用程序无电夹并启动 确认Docker正常运行后 再打开终端App输入下面的命令 接下来生成一段随机的加密密钥 把生成的结果替换到下面的XXX 然后我们访问127.0.0.1 号5678 第一次进入需要创建N8N的本地管理员账号 接下来我们来新建一条workflow工作流 这套流程一共只有四个节点 Webhook webhook HTTP request with perjuanxie HTTP request HTTP Request的签文整理 Respond to Webhook 第一个是Webhook节点 它相当于整条工作流的入口 以后只要把视频post到这个地址 工作流就会自动开始 Webhook的具体设置如下 没提到的设置保持不便即可 第二个节点添加http request 名称可以改成whisper转写 它负责把刚刚上传的音视频文件交给Mac上的whisper server 第二个节点http request的具体设置如下 没提到的设置保持不便即可 值得注意的是n8nbinaryfile这类型中 input data field name需要填写webhook节点实际收到的二进制字段名称 点击前一个webhook节点 在output的binary中进行查看 如果显示为data那就填写为data 如果显示为Data0 那就填写为Data0 这个名称必须完全一致 否则会出现 The item has no binary field的报错 第三个节点继续添加http request 名称改成前文整理 这个节点负责把Whisper返回完整转写稿 交给前面搭建好的OpenWeb UI API 第三个节点http request具体设置如下 没提到的设置保持不变即可 接下来回到前面的JSON输入框 把整个字段切换到expression模式 再粘贴下面的表达式 它的逻辑很简单 N8N自动读取Whisper转写节点里面的text 再连同预设提示词一起发给亲吻 最后添加Respound to Webhook节点 它负责把整条工作流结果返回给定用者 Respound with选择Json 然后把Respound body切换成Expression模式 粘贴下面的表达式 Respound code保持200即可 工作流设置完成以后 先不要急着正式启用 在N8N里点击Listen for Test Event 让Webhook等待一次测试请求 然后回到终端执行下面的命令 注意要把XAI Token后面的章位内容 替换成你前面实际设置的随机自如串 如果整个流程正常 你最终应该会得到 类似这样的结果 测试成功以后回到N8N的工作流程页面 点击右上角的Publish发布 发布后就不需要每次先点击Lessens for Test Event了 正式Webhook地址也会从Webhook Test AI Video Notes 变成Webhook AI Video Notes 以后只要把视频传到这个接口 整套流程就会自动变成Whisper 在本地把视频转成文字 千万再在本地完成摘要 提纲 标题和章节建议 最后把转写稿和整理结果一起返回 整个过程中的语音和文本内容 都可以在自己的Mac上完成处理 到这里整套工作流已经跑通了 不过直接使用Curve调用正式外部后格式 中端反围的是标准的JSON 所以会看到大量的斜杠N 引号和转译字符 比如斜杠N其实就是换 并不是烂码 只是JSON保存Markdown和多项文字时的正常格式 为让最终结果更加适合阅读 我们可以再用JQ把JSON里的转写稿 和签文之力结果提取出来 如果已经安装Homebrew 则可以执行Brew install GQ 安装完整后 把刚才电用正式工作流的命令稍微改一下 如果只是想看签问整理后的结果 也可以进一步讲话 如果只需要Whisper的完整转眼稿 也可以这么改 哦对了如果你的Mac没有安装Homebrew 也不一定非要额外安装JQ 前面已经准备了Python 3.1 可以直接用Python自带的JSON模块完成同样的处理 视频最后在补一个实际使用时一定会碰到的问题 Mac mini重启以后 哪些东西需要重新打开 我们前面搭建的模型和数据都保存在硬盘里 不需要重新安装或者重新下载 但Olama,OpenWeb UI,Whisper Server和N8N这些运行中的服务需要重新启动 建议按照下面这个顺序来 首先启动最底层的Olama 如果安装的是MicOS版的Olama 直接打开Olama app即可 也可以在中端里执行Open-AOlama 然后可以检查Olama是否已经恢复 如果能够正常返回Olama的版本信息 就说明底层模型服务已经正常 接下来再来启动OpenWeb UI 充计后可以先确认MacMe的局域网IP地址有没有发生变化 因为我们前面的启动命令里填写过这个地址 如果地址没有发生变化 就继续使用之前的IP 如果变化了 下面命令行里的也要一起替换 这个中端装口需要保持运行 然后617访问 127.0.0.1网号3000 局域网中的其他设备 仍然访问MacMe的IP地址网号3000 长期使用的话也可以在路由器里给Mac mini固定一个局网地址 选择每次重建后来进行检查 如果只是聊天知识库或者OpenWeb UI 其实不用一直启动Whisper Server 只有需要运行视频转写或者后面的N8n视频工作流时再打开即可 同样这个中端创口需要保持运行 可以打开另一个中端测试 只要服务器能够这样响应 就可以继续交给N8n来调用了 接着打开Docker Desktop App 因为我们创建N8n容器时已经设置了Restart Unless Stoped 所以正常情况下 只要Docker app启动 之前的N8n容器也会自动恢复运行 不需要重新执行那一串Docker run 可以先检查Docker PS 如果Liviar里能够看到N8n 就说明N8n已经自动恢复 如果没有启动 可以手动执行Docker StartN8n 然后留言器打开127.0.0.1-5678 如果能够进入N8n 就说明自动化服务已经恢复正常 到这里我们就从一台普通的Mac mini开始 完成一套相对完整的家庭本地AI服务 Olama负责运行AI模型 OpenWeb UI提供对话界面和统一API Embedding和RAG负责自己的文档知识库 GLM OCR处理图片和扫描件 Whisper.cpp负责视频录音转写 再通过N8N把这些能力串成一套简单的自动化工作流 这套方案其实不只是在Mac上跑了一个AI模型 当对话、文档、图片、映视频和自动化都连起来之后 这台Mac mini才开始从一台跑模型的电脑 变成一台可以长期放在家里 由不同设备随时电用的AI服务器 当然这只是一个非常技术的框架 后面还可以继续加入更大的模型 自己的资料库 手机快据指令 甚至更多自动化流程 大家完全可以根据自己的Mac配置 和实际需求继续往上搭 先把这套技术环境稳定跑起来 再逐步增加功能 更适合第一次接触本地AI的各位 好了 那么以上就是本期视频的全部内容了 如果觉得本期视频有所帮助的话 还请不要忘记点赞链加工主支持一下 就是李军 我们下期视频再见 拜拜