PyWinAssistant
"PyWinAssistant"是第一个大型行动模型,开源Windows 10/11人工窄域智能框架(2023年12月31日发布,早于微软的VoT论文),通过利用思维可视化(VoT)在大型语言模型中引发空间推理,无需OCR / 对象检测 / 分割来人工辅助任何win32api人机界面。这提高了泛化质量,并最大限度地减少了LLM和视觉模型的整体数据使用。它内置了辅助选项,以改善人类对计算机的使用,采用了一种新的技术方法来通过思维的空间可视化来辅助和测试用户界面和用户体验,正确地泛化任何自然语言提示,并计划在考虑安全的情况下在操作系统中执行正确的操作。
相关论文:思维可视化在大型语言模型中引发空间推理(2024年4月4日发布) https://arxiv.org/abs/2404.03622
概述
以友好自然的方式与你的计算机对话,执行任何用户界面活动。 使用自然语言自由操作你的Windows操作系统。 通过简单使用自然语言,为你的用户界面应用程序生成和规划测试用例,以便在任何支持Win32api的应用程序上进行持续测试。 你自己的开放和安全的个人助手,按你的要求响应,控制你希望计算机如何辅助你。 它被设计成模块化的,能理解并执行广泛的任务,自动化与任何桌面应用程序的交互。
演示(视频如下)
请为演示视频启用音频。
语音1 - 输入人类(英语女性澳大利亚TTS)
语音2 - 输出助手(英语女性美国谷歌TTS)
通过自然语言使用你的计算机 - VoT的实时使用,单一行动模型的示例。
不使用任何视觉。只使用API LLM调用。
https://github.com/a-real-ai/pywinassistant/assets/18397328/25b39d8c-62d6-442e-9d5e-bc8a35aa971a
将你的计算机用作助手 - 规划VoT的实时使用,大型行动模型的示例。
使用最少的视觉。了解用户在做什么以及用户想要实现什么,助手计划执行它。
https://github.com/a-real-ai/pywinassistant/assets/18397328/d04f0609-68fb-4fb4-9ac3-279047c7a4f7
助手可以为你做任何事 - 规划VoT的实时使用,大型行动模型的示例。
推理是速度的唯一限制。
https://github.com/a-real-ai/pywinassistant/assets/18397328/6d3bb6e6-ccf8-4380-bc89-df512ae207f2
其他使用规划VoT实时使用的演示。
2023年11月16日现场演示:(Firefox、Spotify、记事本、计算器、邮件)
https://github.com/a-real-ai/pywinassistant/assets/18397328/ce574640-5f20-4b8e-84f9-341fa102c0e6
2023年12月1日现场演示:(Chrome、Spotify、Firefox)
https://github.com/a-real-ai/pywinassistant/assets/18397328/7e0583d1-1c19-40fa-a750-a77fff98a6da
目前支持所有通用win32api应用程序,包括: Chrome、Firefox、OperaGX、Discord、Telegram、Spotify...
主要特点
- 动态案例生成器:assistant()函数接受一个goal参数,这是一个自然语言命令,并智能地将其映射到一系列可执行的操作。这允许用户意图无缝转化为计算机上的有效操作。
- 单一操作执行: act()函数是一种简化的方法,用于执行单一、直接的操作,提高工具的效率和响应性。
- 高级上下文处理:该框架善于通过分析屏幕和应用程序来理解上下文,确保在执行操作时意识到必要的先决条件或步骤。
- 语义路由图:该框架有一个语义路由图数据库,用于成功执行生成的测试用例。这些语义映射可以由其他AI创建。
- 广泛的应用范围:从多媒体控制(如在Spotify和YouTube上播放歌曲或暂停播放)到复杂操作(如创建AI生成的文本、发送电子邮件或管理Telegram或Firefox等应用程序),该框架涵盖了广泛的任务。
- 可定制的AI身份:write_action()函数允许定制助手身份,实现个性化的交互和响应,以符合用户的偏好或任务的性质。
- 强大的错误处理和反馈:该框架设计用于优雅地处理意外情况,提供清晰的反馈并确保可靠性。(概述中)
- 情绪和性格项目:基于你的情绪和性格,不时生成或建议有用的场景。(概述中)
技术创新
- 自然语言处理(NLP):采用先进的NLP技术以自然、对话方式解析和理解用户命令。
- 任务自动化算法:利用复杂的算法将复杂任务分解为可执行步骤。
- 上下文感知执行:整合上下文感知,实现更细致和有效的任务执行。
- 跨应用功能:与各种应用程序和网络服务无缝对接,展示广泛的兼容性和集成能力。
- 使用案例。
- 自动化Windows环境中的重复任务。
- 为专业人士和普通用户简化工作流程。
- 通过启用语音或简单文本命令来控制复杂操作,提高不同需求用户的可访问性。
- 通过提供AI驱动的指导和任务执行来协助学习和探索。
结论
这个人工辅助用户界面测试框架是桌面自动化领域的开创性工具。它能以自然、直观的方式理解和执行广泛的命令,使其成为任何希望提高生产力并改善与Windows环境交互的人的宝贵资产。它不仅仅是一个工具;它是朝着AI无缝融入我们日常计算任务的未来迈出的一步,使技术更加accessible和用户友好。
安装
# 将你的Chat-GPT API密钥添加到项目中:
在/core/core_api.py中添加你的API密钥 -> 第3行:client = OpenAI(api_key='在此插入你的api密钥')
在/core/core_imaging.py中添加你的API密钥 -> 第12行:api_key = '在此插入你的api密钥'
# 安装依赖:
cd pywinassistant
pip install -r .\requirements.txt
# 执行助手:
cd .\core
python ./assistant.py
使用方法
运行"Assistant.py",说"Ok computer"通过语音命令启用助手,或点击它或启用聊天进行快速操作。在助手上方右键单击可查看助手的可用选项。
为了调试模式,执行"Driver.py"。在其中,你可以轻松调试并尝试与助手一起使用的"act"函数、"fast_act"和"assistant"函数的示例。 要运行JSON测试用例,修改"assistant"函数中的JSON路径。
工作案例(在cases.py中)
assistant(goal=f"在Spotify上播放歌曲\'One More Time - Daft Punk\'") # 100%工作
assistant(goal=f"在Firefox中打开一个新标签页,搜索歌曲\'Wall Of Eyes - The Smile\',从谷歌搜索结果中筛选视频然后播放") # 100%工作
assistant(goal=f"在Firefox中打开一个新标签页,搜索歌曲\'Windows XP Error beat\',从谷歌搜索结果中筛选视频然后通过点击文本播放。") # 100%工作
fast_act(goal=f"点击Like按钮") # 100%工作
assistant(goal=f"在Spotify上暂停音乐") # 100%工作
write_action(goal="评论为什么AI对当前播放的歌曲很棒", assistant_identity="你是一个专门研究音乐的高级音乐AI代理") # 100%工作
assistant(f"在记事本上创建一篇关于AI开始控制Windows计算机的长篇AI论文") # 100%工作
fast_act(goal="点击HueSync应用底部的按钮") # 100%工作
write_action(goal="Weird Fishes - Radiohead") # 100%工作
assistant(f"打开计算器并按4 x 4 - 4 * 4 + 1 =") # 100%工作
assistant(goal=f"在谷歌浏览器中打开3个新标签页,在每个标签页中搜索3种不同类型的有趣狗", keep_in_mind=" 筛选图片结果。") # 100%工作
assistant(goal=f"停止Firefox应用的播放") # 100%工作
assistant(f"在Telegram上向我的朋友Diana发送一个关于工程师的笑话步骤列表,同时将其制作成一篇文章") # 100%工作
assistant(f"在Telegram上向我的已保存消息发送制作巧克力蛋糕的步骤列表") # 100%工作
assistant(f"在Firefox上创建三个新标签页,在每个标签页中搜索3种不同类型的搞笑YouTube糟糕教程视频,生成搜索标题。") # 100%可行
assistant(f"写一篇关于一个人创造的可以自由使用电脑的AI的文章,就像你一样。在记事本中写。") # 100%可行
assistant(f"在Discord上向我的朋友Diana发送一个AI笑话,并说这是由AI生成的") # 100%可行
assistant(goal=f"在记事本中使用AI自动Windows为用户创建一个简短的问候文本") # 100%可行
assistant(goal=f"打开计算器并按4 x 4 =") # 100%可行
assistant(goal=f"在邮件应用中向'testmail@gmail.com'发送一封主题为'Hello'的邮件,并生成消息'生成一条关于AI如何作为用户帮助每个人的消息'",
keep_in_mind="按'Tab'键三次导航到主题区域。不要合并步骤。") # 需要更新应用语义图以使其100%可行。
assistant(goal=f"在Spotify上播放歌曲'The Smile - Wall Of Eyes'") # 100%可行
assistant(goal=f"在Spotify上播放歌曲'Panda Bear - Tropic of cancer'") # 100%可行
assistant(goal="暂停Spotify应用中的音乐") # 100%可行
assistant(goal=f"在Firefox上打开3个新标签页,每个标签页播放不同的Daft Punk歌曲") # 100%可行
fast_act("打开Spotify并搜索专辑'Grimes - Visions'") # 100%可行
write_action("打开Spotify并搜索专辑'Grimes - Visions'") # 100%可行
fast_act("点击Spotify上的第一个搜索结果") # 100%可行
fast_act("在Spotify上跳到下一首歌") # 100%可行
fast_act("将专辑添加到音乐库") # 100%可行
fast_act("在Spotify上回到主页") # 100%可行
fast_act("在Spotify上将歌曲保存到我的音乐库") # 100%可行
UI测试的当前方法
有三种主要类型的GUI测试方法,即:
- 手动测试:
在手动测试中,人工测试人员执行一系列操作,检查应用程序是否正常运行,以及图形元素是否符合记录的要求。基于手动的测试有明显的缺点,它可能耗时较长,测试覆盖率极低。此外,这种方法的测试质量取决于测试团队的知识和能力。
- 录制回放测试:
也称为录制重放测试,使用自动化工具执行。自动化UI测试工具记录所有任务、操作和与应用程序的交互。然后重现、执行记录的步骤,并与预期行为进行比较。为了进一步测试,可以使用各种数据集重复回放阶段。
- 基于模型的测试:
在这种测试方法中,我们专注于构建描述系统行为的图形模型。这提供了对系统更深入的理解,使测试人员能够生成高效的测试用例。在模型中,我们确定系统的输入和输出,然后用于运行测试。基于模型的测试工作流程如下:
创建系统模型
确定系统输入
验证预期输出
执行测试
检查和验证系统输出与预期输出
基于模型的方法很好,因为它允许更高程度的自动化。它还覆盖了系统中更多的状态,从而提高了测试覆盖率。
使用AI进行UI测试的新方法
- 人工辅助用户界面测试:
人工辅助用户界面测试利用人工智能的力量彻底改变了测试图形用户界面的过程。与传统方法不同,人工辅助用户界面测试集成了机器学习算法和智能决策过程,以自主识别、分析和与UI元素交互。这种方法在几个方面显著增强了测试的深度和广度:
与UI元素的动态交互:AI驱动的测试可以适应UI的变化,如修改的按钮位置或更改的元素属性。这种灵活性是通过使用经过训练的AI模型来识别和与各种UI组件交互实现的,不受表面变化的影响。
学习和模式识别:利用机器学习,人工辅助用户界面测试系统可以从先前的交互、测试运行和用户反馈中学习。这使AI能够识别模式并预测潜在问题,随着时间的推移不断改进,每次迭代都能提供更全面的测试。
自动生成测试用例:AI可以根据对应用程序功能和用户行为模式的理解生成测试用例。这不仅节省了时间,还确保了测试更广泛的场景,包括可能在手动测试中被忽视的边缘情况。
自然语言处理(NLP):AI测试工具通常包含NLP,以解释和执行用普通语言编写的测试。这一特性使测试过程对非技术利益相关者更加accessible,并促进了团队间更好的沟通。
实时反馈和分析:AI系统提供测试过程的实时洞察,及时识别错误、性能问题和可用性问题。这种即时反馈循环使得更快的修正成为可能,并提高了产品的整体质量。
预测分析和风险评估:通过分析过去的数据,人工辅助用户界面测试工具可以预测潜在的问题区域,并更有效地分配测试资源。这种主动的风险管理方法确保在开发生命周期的早期识别和解决关键问题。
总之,人工辅助用户界面测试代表了软件质量保证的重大进步。通过自动化和增强测试过程,AI驱动的工具提供了更高的准确性、速度和覆盖率,为更可靠和用户友好的应用程序铺平了道路。
注意:
该项目正在2024年初更新。需求列表正在更新中。