title: 90.使用影刀实现千牛自动回复 CreateTime: 2024-11-12 14:36:37 UpdateTime: 2024-11-13 09:40:10 CategoryName: AI --- # 说明 千牛消息通知打开,设置消息为气泡模式,千牛启用无障碍-讲诉人模式.这样千牛的新消息就会有个弹出框,通过影刀一直监听新消息弹出框,点击新消息,然后获取内容,发送给大模型,获取回复,自动回复给用户. ![1.png](/public/upload/20241112143404647731200552568785.png) ![2.png](/public/upload/20241112143548635810899788772140.png) # 影刀流程图 ![3.png](/public/upload/20241112144139136614767917216424.png) # 无限循环 使用默认的 无限循环 组件,不用做其他处理 ## 等待 等待1秒.就是每次循环都先等待1秒 ## IF窗口存在 回复相同的内容,千牛会弹出一个服务态度的对话框,阻断输入,获取 ```继续发送```的按钮对象,如果这个按钮存在,就点击它. ![4.png](/public/upload/20241112145025145905785490318989.png) ### 点击元素(win) 模拟人工点击 ```继续发送``` 按钮 ## IF窗口存在 右下角托盘,新消息的弹出框,也是主要监听的消息框.红色部分就是```新消息弹出框```元素,如果不存在就```继续下一次循环```检查. ![5.png](/public/upload/20241112145706336513353018525931.png) ## 点击元素(win) 点击```新消息弹出框```元素,也就是新消息的提示框. ## 获取元素信息(win) 获取```新消息弹出框```元素的文本内容,就是消息人的昵称,保存到```昵称```变量 ![6.png](/public/upload/20241112150436700615036529503570.png) ## 获取元素信息(win) 获取```最新消息```元素的文本内容,也就是聊天窗口的最后一个信息,保存到```最新消息```变量 ![7.png](/public/upload/20241112150831869610016180842618.png) 需要注意的是,需要设置```act-name```统配符为*,不同消息的act-name并不相同,所以用* ![8.png](/public/upload/20241112151118012943742678610298.png) ## Http请求 有了```昵称```和```最新消息```这两个变量,就可以请求大模型,请求的变量需要用双引号包裹.将响应结果保存到```http_response```变量 ![9.png](/public/upload/20241112151624399806003022649062.png) ## 转换成Json对象 将http响应的结果,转换成json对象,方便后续处理.只需要获取```响应内容```,点击```fx```,会弹出选择框,选择```http_response```的```响应内容```属性,保存到```json_response```变量 ![10.png](/public/upload/20241112152013274857861412374731.png) ## 设置变量 json对象有很多层级和数据,这里只需要回复内容```content```,这里声明```AI回复的内容```变量,用于接收```content```. 在```json_response```后输入```[```会有下拉提示```[](列表/字典取值符)```,鼠标点一下这个提示,然后输入属性名,不需要双引号包裹. ![11.png](/public/upload/20241112152534537775363591299311.png) ## 填写输入框 有了大模型的回复内容,就获取```回复输入框```元素,输入```AI回复的内容```. ```模拟人工输入```时启用```强制使用英文键盘```.建议使用```剪贴板输入```. ![12.png](/public/upload/20241112153127595098353011758112.png) ## 键盘输入 最后输入回车键```{ENTER}```,发送回复.