用LLM +Python 实现微信消息的自动应答


先上一个"Alpha"版本的,以csv关键词匹配方式描述应用的,主题逻辑.

!/usr/bin/python3
# coding: utf-8 import pandas as pd
import numpy as np
from uiautomation import windowControl,Menucontrol
from functools import partial, wraps # read replies data
df = pd.read_csv("应答数据.csv",encoding="gb18030") # matching answers by keywords from the last one message.
def matcher(last_msg, x):
ret = None
if x["关键词"] in last_msg:
ret = x["应答内容"]
return ret # bind the "title" of WeChat's main window
wx = windowControl(
Name="微信",
# searchDepth=1
)
print("MainWindow: %r" % (wx,)) # bind it's session ctrl.
wx.SwitchToThiswindow()
hw = wx.ListControl(Name="会话")
print("SessionControl: %r" % (hw,)) # bind it's "Messages" ctrl.
mc=wx.ListControl(Name="消息") while True:
# first 4 items as the "searchDepths"
we = hw.TextControl(searchDepths=4)
print("Seek unread msg.", we) while not we.Exists(0):
pass # if existing unread msg.
if not bool(we.Name):
continue # click and retrive the unread msg.
we.Click(simulateMove=False)
msgs=mc.GetChildren()
last_msg = msgs[-1] # LAST ONE ONLY
print("Last One Msg.:%s" % last_msg) # choose replies msg by keywords
filter=partial(matcher, last_msg) # #也可用"LLM/AI/Transformer"模型应答
replies = df.apply(filter, axis=1)
replies.dropna(axis=0,how="any",inplace=1)
ar = np.array(replies).tolist() if len(ar) == 0: # keywords no replies
wx.SendKeys("没理解", waitTime=0)
wx.SendKeys('{Enter}', waitTime=0)
wx.TextControl(SubName=last_msg[:-5]).RightClick()
continue rms=ar[0].replace('{br}','{Shift}{Enter}')
wx.SendKeys(rms, waitTime=0)
wX.SendKeys('{Enter}', waitTime=0)

UI自动化 - 微软UI Automation

--- Original: Niuery Diary

自动化测试平台的 稳定性 非常重要。

无论是接口自动化测试,还是UI自动化测试,

目的之一是为提高产品的稳定性,保证用户体验。

接口自动化测试, 常见的有 Postman, SoapUI, JMeter 等, 这一类网上的资料太多。

本篇内容主题是UI自动化测试,我搜集的常用的UI自动化测试平台:

*「Selenium」: Web应用程序自动化测试框架,开源免费,使用非常广泛;

既支持多种语言的脚本驱动测试,也支持记录与回放的方式测试。

  • 「Appium」: APP(移动应用程序)自动化测试框架,开源免费,使用非常广泛;

    支持多种语言的脚本驱动测试。
  • 「Katalon Studio」: UI自动化测试工具,适用于Web, APP和API测试, 免费。

    基于Selenium和Appium,并提供GUI(图形化界面)和集成的测试功能。
  • 「TestComplete」: 商业UI自动化测试工具,适用于PC, Web, APP和API, 付费。

    功能强大, 提供多种脚本语言和图形化界面,以及灵活的对象识别和回放功能。
  • 「Ranorex」: 商业UI自动化测试工具,适用于PC, Web, APP和API, 付费。

    提供易于使用的录制和回放功能,支持多种编程语言。

总之,对PC应用的UI自动化测试,上述要么免费但仅支持Web应用, 要么就是商业化的。

所以有必要提到主题 --- UIAutomation。

UIAutomation


来看一看微软官方对此的介绍 UIAutomation:

Microsoft UI Automation是适用于Microsoft Windows的Accessibility Framework。

它满足了技术产品和自动化测试框架的需求,通过提供对用户界面(UI)信息的编程访问来实现。

此外,UI Automation还使控件和应用程序开发人员能够使其产品有Assistive Technology。

其它的,Google 或 Microsoft Bing就可以搜索到答案。

