
上周帮刚学易语言的师弟调脚本,他想写个桌面小工具,说句话就能控制书桌上的智能灯,折腾两天连HTTP请求都没发出去,其实整个流程拢共没几行代码,新手照着抄半小时就能跑起来。
提前准备的几个东西
- 装好易语言5.9及以上版本,打开支持库配置,勾选上互联网支持库,不然没法发HTTP请求;
- 本地部署好开源大模型接口,比如用Ollama跑qwen2:7b就够用,默认服务端口是11434,不用买付费云API;
- 确认你要控制的物联网设备有本地控制接口,不用走厂商云端那种,本地局域网发请求就能控制的最好。
先把AI接口的请求跑通
别上来就写设备控制逻辑,先单独把发给AI的请求调通,新建一个易语言Windows窗口程序,拖一个按钮、一个编辑框进去,按钮的点击事件里写下面的代码:
.版本 2
.支持库 internet
.子程序 _按钮1_被单击
.局部变量 请求地址, 文本型
.局部变量 提交数据, 文本型
.局部变量 返回结果, 文本型
请求地址 = “http://127.0.0.1:11434/api/generate”
提交数据 = “{""model"": ""qwen2:7b"",""prompt"": ""用户说'开书房灯',只返回JSON结果,包含action字段值为on/off,device字段值为light"",""stream"":false}”
返回结果 = 到文本 (HTTP读文件 (请求地址, 1, , 提交数据, “Content-Type: application/json”))
编辑框1.内容 = 返回结果
这里有个新手必踩的坑:易语言里文本内容中的双引号,必须写两个连续的双引号做转义,不然点编译直接报语法错误,很多人卡半小时都找不到问题在哪。另外刚开始调的时候prompt写的越死越好,别让AI自由发挥,就要求它只返回固定格式的内容。
接上设备控制逻辑
等你点按钮能在编辑框里看到AI返回的正确JSON内容之后,不用特意去装复杂的JSON解析支持库,新手做demo用自带的文本寻找命令就够,在刚才的代码后面加几行判断:
.如果 (寻找文本 (返回结果, “""action"":""on""”, , 假) ≠ -1)
' 替换成你自己设备的本地开接口地址
HTTP读文件 (“http://你家设备的局域网IP/on”, 0, , , )
.否则
' 替换成关接口地址
HTTP读文件 (“http://你家设备的局域网IP/off”, 0, , , )
.如果结束
整个流程到这就跑通了,响应速度看你电脑的配置,本地跑7B模型的话延迟大概几百毫秒,日常用完全够。别一开始就想着做上下文记忆、多设备联动这些复杂功能,先把单个设备的控制调顺。
对了,跑通之后别到处吹你做了个全屋智能中枢,咱这就是个能用的小玩具,自己用着顺手比啥都强。
评论一下?