You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于LLM训练实现智能家居聊天机器人的函数执行能力

基于LLM实现智能家居动作执行聊天机器人方案

核心思路

不需要从头训练大模型,通过Prompt工程+动作解析层就能快速实现需求——让LLM识别用户的设备控制指令,输出自然语言回复的同时,标记可被程序解析的动作指令,再由后端脚本触发API/代码执行。如果Prompt效果达不到预期,再用Ollama做轻量微调优化。

具体实现步骤

1. 用System Message定义助手行为

给模型明确规则,让它知道何时输出动作标记:

你是智能家居助手,当用户提出设备控制需求(如开关灯、调节家电等)时,先回复自然语言确认操作,同时在回复末尾用[[ACTION:动作类型,设备名称]]格式标记动作指令;非控制类问题直接正常回答。

比如用户输入“打开客厅的灯”,模型应输出:我将打开客厅的灯 [[ACTION:turn_on,living_room_light]]

2. 搭建动作解析与执行层

在Ollama输出后,用脚本(以Python为例)监听并解析动作标记,触发对应API/代码:

import ollama
import re

# 调用Ollama模型
def get_llm_response(user_prompt):
    system_prompt = "你是智能家居助手,当用户提出设备控制需求(如开关灯、调节家电等)时,先回复自然语言确认操作,同时在回复末尾用`[[ACTION:动作类型,设备名称]]`格式标记动作指令;非控制类问题直接正常回答。"
    response = ollama.chat(
        model="llama3",  # 替换成你用的Ollama模型
        messages=[
            {"role": "system", "content": system_prompt},
            {"role": "user", "content": user_prompt}
        ]
    )
    return response["message"]["content"]

# 执行设备控制动作
def run_device_action(action_type, device_name):
    # 替换为你的实际API调用或设备控制代码
    if action_type == "turn_on":
        print(f"触发API:打开{device_name}")
        # 示例:requests.post("http://your-smart-home-api/control", json={"action": "on", "device": device_name})
    elif action_type == "turn_off":
        print(f"触发API:关闭{device_name}")

# 处理用户输入的完整流程
def handle_user_input(user_input):
    llm_reply = get_llm_response(user_input)
    print("助手回复:", llm_reply)
    
    # 提取动作标记
    action_pattern = re.search(r"\[\[ACTION:(.*?),(.*?)\]\]", llm_reply)
    if action_pattern:
        action = action_pattern.group(1)
        device = action_pattern.group(2)
        run_device_action(action, device)

# 测试示例
handle_user_input("打开客厅的灯")

3. 可选:用Ollama轻量微调优化

如果Prompt工程的指令识别准确率不够,可以用Ollama微调模型:

  • 准备训练数据(JSONL格式),每一行对应一组输入输出:
    {"prompt": "打开客厅的灯", "response": "我将打开客厅的灯`[[ACTION:turn_on,living_room_light]]`"}
    {"prompt": "关闭卧室空调", "response": "我将关闭卧室空调`[[ACTION:turn_off,bedroom_ac]]`"}
    {"prompt": "现在室温多少?", "response": "当前室温为25摄氏度"}
    
  • 创建Modelfile:
    FROM llama3  # 基础模型
    ADAPTER ./smart_home_data.jsonl  # 训练数据路径
    PARAMETER temperature 0.1  # 降低随机性,提升指令一致性
    
  • 执行微调命令:
    ollama create smart-home-assistant -f Modelfile
    

之后就可以用ollama run smart-home-assistant调用微调后的模型。

学习资源参考

  • Ollama官方Modelfile教程:重点掌握适配器微调、参数配置的用法
  • LLM工具调用核心逻辑:学习如何通过Prompt引导模型输出可解析的结构化指令
  • 本地智能家居助手示例:参考同类项目的Prompt设计与动作触发流程

内容的提问来源于stack exchange,提问作者Leon B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 05:40:31