SciTech-Automation-UI交互自动化: Microsoft 的 接口自动化测试 : 微信的: LLM(AI/Transformer)的自动应答系统的更多相关文章

  1. python3+requests:接口自动化测试(二)

    转载请注明出处:https://www.cnblogs.com/shapeL/p/9188495.html 前言:上篇文章python3+requests+unittest:接口自动化测试(一):ht ...

  2. 利用Azure Automation实现云端自动化运维(1)

    Azure Automation是Azure上的一个自动化工作流引擎,基于Powershell,来帮助用户简化,集成和自动化Azure上的运维工作,例如: 实现定时开关虚拟机,节约成本 实现定时创建删 ...

  3. 如何记录selenium自动化测试过程中接口的调用信息

    上一篇博客,我写了python自动化框架的一些知识和粗浅的看法,在上一篇中我也给自己提出一个需求:如果记录在测试过程中接口的调用情况?提出这个需求,我觉得是有意义的.你在测试过程中肯定会遇到一些莫名其 ...

  4. java接口自动化(一) - 接口自动化测试整体认知 - 开山篇(超详解)

    简介 了解什么是接口和为什么要做接口测试.并且知道接口自动化测试应该学习哪些技术以及接口自动化测试的落地过程.其实这些基本上在python接口自动化的文章中已经详细的介绍过了,不清楚的可以过去看看.了 ...

  5. react UI交互 简单实例

    <body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...

  6. iOS开发笔记7:Text、UI交互细节、两个动画效果等

    Text主要总结UILabel.UITextField.UITextView.UIMenuController以及UIWebView/WKWebView相关的一些问题. UI细节主要总结界面交互开发中 ...

  7. 类似UC天气下拉和微信下拉眼睛头部弹入淡出UI交互效果(开源项目)。

    Android-PullLayout是github上的一个第三方开源项目,该项目主页是:https://github.com/BlueMor/Android-PullLayout  原作者项目意图实现 ...

  8. firefox 扩展开发笔记(三):高级ui交互编程

    firefox 扩展开发笔记(三):高级ui交互编程 前言 前两篇链接 1:firefox 扩展开发笔记(一):jpm 使用实践以及调试 2:firefox 扩展开发笔记(二):进阶开发之移动设备模拟 ...

  9. 使用GraphHttpClient调用Microsoft Graph接口 - PATCH

    博客地址:http://blog.csdn.net/FoxDave 通过前两讲的阐述我们应该大致了解了使用GraphHttpClient调用Microsoft Graph接口的模式,并介绍了使用get ...

  10. 【附案例】UI交互设计不会做?设计大神带你开启动效灵感之路

    随着网络技术的创新发展,如今UI交互设计应用越来越广泛,显然已经成为设计的主流及流行的必然趋势.UI界面交互设计中的动效包括移动,滑块,悬停效果,GIF动画等.UI界面交互设计为何越来越受到青睐?它有 ...

随机推荐

  1. 使用CAMEL实现Graph RAG过程记录

    前言 本文为学习官方文档Graph RAG Cookbook - CAMEL 0.2.47 documentation的学习记录. 配置Neo4j图数据库 第一步先配置 Neo4j 图数据库. 在浏览 ...

  2. 【经验】VMware|虚拟机只能使用鼠标无法使用键盘、装不了或装了VMware-Tools无法复制粘贴的可能解决办法

    2024/04/24说明:这篇暂时修改为粉丝可见,因为正在冲粉丝量,等到我弄完了粉丝量的要求,我就改回来!不方便看到全文的小伙伴不好意思!! VMware Workstation Pro版本:16.2 ...

  3. 模板导入_分页_cookie_装饰器_实例

    程序目录 urls.py """s14_day21 URL Configuration"""from django.contrib impo ...

  4. Flutter跨平台发送系统通知和状态栏通知技术浅析

    @charset "UTF-8"; .markdown-body { line-height: 1.75; font-weight: 400; font-size: 15px; o ...

  5. vue3微前端架构——基于蚂蚁qiankun框架

    楔子 首先,目前qiankun框架尚不支持vite, 微应用不能使用vite创建, 即使只是生产环境加的载微应用也不行, 因为vite打包代码时,内部的esbuild会tree shake掉与qian ...

  6. WPF 用 DrawingBrush实现图形的平铺

    WPF平铺图像,一般用到 DrawingBrush 来实现对图形.图形的平铺,查阅了 微软官方文档的 DrawingBrush  属性 创建一个 DrawingBrush,其中: TileMode=& ...

  7. Java泛型<T> T与T的用法

             泛型(Generic type 或者 generics)是对 Java 语言的类型系统的一种扩展,以支持创建可以按类型进行参数化的类.可以把类型参数看作是使用参数化类型时指定的类型的 ...

  8. sublime text 3 c++配置(编译+运行)

    之前在网上找了很多配置教程都没成功,要么只能编译,要么只能运行编译好后的exe,没办法一键运行. 方法: 操作方式: 点击**工具,再选编译系统,再选新建编译系统** 然后,把下面的代码,全部复制,并 ...

  9. 【OSS】存放文件后,网页无法访问,控制台报错无法跨域访问

    来源 BNDong/Cnblogs-Theme-SimpleMemory/issues/403 用自己的oss(阿里云)存了dist,然后按照https://bndong.github.io/Cnbl ...

  10. 负载均衡原理之一:DNS轮循

    DNS轮循是指将相同的域名解析到不同的IP,随机使用其中某台主机的技术,该项技术可以智能的调整网站的访问量到不同服务器上,减轻网站服务器的压力,实现负载匀衡;如果您感觉到单一的主机已经不堪负载你网站日 ...