hass_local_openai_llm
将任意本地大模型(llama.cpp/vLLM/Ollama)接入 Home Assistant,实
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将任意本地大模型(llama.cpp/vLLM/Ollama)接入 Home Assistant,实
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象一下这个场景:凌晨两点,你被楼上的漏水传感器警报吵醒,Home Assistant 推送了一条告警——但你睡眼惺忪,只想用一句话搞定所有后续操作:"关掉主卧的灯,关闭水阀,把这条告警记到日志里,明天找物业处理。"
在传统规则引擎下,这意味着你要么提前写好 N 条自动化规则,要么爬起来一顿手动操作。但如果你接入了一个本地大模型,它能同时理解你的自然语言指令、理解你家设备的上下文,甚至自动调用多个服务来完成一系列动作——那体验是完全不同的。
然而,市面上大多数智能家居 AI 集成方案都要走云端 API。这带来两个核心问题:隐私和延迟。你的家庭对话数据会被发送到第三方服务器;每次指令还要等网络往返,体验不够丝滑。
hass_local_openai_llm 就是来解决这个问题的——它让你把任何符合 OpenAI API 规范的本地大模型推理服务(比如 llama.cpp、vLLM、Ollama、LM Studio)直接接到 Home Assistant 里,用自然语言控制你的整个家,所有数据留在本地。

