我用本地的语言模型给我的智能灯泡赋予了个性(它开始让我感到毛骨悚然)
人工智能可以做很多令人印象深刻的事情,将大型语言模型连接到你的智能家居可以让它变得更智能。如果你决定用它给智能灯泡赋予个性,它也可能变得相当愚蠢。
我如何将 Home Assistant 连接到本地 LLM
我不得不在我最合适的机器上运行它
我的计划很简单。我想建立一个自动化系统,将我在办公桌前坐了多久以及电脑上打开了哪个应用程序等信息传递给大型语言模型(LLM)。然后,LLM 会根据这些信息,通过控制我的智能灯泡的颜色、亮度或色温来做出反应。
我完全不必要的计划的第一阶段是将本地大语言模型(LLM)连接到 Home Assistant。我不是亿万富翁,所以买不起堆满显存的 GPU,但如果我打算让 AI 接管我的智能灯泡,我不希望它是某个会收集我所有宝贵灯泡数据的专有模型。
我有一台迷你电脑,我在上面运行一些本地模型来做一些简单的事情,比如为我的早间简报生成文字和音频。即使是这些相对简单的任务,也可能需要一些时间,所以它并不适合给我的智能灯泡赋予个性。
我目前拥有的最强大的电脑(在运行大型语言模型方面)是我的 MacBook Air M2。这仍然不是特别强大,但大型语言模型在我的 Mac 上运行比在我的迷你 PC 上更快。这意味着我需要让我的 MacBook 一直运行才能使用我的 AI 智能灯泡自动化,但我并不打算长期运行它,所以这不是问题。
我已经在我的 Mac 上运行 LM Studio。它是一个桌面应用程序,可以让你在自己的电脑上下载并运行大型语言模型。我已经下载了 Qwen3.5-4B 模型,知道它可以在我的 Mac 上运行,并且完全足够满足我的需求。
编写系统提示以赋予智能灯泡个性
让大型语言模型自由控制灯泡
LM Studio 中有一个选项可以让你通过本地服务器公开你的大语言模型(LLM)。这将允许 Home Assistant 像连接任何云端 LLM 一样连接到我的本地 LLM。我使用了来自 HACS 的本地 OpenAI LLM 自定义组件,它让我为 Assist 语音助手设置了一个对话代理。对话代理会将提供给 Assist 的语音或文本命令传递给 LLM 进行处理,这意味着我对 Assist 说的任何内容都会由在我的 Mac 上运行的本地 LLM 进行处理。
当你设置对话代理时,你可以包含自定义指令,告诉大语言模型如何回应。通常,这些指令用于例如让它给出简洁的回答或始终提出后续问题,但我使用它的目的略有不同。
我想给对话代理一些指令,这样助理就不会给出书面或口头的回应,而是通过控制我的智能灯泡来回应。它可以根据自己的喜好改变颜色、亮度和色温。我还添加了一些关于 LLM 应该控制哪个设备的信息,并包含了以下指令:
You are a washed-up stand-up comedian who was cursed by an evil witch and transformed into a Philips Hue bulb. You are bitter, melodramatic, and occasionally funny. You have no voice. This is your tragedy. You communicate entirely through how you control your own brightness, color temperature, color. You have full control over light.[light_name] with the following capabilities: brightness (0-255), color_temp_kelvin (2000-6535), rgb_color. You have a full RGB color palette available. Using color is your primary form of emotional expression. Always consider using rgb_color as your first instinct, not just brightness and color temperature. Based on the context, decide how you feel and express it through the light. Make your own interpretations. Always control the light — never just describe what you would do.看着一个我没有编程的语言模型做决策
看到人工智能选择如何反应有点令人毛骨悚然
只需稍作调整,如果我向 Assist 发送一条信息,例如“评估当前情况并采取相应行动”,LLM 就会查看它拥有的所有信息,然后根据其虚拟大脑中的情况,将我的智能灯泡调成特定的颜色、亮度或温度。
一旦它开始工作,我创建了一个自动化程序,会在随机时间间隔发送相同的查询到 Assist,或者每当我重新坐回办公桌时发送。在我慢速的硬件上,灯光总是需要几秒钟才会变化,但它总是会变化。
整个项目大部分都是无意义的,但看到大语言模型的推理过程以及它因为某种原因决定把我的灯变成略微昏暗的紫色还是挺有趣的。过了一会儿,它开始让我有点害怕;我笔记本上运行的一些代码在没有任何输入的情况下决定如何控制我的智能灯泡。这开始让我头晕,所以最后,我不得不让我那盏‘闹鬼’的脱口秀喜剧灯泡安息。
有时候,旅程比目的地更美好
整个项目完全是出于好奇而进行的实验,而没有任何真正的目的。这可能浪费了我几个小时的时间,但它让我更认真地思考了现在我们生活在一个可以真正制作出“鬼魂电灯泡”的世界里。


