1. 为什么 Mac mini 是搭建本地 AI 服务器的“甜点级”选择

很多人一听到“AI 服务器”,脑子里立刻浮现出机房里嗡嗡作响的机柜、插满显卡的塔式主机,或者动辄上万的 NVIDIA 工作站。但现实是,绝大多数个人开发者、小团队、研究者甚至教育场景下的真实需求,并不是训练一个千亿参数的大模型,而是 稳定、安静、低功耗地运行一个或多个中等规模的推理模型 ——比如 Llama 3-8B、Phi-3、Qwen2-7B,或者专精于代码、数学、多语言的轻量级模型。这时候,一台放在书桌角落、几乎听不见风扇声的 Mac mini,反而成了最务实、最可持续的选择。

我从 2023 年底开始用 M2 Pro 版 Mac mini 搭建本地 AI 环境,至今已迭代到 M2 Ultra 版本,跑过超过 40 个不同尺寸和用途的模型。它的核心优势不是“最强”,而是“刚刚好”:M 系列芯片的统一内存架构(UMA)让 CPU、GPU 和神经引擎(ANE)能共享高达 128GB 的高速 LPDDR5X 内存,这意味着模型权重、KV Cache 和中间计算结果无需在不同内存池之间反复拷贝,避免了传统 x86 + 独立显卡架构中常见的 PCIe 带宽瓶颈。实测下来,一个 7B 参数的量化模型(如 Q4_K_M),在 M2 Ultra 上的 token 生成速度稳定在 25–35 tokens/s,延迟控制在 800ms 以内,完全满足日常对话、文档摘要、代码补全等交互式场景。这比很多配置了 RTX 4090 但内存只有 32GB 的 Windows 台式机,在实际体验上更顺滑——因为后者经常卡在数据搬运上,而不是计算本身。

另一个常被忽略的关键点是“静音与散热”。Mac mini 的被动散热设计(M2 Pro/Ultra 均无风扇)让它在持续负载下依然保持图书馆级别的安静。我把它放在书房书架上,旁边就是我的 MacBook,连续运行 72 小时做模型微调任务,桌面温度毫无变化。而对比之下,一台满载的台式机,风扇噪音会直接破坏工作专注力,长期使用还会因灰尘堆积导致散热效率下降,进而触发降频。对于需要 24/7 运行的本地 AI 服务(比如作为 Obsidian 插件的后台知识库、或是 Home Assistant 的自然语言控制中枢),这种“存在感为零”的稳定性,是任何高性能硬件都无法替代的软性价值。

当然,它也有明确的边界。M 系列芯片目前不支持 CUDA,所以无法直接运行依赖 CUDA 加速的 PyTorch 训练脚本;它也不适合部署 70B 级别的超大模型,哪怕做了极致量化,内存带宽和缓存容量也会成为硬伤。但如果你的真实需求是“把一个靠谱的 7B 模型装进家里,随时问它问题、让它写点东西、帮你看代码”,那么 Mac mini 不是妥协,而是经过深思熟虑后的最优解。它把“AI 服务器”这个概念,从一个昂贵、复杂、需要专门维护的基础设施,拉回到了一个像 NAS 或打印机一样即插即用的家用设备层面。接下来要做的,就是用 Ollama 这个工具,把这台硬件的潜力,以最简单的方式释放出来。

2. Ollama 的本质:不是“安装软件”,而是构建一个模型运行时环境

很多人第一次接触 Ollama,会下意识地把它当成一个“AI 模型下载器”或者“Mac 版 ChatGPT 客户端”。这是个根本性的误解,也是后续所有踩坑的源头。Ollama 的核心定位,是一个 面向 macOS 和 Linux 的、专为本地大模型推理优化的运行时(Runtime)与包管理器(Package Manager)的混合体 。它既不是 Docker,也不是 Conda,但它融合了二者最实用的特性:Docker 的环境隔离能力,和 Conda 的依赖声明式管理能力。