图1:项目 GitHub 主页
这个项目最初是 Home Assistant 官方 OpenRouter 集成的 fork,但作者 @skye-harris 在此基础上做了大量定制化扩展,让它从一个"云端 API 包装器"变成了一个功能完整的本地大模型集成方案。
fork 后新增的功能非常密集,包括:
从 topics 也能看出它的定位:homeassistant-integration、ollama、llamacpp、vllm、lmstudio、weaviate、openai-compatible——它本质上是一个OpenAI API 协议适配层,让 Home Assistant 能与所有遵循这一规范的推理服务通信。
项目是一个标准的 Home Assistant 自定义集成(Custom Component),核心结构如下:
custom_components/local_openai/
├── __init__.py # 集成入口、配置迁移、AsyncOpenAI 客户端初始化
├── config_flow.py # UI 配置向导(Config Flow)
├── const.py # 常量定义、配置选项、服务器类型
├── conversation.py # 对话 Agent 实现(核心逻辑)
├── ai_task.py # AI Task 实体(图片生成/数据生成)
├── weaviate.py # Weaviate RAG 集成
├── entity.py # 实体基类
├── manifest.json # 集成清单
├── services.yaml # 服务定义
└── translations/ # 多语言翻译文件
源码使用 async/await 全异步模式,集成 Home Assistant 的 AsyncOpenAI 客户端(封装了 httpx 异步 HTTP),所有推理请求均为非阻塞的异步调用。
| 组件 | 技术 |
|---|---|
| 集成语言 | Python 3.11+ |
| HTTP 客户端 | Home Assistant httpx_client(异步) |
| LLM 接口 | OpenAI Python SDK(openai) |
| 配置验证 | voluptuous(Schema 验证) |
| 代码质量 | ruff(lint/formatter)、mypy(类型检查)、pytest(测试) |
值得注意的是项目使用了严格的 Python 类型检查(mypy strict mode)和完整的类型注解,包括 type 语句(Python 3.12+ 特性),代码质量在同类 Home Assistant 社区集成中属于较高水准。
集成暴露两个 Home Assistant 平台:
1. Conversation Agent(对话 Agent)
这是最核心的功能。它注册为一个标准的 Home Assistant Conversation Agent,用户可以直接在 HA 的「Assist」界面用自然语言与本地大模型对话。它支持:
2. AI Task(AI 任务实体)
这是一个更通用的实体抽象,可以配置为执行以下任务:
集成内置了**实验性 RAG(检索增强生成)**支持,对接 Weaviate 向量数据库。工作流程如下:
项目在 weaviate/ 目录下提供了一个完整的 Node.js WebApp,可以在浏览器中管理向量数据库中的数据(添加、查询、浏览)。配套的 docker-compose.yml 可以一键启动 Weaviate 服务 + WebApp,零配置使用。
方式一:HACS(推荐)
只要你的 Home Assistant 已经安装了 HACS,在 HACS 界面添加自定义仓库 https://github.com/skye-harris/hass_local_openai_llm,然后点击安装即可。重启 Home Assistant 后在「设置 → 设备与服务」中添加「Local OpenAI LLM」集成,跟着向导配置服务器地址和 API Key 即可。
方式二:手动安装
下载 release 包,将 local_openai 目录复制到 Home Assistant 配置目录的 custom_components/ 下,重启即可。
集成本身几乎不占资源,但需要一个 OpenAI 兼容的推理服务端点作为后端。可选方案非常多:
| 后端 | 适用场景 | GPU 需求 |
|---|---|---|
| Ollama | 最简单,支持 Windows/macOS/Linux 一键安装 | 可选 GPU 加速 |
| llama.cpp | 高性能 CPU/GPU 推理,Q4 量化模型流畅运行 | 可选 GPU |
| vLLM | 生产级高吞吐,需要 NVIDIA GPU | 必须 |
| LM Studio | 桌面应用,界面友好,适合新手 | 可选 GPU |
| 本地 DeepSeek | 深度推理场景 | 取决于模型大小 |
作者在文档中特别强调:建议使用至少 10k 上下文窗口的模型,因为 Assist 需要足够空间容纳工具定义和设备状态信息。
集成本身的安装非常简洁,通过 HACS 五分钟可以搞定。但部署的核心门槛在于本地 LLM 推理服务的配置——GPU 驱动、模型下载、量化优化等都需要一定折腾。对于没有折腾过本地大模型的 Home Assistant 用户,建议从 Ollama 开始,它做到了真正的零配置。
Weaviate RAG 一键部署:如果你想启用 RAG 功能,weaviate/ 目录下的 docker-compose.yml 可以一键启动整个 Weaviate 服务栈(含 Web 管理界面),非常友好。
项目为 llama.cpp 提供了完整的采样参数控制面板:
这些参数对于调优本地模型的对话质量非常重要——比如 Gemma 4 模型对"包含历史推理内容"的处理方式不同,项目专门提供了「Include Prior Thinking」开关来处理这种差异。
这是一个容易被忽视但很有价值的实验功能。项目可以将当前日期时间动态注入到对话上下文中(三种注入方式:Tool Result、Assistant、User),帮助大模型更好地理解"现在是什么时候",从而给出更有时效性的回答。
| 对比维度 | hass_local_openai_llm | OpenAI Cloud | OpenRouter |
|---|---|---|---|
| 隐私性 | ✅ 完全本地 | ❌ 数据上传云端 | ❌ 数据上传云端 |
| 延迟 | 取决于本地硬件 | 网络延迟 | 网络延迟 |
| 成本 | 一次性硬件成本 | 按 token 付费 | 按 token 付费 |
| 模型灵活性 | ✅ 支持任意 GGUF/GGML | 有限 | 丰富 |
| 多模态 | ✅ 支持图片输入 | ✅ 原生支持 | ✅ 原生支持 |
| 配置复杂度 | 中等(需自建推理服务) | 低 | 低 |
本地硬件门槛:运行足够聪明的大模型(至少 7B Q4 参数量)需要足够的 GPU 或耐心等待 CPU 推理。对于树莓派等低功耗设备,能跑但体验有限。
工具调用(Tool Calling)需要推理服务支持:不是所有本地推理服务都原生支持 tool calling 功能。llama.cpp 和 vLLM 需要手动启用相关参数。
上下文窗口管理:Home Assistant 的 Assist 功能对上下文长度需求很大(工具定义 + 设备状态 + 对话历史),如果模型上下文窗口不够大,需要在推理服务端手动配置截断策略。
RAG 功能仍为实验性:Weaviate RAG 功能虽然完整可用,但作者标注为实验性,生产环境使用前建议做好数据备份。
图片生成依赖特定服务:AI Task 的图片生成功能需要支持 OpenAI Images API 的推理服务(如 StableDiffusion.cpp),不是所有本地推理方案都能开箱即用。
根据 GitHub 数据,该项目当前 220 Stars、34 Forks、7 Issues、1 PR,对于一个细分领域(Home Assistant × 本地大模型)的自定义集成来说,这个增长曲线相当健康。
增长背后的核心驱动力有几个:
作者 @skye-harris 在社区中有较高活跃度,项目保持着稳定的更新节奏(最近一次提交在 2 天前,v0.5.x 版本),维护质量较好。
hass_local_openai_llm 是一个精准定位在「Home Assistant × 本地大模型」的集成工具,它的核心价值在于:用自然语言控制智能家居,同时把所有数据留在本地。
它的优势不在于技术上的突破性创新,而在于将多个已经很成熟的技术(OpenAI API 协议、本地推理服务、Weaviate RAG)有机整合,以一个安装简单、配置灵活、社区活跃的自定义集成形式呈现。对于已经在使用 Home Assistant 且对隐私有要求的用户,它是一个值得尝试的低成本方案。