目前行业内智能家居语音助手虽然在近些年有了显著改进,但在响应更模糊命令的能力方面仍然有所欠缺;ChatGPT 等通用大模型 虽然可以有效地理解用户的模糊命令,但将响应的内容我们很难进行控制,需要通过 “提示词” 进行预设,才能有效进行设备控制。
刚好IoT平台的物模型和物模型统一通讯协议,可以通过JSON格式去描述了描述了该实体是什么、能做什么、可以对外提供哪些信息,并以什么格式下发消息。能够更好的去约束通用模型的给出的响应,让大模型可以创建更加正确、格式化的JSON接口,并与IoT平台 物模型API 进行对接并控制设备。
以下仅为简单的一个示例:
在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": [] }
创建一个独立会话,并进行提示词预设。目前我们已有的几个功能如下:
物模型期望值设置接口的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在我给你设备的功能定义后你再问我要。
告诉AI,设备物模型和deviceId、productId。
按照约定的格式告诉AI 用户输入的话术「房间好黑」,可以看到AI精确的进行了回答,猜出了用户想要调节亮度的意图,并生成了接口调用所需的JSON。
最后编辑:陈勇琦 更新时间:2024-10-18 16:29