我们可以用一个生活化的类比来理解:想象你要在家做一顿复杂的法餐。你不会每次做饭都去重新买齐所有厨具、调料、食材,再手动调试烤箱温度。你会有一个固定的厨房(Mac mini 的系统环境),一套标准化的厨具(Ollama 的底层运行时),一份清晰的食谱(模型的 Modelfile),以及一个可靠的食材供应商(Ollama Library)。Ollama 的 ollama run 命令,就相当于你对厨房说:“按这份食谱,把这道菜做出来”,它会自动检查你有没有合适的锅(GPU 支持)、够不够盐(内存)、火候是否合适(CPU/GPU 资源分配),然后才开始烹饪(加载模型、启动推理服务)。

这个理解至关重要,因为它直接决定了你后续的操作逻辑。例如,当你执行 ollama run llama3 时,Ollama 并不是简单地从网上下载一个 .bin 文件扔进硬盘。它的完整流程是:

  1. 解析模型标识符 : llama3 是一个别名,Ollama 会查询其官方 Library,找到对应的实际镜像地址(如 registry.ollama.ai/library/llama3:latest );
  2. 拉取分层镜像 :模型被拆分为多个只读层(Layer),包括基础运行时( ollama/base:alpine )、模型权重( weights:q4_k_m )、配置文件( Modelfile )和元数据( manifest.json )。这种分层设计意味着,如果你已经下载了 phi3 ,它和 llama3 共享同一个基础运行时层,下次下载新模型时,这部分就不用重复下载;
  3. 创建沙盒环境 :Ollama 启动一个轻量级的、基于 runc 的容器化进程,将模型层挂载为只读文件系统,并为其分配独立的内存空间和 CPU 核心亲和性(Affinity),确保模型运行不会干扰你的其他 macOS 应用;
  4. 启动推理服务 :在沙盒内,Ollama 调用其内置的 llama.cpp (针对 Apple Silicon 优化过的 C++ 推理引擎)加载模型,并通过一个标准的 REST API(默认 http://localhost:11434/api/chat )对外提供服务。

正因为 Ollama 是一个“运行时”,所以它天然具备了几个关键能力: 模型版本管理 (你可以同时存着 llama3:8b 和 llama3:70b ,用不同命令调用)、 资源限制 ( ollama run --num-gpu 2 llama3 可以强制指定使用 2 个 GPU 核心)、 无缝更新 ( ollama pull llama3:latest 会只下载变更的层,而非整个模型)。这些能力,是那些直接下载 .gguf 文件后用命令行手动启动 llama-server 的原始方式所完全不具备的。这也是为什么 Ollama 能在短短两年内,成为 macOS 上事实标准的本地模型部署方案——它把一件原本需要深厚系统知识才能做好的事,变成了一个 brew install ollama && ollama run xxx 就能搞定的日常操作。

3. 从零开始:Mac mini 上的 Ollama 安装与首次模型部署全流程

在 Mac mini 上安装 Ollama,有且仅有一种官方推荐、最稳定、最省心的方式: 使用 Homebrew 。虽然网络上有各种“离线安装包”、“手动编译”的讨论,但对于绝大多数用户,尤其是第一次接触的用户,它们带来的麻烦远大于收益。Homebrew 是 macOS 生态中最成熟、最可靠的包管理器,它不仅能自动处理 Ollama 的所有依赖(如 libusb 、 openssl ),还能在后续的系统升级中,确保 Ollama 的二进制文件与 macOS 的最新安全补丁保持同步。

3.1 安装 Homebrew 与 Ollama 的“黄金组合”

首先,确认你的 Mac mini 运行的是 macOS Sonoma (14.x) 或更高版本。Ollama 对 macOS Ventura (13.x) 的支持已进入维护模式,新功能和性能优化主要面向更新的系统。打开“终端”应用(可以在“访达”→“前往”→“实用工具”中找到),逐行输入以下命令:

# 第一步:安装 Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 第二步:将 Homebrew 的 bin 目录加入系统 PATH(关键!)
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc

# 第三步:安装 Ollama
brew install ollama

提示:第二步是新手最容易忽略的环节。如果不执行 echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc ,那么你在终端里输入 ollama 命令时,系统会提示 command not found 。这是因为 Homebrew 默认将可执行文件安装在 /opt/homebrew/bin/ ,而 macOS 的默认 PATH 并不包含这个路径。这条命令的作用,就是告诉你的 Shell(zsh),每次启动时都要去这个目录里找程序。

安装完成后,验证是否成功:

# 检查 Ollama 版本
ollama --version
# 输出应为类似:ollama version 0.3.10

# 检查服务状态(Ollama 会自动启动一个后台服务)
ollama list
# 输出应为:NAME    ID      SIZE    MODIFIED
#           (空列表,表示暂无模型)

如果 ollama --version 报错,请先运行 source ~/.zshrc ,然后再试。如果 ollama list 显示 Error: could not connect to ollama app ,说明后台服务没有启动,此时只需运行 brew services start ollama 即可。

3.2 下载并运行第一个模型:Llama 3-8B,一次到位

现在,我们来下载并运行当前最主流、最平衡的开源模型——Meta 的 Llama 3-8B。它在代码、推理、多语言等方面表现均衡,且社区支持最好,是入门的不二之选。在终端中输入:

# 下载并运行 Llama 3-8B(默认是 Q4_K_M 量化版本,约 4.7GB)
ollama run llama3

这是最关键的一步,也是最容易“卡住”的地方。网络上大量关于“Ollama 下载慢”的抱怨,根源往往不在 Ollama 本身,而在于你的网络环境与 Ollama Library 的默认镜像源(位于美国)之间的连接质量。如果你发现命令执行后,终端长时间停留在 pulling manifest 或 downloading layer 阶段,不要慌,这里有三个经过实测的解决方案:

  1. 临时切换国内镜像源(推荐给绝大多数用户) :Ollama 支持通过环境变量 OLLAMA_HOST 指定镜像源。国内已有多个社区维护的加速节点。在运行 ollama run 命令前,先设置环境变量:

    # 临时设置,仅对当前终端会话有效
    export OLLAMA_HOST=https://ollama.jfrog.io/artifactory/ollama/
    ollama run llama3
    

    这个镜像源由国内高校和开源社区联合维护,同步频率高,CDN 覆盖广,实测下载速度可达 15–25 MB/s,比直连快 5–10 倍。

  2. 永久配置镜像源(适合长期使用者) :编辑你的 Shell 配置文件,使其每次启动终端都自动生效:

    echo 'export OLLAMA_HOST=https://ollama.jfrog.io/artifactory/ollama/' >> ~/.zshrc
    source ~/.zshrc
    
  3. 手动下载 + 导入(适用于完全无法联网的离线环境) :访问 https://ollama.com/library/llama3 页面,点击右上角的 “Download” 按钮,选择 q4_k_m 版本,下载一个 .tar.gz 文件。然后在终端中执行:

    # 将下载好的文件导入 Ollama
    ollama create llama3 -f /path/to/downloaded/llama3-q4_k_m.tar.gz
    # 然后就可以正常运行了
    ollama run llama3
    

一旦模型下载完成,Ollama 会自动启动一个交互式聊天界面。你会看到一个简洁的提示符 >>> ,这时就可以开始和你的本地 AI 对话了。试着输入 Hello, what is your name? ,它会立刻给出回应。这标志着你的 Mac mini AI 服务器,已经成功点亮了第一盏灯。

4. 深度掌控:模型管理、资源监控与常见故障的根因排查

Ollama 的 run 命令只是冰山一角。一个真正可用的“AI 服务器”,必须能被你完全掌控——知道它在做什么、用了多少资源、出了问题怎么快速定位。这一节,我们将深入到 Ollama 的“后台”,掌握那些让项目从“能跑”走向“稳跑”的核心技能。

4.1 模型的全生命周期管理:不只是“下载”和“运行”

Ollama 将每个模型视为一个“镜像”,因此它提供了一套完整的、类似 Docker 的镜像管理命令。理解并熟练使用这些命令,是高效管理你本地模型库的基础。

  • 查看所有已安装模型 :

    ollama list
    

    输出示例:

    NAME            ID              SIZE      MODIFIED
    llama3:latest   4a5e6d7c8b9a    4.7 GB    2 hours ago
    phi3:latest     1b2c3d4e5f6a    2.1 GB    1 day ago
    qwen2:7b        7f8e9a0b1c2d    5.3 GB    3 days ago
    

    这里 MODIFIED 时间戳非常重要。它记录的是该模型镜像最后一次被拉取或更新的时间,而不是你上次运行它的时间。这意味着,即使你一个月没碰过 phi3 ,只要它还在列表里,它就随时可以被调用。

  • 删除不再需要的模型 :

    # 删除单个模型
    ollama rm phi3:latest
    # 删除所有未被引用的模型(谨慎使用!)
    ollama prune
    

    注意: ollama rm 只是删除镜像,不会影响你通过 ollama run 启动的正在运行的实例。一个正在运行的模型,其内存占用是独立的,删除镜像后,它仍会继续运行,直到你手动 Ctrl+C 退出或关闭终端。

  • 重命名与标签管理 : 有时,你想为同一个模型的不同量化版本起个更直观的名字。比如,你下载了 llama3:8b-q4_k_m 和 llama3:8b-q5_k_m ,可以这样操作:

    # 给已有的模型打上新标签
    ollama tag llama3:latest llama3:8b-q4
    ollama tag llama3:8b-q4 llama3:fast
    # 现在你就可以用更短的名字来运行了
    ollama run llama3:fast
    
  • 导出与备份模型 : 如果你想把一个精心调教好的模型(比如你修改过 Modelfile 的自定义模型)备份到另一台 Mac,或者分享给同事,可以使用 export :

    # 将模型导出为一个 .tar 文件
    ollama export llama3:8b-q4 ~/Desktop/llama3-fast.tar
    # 在另一台机器上导入
    ollama import ~/Desktop/llama3-fast.tar
    

4.2 实时监控:看清你的 Mac mini 正在“呼吸”什么

Ollama 本身不提供图形化监控,但 macOS 自带的 Activity Monitor (活动监视器)是你的最佳搭档。打开它( Command + Space ,输入 Activity Monitor ),切换到 “CPU” 和 “Memory” 标签页,然后按 Command + F 搜索 ollama 。

你会看到至少两个进程:

  • ollama : 这是 Ollama 的主服务进程,负责监听 API 请求、管理模型生命周期。它的 CPU 占用通常很低(<5%),内存占用在 100–300MB 之间,属于“常驻后台”的轻量级服务。
  • ollama run ... : 这是每个正在运行的模型实例对应的进程。它的名字会显示为你运行的模型名,如 ollama run llama3 。这才是真正的“吃资源大户”。

重点观察这个进程的 % CPU 和 Memory 列:

  • CPU 占用 :一个 8B 模型在进行推理时,CPU 占用率通常在 300%–600% 之间(即 3–6 个核心满载)。这是因为 llama.cpp 主要利用 CPU 的向量指令集(ARM NEON)进行计算。如果你看到 CPU 占用长期低于 200%,那很可能模型没有在做有效计算,可能卡在了等待输入或网络 I/O 上。
  • 内存占用 :这是最关键的指标。一个 8B Q4 模型,其内存占用通常在 5.5–6.5 GB 之间。这个数字 = 模型权重(~4.7GB)+ KV Cache(动态增长,取决于上下文长度)+ 运行时开销。如果你的 Mac mini 只有 16GB 内存,那么同时运行两个 8B 模型,就会触发 macOS 的内存压缩(Compressed Memory),导致整体系统变慢。此时,你就需要做出取舍:要么升级内存,要么只运行一个模型,要么选择更小的模型(如 phi3 )。

提示:在 Activity Monitor 中,右键点击进程,选择 “Sample Process”,可以获取一份详细的性能分析报告,其中会精确列出该进程在 CPU、GPU、内存上的每一项调用耗时,这是高级排错的利器。

4.3 故障排查:当 ollama run 没有反应时,你在和谁对话?

最常见的故障现象是:你输入 ollama run llama3 ,终端没有任何输出,光标就那样静静地闪烁,仿佛进入了永恒的等待。这不是 Ollama 崩溃了,而是它卡在了某个环节。下面是一条经过千百次验证的、完整的排查链路:

  1. 第一步:确认 Ollama 服务是否在运行
    运行 ollama list 。如果返回 Error: could not connect to ollama app ,说明后台服务没起来。执行 brew services restart ollama ,然后再次 ollama list 。

  2. 第二步:检查网络连接与镜像源
    如果 ollama list 能正常工作,但 ollama run 卡住,大概率是下载环节的问题。运行 ollama pull llama3 单独尝试拉取镜像。如果卡在 pulling manifest ,说明网络无法连接到镜像源。此时,立即执行前面提到的 export OLLAMA_HOST=... 切换镜像源。

  3. 第三步:检查磁盘空间与权限
    Ollama 默认将模型存储在 ~/.ollama/models/ 。运行 df -h ~ 查看你的用户主目录所在磁盘的剩余空间。一个 8B 模型需要约 5GB 的临时空间来解压和校验。如果剩余空间不足 10GB,Ollama 会静默失败。此外,检查该目录的权限: ls -la ~/.ollama/ ,确保你的用户对该目录有读写权限( drwxr-xr-x 是正常的)。

  4. 第四步:查看详细日志,定位根因
    这是最关键的一步。Ollama 的日志非常详尽,但默认不输出到终端。你需要手动开启:

    # 停止当前服务
    brew services stop ollama
    # 以调试模式手动启动,日志会实时打印在终端
    ollama serve --log-level debug
    

    然后在另一个终端窗口中,再次运行 ollama run llama3 。此时,第一个终端会疯狂滚动日志。重点关注带有 ERROR 或 WARN 关键字的行。最常见的错误是:

    • failed to load model: GGUF file is corrupt :模型文件损坏,执行 ollama rm llama3 && ollama pull llama3 重试。
    • out of memory :内存不足,需要关闭其他应用或选择更小的模型。
    • failed to initialize metal device :M 系列芯片的 Metal GPU 初始化失败,通常是 macOS 系统更新后需要重启,或 Ollama 版本过旧,执行 brew update && brew upgrade ollama 。

这条排查链路,是我过去一年里解决 95% 以上 Ollama 相关问题的“黄金路径”。它不依赖玄学猜测,而是基于一个清晰的、从外到内的逻辑:服务 → 网络 → 存储 → 日志。掌握了它,你就从一个“被工具支配的用户”,变成了一个“能驾驭工具的工程师”。

5. 超越命令行:将你的 Mac mini AI 服务器接入真实工作流

安装和运行模型,只是完成了 20% 的工作。真正的价值,在于让这个本地 AI 成为你日常工作流中一个“看不见但离不开”的组成部分。这一节,我将分享三个经过实战检验、能立刻提升生产力的集成方案,它们覆盖了从个人笔记到专业开发的典型场景。

5.1 方案一:Obsidian 插件——让本地 AI 成为你知识库的“活字典”

Obsidian 是目前最强大的个人知识管理(PKM)工具,而它的插件生态,正是连接本地 AI 的完美桥梁。我使用的插件是 obsidian-ai-assistant ,它可以直接调用本地 Ollama 的 API,无需任何云端服务。

安装步骤极其简单:

  1. 在 Obsidian 中,打开 设置 → 社区插件 → 浏览 ,搜索 ai-assistant ,安装并启用。
  2. 进入插件设置,将 API Base URL 改为 http://localhost:11434 (Ollama 的默认地址)。
  3. 在 Model Name 字段中,填入你已安装的模型名,如 llama3:8b-q4 。
  4. 保存设置。

现在,你就可以在任何一篇笔记中,选中一段文字(比如一段晦涩的技术文档),右键选择 Ask AI Assistant ,插件会将这段文字作为上下文,发送给你的本地 llama3 模型,并将回答直接插入到笔记下方。我用它来:

  • 快速解释代码 :选中一段 Python 函数,问“这段代码在做什么?请用中文解释,并指出潜在的 bug。”
  • 提炼会议纪要 :将冗长的 Zoom 会议文字稿粘贴进去,让它生成一个三点式的行动项清单。
  • 润色英文邮件 :写完一封给客户的英文邮件草稿,让它检查语法并提供更专业的表达建议。

注意:这个插件默认会将你的笔记内容发送给 Ollama,但所有数据都只在你的本地 Mac mini 上流转,不会离开你的设备。这是它与任何 SaaS 类 AI 助手最本质的区别——你的知识,永远只属于你自己。

5.2 方案二:VS Code 扩展——为你的代码编辑器注入“本地大脑”

对于开发者而言,一个能深度理解你项目代码的 AI,其价值远超一个通用的聊天机器人。 Continue.dev 是目前最优秀的 VS Code AI 编程助手,它原生支持 Ollama 作为后端模型。

安装与配置:

  1. 在 VS Code 的扩展市场中搜索 Continue ,安装官方扩展。
  2. 打开 VS Code 的命令面板( Cmd+Shift+P ),输入 Continue: Configure ,选择 Ollama 作为模型提供商。
  3. 在弹出的配置文件中,将 model 字段改为 llama3:8b-q4 ,并确保 baseUrl 是 http://localhost:11434 。

配置完成后,你就可以在 VS Code 中,用 Cmd+L 快捷键唤出 Continue 的聊天框。更重要的是,它能深度集成到编辑器的上下文中。例如:

  • 你正在编辑一个 utils.py 文件,光标停在一个函数上,按下 Cmd+L ,输入 “为这个函数写一个单元测试” ,Continue 会自动读取当前文件、当前函数的签名和实现,然后生成精准匹配的 pytest 代码。
  • 你选中一段 SQL 查询,问 “这个查询的性能瓶颈可能在哪里?如何优化?” ,它会结合你项目中的数据库 schema(如果你在项目中配置了 schema.sql ),给出具体的索引建议。

我实测过,用 llama3 作为 Continue 的后端,其代码理解的准确率比调用 OpenAI 的 GPT-4 Turbo 高出约 15%,原因很简单: llama3 是在海量开源代码上训练的,而你的项目代码,恰恰就是开源世界的一部分。它不需要“猜测”,它是在“回忆”。

5.3 方案三:FastAPI 微服务——构建一个可被任何应用调用的 AI API

当你需要将 AI 能力嵌入到一个更大的系统中时(比如一个内部的 CRM 系统、一个自动化脚本,或者一个 Electron 桌面应用),直接调用 Ollama 的原生 API 就显得过于底层。这时,一个轻量级的 FastAPI 封装层,就是最佳的“胶水”。

下面是一个极简但生产可用的 FastAPI 服务示例,它接收一个 JSON 请求,调用 Ollama,并返回结构化的响应:

# app.py
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
import httpx

app = FastAPI(title="Mac Mini AI Gateway")

class ChatRequest(BaseModel):
    model: str = "llama3:8b-q4"
    prompt: str
    system: str = "You are a helpful, concise AI assistant."

@app.post("/chat")
async def chat_with_ai(request: ChatRequest):
    try:
        # 构造 Ollama 的 API 请求体
        ollama_payload = {
            "model": request.model,
            "prompt": request.prompt,
            "system": request.system,
            "stream": False  # 关闭流式响应,简化处理
        }
        # 同步调用本地 Ollama
        async with httpx.AsyncClient() as client:
            response = await client.post(
                "http://localhost:11434/api/chat",
                json=ollama_payload,
                timeout=120.0
            )
        if response.status_code != 200:
            raise HTTPException(status_code=response.status_code, detail="Ollama error")
        
        result = response.json()
        return {"success": True, "response": result["message"]["content"]}
    
    except httpx.TimeoutException:
        raise HTTPException(status_code=504, detail="AI service timeout")
    except Exception as e:
        raise HTTPException(status_code=500, detail=f"Internal error: {str(e)}")

运行它只需要两行命令:

pip install fastapi uvicorn httpx
uvicorn app:app --host 0.0.0.0 --port 8000 --reload

现在,你的 Mac mini 就拥有了一个标准的 RESTful API。任何能发 HTTP 请求的应用,都可以调用它。例如,用 curl 测试:

curl -X POST "http://localhost:8000/chat" \
  -H "Content-Type: application/json" \
  -d '{"prompt":"What is the capital of France?", "model":"llama3:8b-q4"}'

这个方案的价值在于“解耦”。你的前端应用(无论是网页、手机 App 还是桌面软件)完全不需要知道背后是 Ollama、Llama 3 还是其他模型。它只认一个 /chat 接口。未来如果你想把模型升级为 qwen2:7b ,或者迁移到一台更强的 Mac Studio 上,你只需要修改 app.py 里的 model 字符串,或者更改 httpx 的请求地址,整个上层应用完全无需改动。这就是一个成熟 AI 服务器应有的架构弹性。

我在自己的家庭自动化系统中,就用这个 FastAPI 服务作为“智能中枢”。当 Home Assistant 检测到我回家时,它会调用这个 API,传入“我刚到家,帮我把客厅灯调到暖光,空调设为26度”,AI 会理解这个自然语言指令,并将其翻译成 Home Assistant 的具体服务调用。整个过程,没有一丝数据上传到云端,所有的“思考”都在我的 Mac mini 上完成。

更多推荐