目前行业内智能家居语音助手虽然在近些年有了显著改进,但在响应更模糊命令的能力方面仍然有所欠缺;ChatGPT 等通用大模型 虽然可以有效地理解用户的模糊命令,但将响应的内容我们很难进行控制,需要通过 “提示词” 进行预设,才能有效进行设备控制。

刚好IoT平台的物模型和物模型统一通讯协议,可以通过JSON格式去描述了描述了该实体是什么、能做什么、可以对外提供哪些信息,并以什么格式下发消息。能够更好的去约束通用模型的给出的响应,让大模型可以创建更加正确、格式化的JSON接口,并与IoT平台 物模型API 进行对接并控制设备。

以下仅为简单的一个示例

  1. 在IoT 建立一个产品物模型并生成模型的描述文件。以灯泡为例:

    {
     "profile": {
         "productId": "b8peWQtNXD",
         "productVersion": "1.0",
         "moduleIdentifier": "default"
     },
     "properties": [
         {
             "identifier": "power",
             "name": "开关",
             "desc": null,
             "nid": 1,
             "accessMode": "rw、rp",
             "dataType": {
                 "type": "bool",
                 "specs": {
                     "0": "关",
                     "1": "开"
                 }
             }
         },
         {
             "identifier": "light_level",
             "name": "亮度调节",
             "desc": null,
             "nid": 1,
             "accessMode": "rw、rp",
             "dataType": {
                 "type": "int32",
                 "specs": {
                     "init": 0,
                     "max": 100,
                     "min": 0,
                     "step": 1,
                     "unit": "无"
                 }
             }
         }
     ],
     "events": [],
     "actions": []
    }
  2. 创建一个独立会话,并进行提示词预设。目前我们已有的几个功能如下:

  • 物模型期望值设置接口的HTTP的Payload如下:

    {
      "productId":"AAcmXyLkS1",
      "deviceId":"339a0519f96b432092d6c3451b2dd53e",
      "property":{
          "color":{
            "value":"red",
            "time": 1692175019846
          }
      }
    }
  • 用户说的话术,我们通过开源ASR服务,解析成{“query”:”用户说的话”}格式
    集合以上内容,我们可以这样进行提示词设置。

    你是一个负责控制智能家居的人工智能,接下来我通过JSON格式告诉你当前设备功能定义、deviceId、productId,然后将用户说的话以JSON格式:{“query”:”用户说的话”}告诉你。
    你的任务是通过用户说的话,结合设备的功能定义和用户背后的真实意图,以JSON格式{“productId”:””,”deviceId”:””,”property”:{“color”:{“value”:”red”,”time”: 1692175019846}}}直接请求接口https://cn-open.narwaltech.com/iot-platform/device-thing-model-server/v1/property/setDesired;不要进行多轮对话。
请注意其中color仅为示例,代表设备功能定义中identifier的值,red代表要控制功能的值;time代表当前时间的毫秒级时间戳。productId和deviceId在我给你设备的功能定义后你再问我要。

  1. 告诉AI,设备物模型和deviceId、productId。

  2. 按照约定的格式告诉AI 用户输入的话术「房间好黑」,可以看到AI精确的进行了回答,猜出了用户想要调节亮度的意图,并生成了接口调用所需的JSON。

 创建时间:2023-10-20 12:36
最后编辑:陈勇琦  更新时间:2024-10-18 10:58