当前位置: 首页 > news >正文

UFO:革新Windows操作系统交互的UI聚焦代理

人工智能咨询培训老师叶梓 转载标明出处

人机交互的便捷性和效率直接影响着我们的工作和生活质量。尽管现代操作系统如Windows提供了丰富的图形用户界面(GUI),使得用户能够通过视觉和简单的点击操作来控制计算机,但随着应用程序功能的日益复杂化,用户在执行跨应用任务时仍面临着挑战。从繁琐的数据输入到复杂的多步骤流程,用户经常需要在不同的应用程序之间切换,这不仅耗时耗力,也容易出错。

尤其当用户需要根据自然语言请求来执行任务时,现有的技术往往无法直接理解并转化为具体的操作。例如,将电子邮件草拟、会议笔记整理、图像编辑等任务自动化,需要一个能够理解自然语言并跨应用程序操作的智能代理。随着大型语言模型(LLMs)和人工智能技术的发展,人们越来越期待能够实现更加智能化、自动化的交互体验。

微软公司的研究团队提出的UFO(User Interface-Focused Agent)正是为了解决这一问题而设计的。UFO是一个创新的UI聚焦代理,专门为Windows操作系统环境量身打造。它利用了最新的GPT-Vision技术,通过自然语言处理和图形用户界面分析,能够理解并执行复杂的用户请求。UFO的设计不仅提高了任务执行的效率,还通过自动化减少了人为错误,使用户能够更加专注于创造性和战略性的工作。

UFO的概念图
它通过从 Word 文档中提取信息、观察照片中的图形以及从 PowerPoint 演示文稿中总结内容来完成用户请求,然后利用这些信息自动撰写并发送电子邮件

UFO介绍

UFO采用双代理架构,其设计初衷是作为一个中间层,理解用户的自然语言请求,并将其转化为对Windows操作系统上应用程序的具体操作。

UFO架构图

Figure 2中UFO的架构以双代理框架为核心,包括一个HostAgent和一个AppAgent。HostAgent的职责是分析用户请求,并从当前活跃的应用程序中选择一个最合适的应用程序来执行任务。如果一个请求需要跨越多个应用程序,HostAgent也能够在完成前一个应用程序中的任务后,切换到不同的应用程序。

HostAgent在接收到用户请求时,会进行需求分析。它利用完整的桌面截图和可用应用程序列表来辅助决策过程。这些信息帮助HostAgent理解当前桌面环境和应用程序的状态,从而选择最合适的应用程序来响应用户的需求。选定应用程序后,HostAgent会制定一个全面的全局计划,这个计划随后会传递给AppAgent。

AppAgent负责在选定的应用程序上迭代执行动作,直至任务在特定应用程序内成功完成。在每次动作选择之前,UFO会捕获当前应用程序用户界面窗口的屏幕截图,并标注所有可用的控件。UFO还会记录每个控件的信息,供AppAgent观察和决策。AppAgent的任务是选择一个控件进行操作,并通过控制交互模块执行特定动作。这个决策过程基于AppAgent的观察、先前计划和操作记忆。

执行动作后,UFO会构建未来步骤的本地计划,并继续进行下一步动作选择。这个过程会递归地继续,直到用户请求在选定的应用程序中成功完成。如果用户请求涉及多个应用程序,AppAgent将在完成当前应用程序的任务后,将任务委托回HostAgent,以便切换到不同的应用程序,从而启动请求的第二阶段。这个迭代过程会持续,直到用户请求的所有方面都完全完成。

用户还可以交互式地引入新请求,促使UFO通过重复上述过程来处理新请求。一旦所有用户请求都成功完成,UFO就会结束其操作。在随后的小节中,论文深入探讨了UFO框架内每个组件的复杂细节,包括HostAgent和AppAgent的具体工作机制和它们如何协同工作来满足用户的需求。

在UFO代理的设计中,HostAgent扮演着至关重要的角色,它负责选择一个活跃的应用程序来执行用户请求,必要时还能切换到新的应用程序。HostAgent通过分析用户提交的原始查询、当前桌面的屏幕截图、可用应用程序的详细信息以及包含先前操作和执行结果的记忆模块,来构建一个全面的全局计划。这些信息的综合为HostAgent提供了决策的数据支持。

HostAgent利用GPT-V生成包括观察、思考、选定应用程序、状态、全局计划和评论在内的输出。观察是对当前桌面窗口屏幕截图的详细描述,而思考则是基于逻辑的下一步行动。选定的应用程序是完成任务所选择的标签和名称。状态可以是“继续”或“完成”,而全局计划则是一个宏观的行动方案。评论可能包括进度摘要和需要突出的重点。

HostAgent在决策过程中不仅增强了UFO的逻辑一致性,还提高了其整体可解释性。它能够根据任务的完成情况决定状态,并在必要时向用户报告进度或提出问题。一旦确定了应用程序,HostAgent就会指导AppAgent在该应用程序内执行具体动作,以满足用户请求。这种设计使得UFO能够智能地处理复杂的任务,提高用户与计算机系统的交互效率。

HostAgent 的示例

AppAgent为在HostAgent之后的下游实体,它的任务是在选定的应用程序上执行特定动作以满足用户请求。AppAgent的输入和输出与HostAgent相比有所不同。AppAgent的输入包括:

  • 用户请求:与HostAgent接收的原始用户查询相同。
  • 屏幕截图:包括三部分:(i) 上一次的屏幕截图;(ii) 未标注的干净截图;以及 (iii) 标注了控件的屏幕截图。
  • 控件信息:列出了选定应用程序中启用操作的控件名称和类型。
  • 内存:包含先前的想法、评论、动作和执行结果,与HostAgent相同。
  • 示例:作为动作选择的文本示例,作为任务演示。

AppAgent使用这三种类型的屏幕截图来辅助决策过程。上一次的屏幕截图中,最后一个选择的控件会以红色矩形突出显示,这有助于理解上一步的操作执行和行动的影响。干净的屏幕截图允许在没有标注阻碍的情况下理解应用程序的状态,而标注的屏幕截图通过使用标记集合(Set-of-Mark, SoM)对每个控件进行编号(例如36),便于更好地理解UI元素的功能和位置。不同类型的控件用不同的颜色进行区分。

输入到AppAgent的内存有两个关键目的。首先,它作为代理的提醒,使AppAgent能够分析过去的行动,并减少重复无效行动的可能性。其次,它建立了跨应用程序通信的重要渠道。执行结果,如从文档中提取的文本或图像描述,存储在内存模块中。AppAgent可以有选择地结合这些信息进行需要的行动,例如使用来自不同来源的文本撰写电子邮件。这种增强显著扩展了UFO的能力。

综合这些信息后,AppAgent会细致分析并输出以下内容:

观察:对当前应用程序窗口屏幕截图的详细描述,以及对上一个行动是否生效的分析。

思考:当前行动决策背后的逻辑思考和理由。

选定控件:被选择操作的控件标签和名称。

功能:应用于控件的具体功能及其参数。

状态:任务状态,可能需要“继续”进一步的行动、“完成”任务、“待定”需要用户确认、“屏幕截图”代理认为需要进一步的屏幕截图来标注更小的控件集,或“应用选择”当前应用程序上的任务已完成,需要切换到不同的应用程序。

本地计划:一个更精确和细粒度的计划,用于完全满足用户请求。

评论:包括简要进度摘要、突出点或计划变更的额外评论或信息,类似于HostAgent所提供的。

尽管AppAgent的一些输出字段可能与HostAgent有相似之处,但UFO会根据任务的状态输出来确定下一步。如果任务未完成,它会将功能应用于选定的控件,触发应用程序的下一个状态执行。AppAgent会反复这个过程,观察并响应选定的应用程序,直到用户请求完全完成或需要切换到不同的应用程序。

AppAgent 的示例

UFO的控制交互模块是其核心功能之一,它负责将ActAgent选定的操作转化为应用程序中的实际控制动作。这一模块利用了Python的pywinauto库,该库提供了丰富的工具来检查用户界面控件并执行操作。通过Windows UI Automation API,UFO能够与应用程序的用户界面进行深入交互,从而实现自动化测试、脚本编写和重复任务的自动化。UFO特别关注10种受限控件类型,如按钮、编辑框、标签项、文档、列表项、菜单项、树项、组合框、超链接和滚动条。这些控件类型覆盖了大多数应用程序中常见的交互元素。

为了执行这些控件的操作,UFO不仅使用了pywinauto支持的常见鼠标操作,如点击、设置文本、获取文本和滚动,还开发了自定义操作,例如注释和总结。注释功能允许UFO重新注释GUI,以更简洁的方式突出显示控件,而总结功能则使UFO能够基于清晰的屏幕截图总结其视觉观察结果。这些功能的结合使得UFO能够根据ActAgent的决策,智能地与应用程序的用户界面进行交互。

使用 pywinauto 工具在 PowerPoint GUI 上进行控件注释的示例图。不同的颜色代表不同类型的控件
UFO 支持的控件类型的详细描述
这些控件类型包括按钮、编辑框、标签项、文档、列表项、菜单项、树项、组合框、超链接和滚动条

UFO还有一些特别的设计,旨在提升其在Windows操作系统中的交互效率和用户体验。这些设计考虑包括交互模式、动作定制、控件过滤、计划反思和安全保护机制。

交互模式允许UFO与用户进行更自然的交流。与传统的一次性任务完成不同,UFO支持迭代和交互式的任务处理。这意味着在完成一个任务后,用户可以请求UFO对之前的任务进行改进,提出新的任务,或者在UFO可能不太擅长的领域提供帮助,比如输入密码。这种灵活性不仅使UFO区别于市场上其他UI代理,还使其能够吸收用户反馈,完成更复杂和长期的任务。

动作定制是UFO的另一个关键特性。虽然UFO已经能够执行一系列预定义的操作,但其设计允许用户根据特定需求注册和定制新操作。用户可以指定操作的目的、参数、返回值,并提供示例,这些信息将被纳入UFO的执行提示中。一旦注册完成,这些定制操作就可以被UFO执行,极大地扩展了其功能和应用范围。

控件过滤机制是UFO为了优化用户界面控件的选择过程而设计的一种智能过滤方法。在应用程序的GUI中,可能会检测到数百个控件,但并非所有控件都对完成特定任务有用。UFO通过硬过滤和软过滤两级方法来减少干扰,确保只有最相关的控件被选中。这种过滤机制不仅提高了UFO的决策效率,还避免了在用户界面上产生过多的视觉混乱。

计划反思机制使UFO能够根据应用程序UI的实际状态动态调整其计划。例如,如果UFO计划点击一个按钮,但该按钮在当前UI中不可见,UFO将需要先导航到主页面,然后再找到并点击该按钮。这种自适应方法增强了UFO对环境变化的响应能力,提高了其在不同应用UI中导航和交互的性能。

安全保护机制是UFO设计中的一个重要方面。UFO能够智能评估每个操作的敏感性,并在执行可能影响系统配置或用户隐私的操作之前请求用户确认。这种机制不仅提高了UFO的安全性,还增强了用户对UFO操作的信任度。

UFO 考虑的敏感动作的不完整列表。这些动作包括发送消息或电子邮件、删除或修改文件和文件夹、关闭窗口或应用程序、访问摄像头或麦克风、安装或卸载软件、浏览器历史记录或密码检索

通过这些特别设计考虑,UFO不仅能够更有效地与Windows操作系统中的应用程序交互,还能够提供更安全、更可定制的用户体验。

实验

究者们精心构建了WindowsBench基准测试平台,用以全面评估UFO代理在Windows操作系统中处理用户请求的性能。该基准测试集成了50项任务,覆盖了9种用户常用的应用程序,如邮件客户端、图片浏览器、演示软件等,这些任务设计得非常贴近用户的日常使用模式。为了评估UFO的性能,研究者们不仅设置了GPT-3.5和GPT-4作为对比基线,还定义了包括成功率、步骤完成率和安全保护率在内的多个评估指标。

在 WindowsBench 上对 UFO 进行的性能比较
WindowsBench 上 UFO 实现的应用程序性能分解

在性能评估方面,UFO的表现远远超出了基线模型。其在成功率上的优势表明,UFO在执行用户请求方面更为可靠。UFO的高步骤完成率也反映了其在执行任务时的高效率,即UFO能够在更少的步骤内完成更多的正确操作。UFO在安全保护率上的优异表现,证明了其在处理敏感操作时能够谨慎地请求用户确认,从而确保了操作的安全性和用户数据的保护。

研究者们通过具体的案例展示了UFO代理在实际应用中的表现和能力。这些案例研究不仅验证了UFO在单一应用程序中的操作能力,还展示了它在处理跨应用程序任务时的灵活性和效率。他们首先提出了一个涉及PowerPoint演示文稿的任务,要求UFO帮助用户快速删除幻灯片中的所有备注。通常,这项工作需要用户逐页手动删除备注,非常耗时。然而,UFO通过分析并利用PowerPoint的“移除所有演示文稿备注”功能,以一种更高效的方式简化了整个过程。UFO首先导航至“文件”选项卡,进入后台视图,然后依次点击“信息”、“检查问题”、“检查文档”,最终找到并点击“移除所有演示文稿备注”按钮。在执行这一敏感操作前,UFO还会启动安全保护机制,请求用户确认,确保操作的安全性。

UFO 如何高效地完成用户请求的详细示例,特别是涉及 PowerPoint 的任务

研究者们还设计了一个更复杂的案例,要求UFO从Word文档中读取会议记录,识别所有行动项,并结合一张图片文件中的LLM(大型语言模型)培训工作流程的详细描述,撰写一封电子邮件,并发送给我们的领导者Hidan以征求他的审查意见。这个任务考验了UFO在不同应用程序间导航和交互的能力。UFO首先在Word中打开会议记录文档,提取行动项,然后转到图片查看器中观察并生成LLM培训工作流程的描述。随后,UFO在Outlook中创建了一封新邮件,自动填写了收件人、主题,并撰写了邮件正文,包括所有必要的信息。在发送邮件之前,UFO同样会触发安全保护机制,确保用户对这一敏感操作有所了解并同意执行。

UFO 如何完成涉及多个应用程序的复杂请求的详细示例
UFO 被要求读取会议记录,识别所有行动项目,并结合 LLM 培训工作流程的详细描述来撰写一封电子邮件,并发送给我们的领导 Hidan 以请求他的审查

UFO作为首个专为Windows操作系统环境设计的UI代理,通过其创新的双代理框架和控制交互模块,不仅提高了用户与计算机交互的效率,而且为未来的人机交互提供了新的可能性。尽管UFO展现出卓越的性能,但也有其局限性,包括对pywinauto和Windows UI Automation支持的依赖,以及在面对不熟悉的应用程序UI时可能遇到的挑战。未来的工作将探索支持替代后端和集成专用GUI模型,以扩展UFO的功能。

论文链接:https://arxiv.org/abs/2402.07939

相关文章:

UFO:革新Windows操作系统交互的UI聚焦代理

人工智能咨询培训老师叶梓 转载标明出处 人机交互的便捷性和效率直接影响着我们的工作和生活质量。尽管现代操作系统如Windows提供了丰富的图形用户界面(GUI),使得用户能够通过视觉和简单的点击操作来控制计算机,但随着应用程序功…...

scp免密复制文件

实现在服务器A和服务器B之间使用scp命令免密互相传输文件 1. 在服务器A中免密复制到服务器B 1.1 生成服务器A的公钥私钥 #在服务器A中执行 ssh-keygen -t rsa -P ""命令执行完毕会在服务器A的 ~/.ssh 目录下生成两个文件:id_rsa 和 id_rsa.pub 1.2 拷…...

Maven 的模块化开发示例

Maven 的模块化开发是一种非常有效的软件开发方式,它允许你将一个大型的项目分割成多个更小、更易于管理的模块(modules)。每个模块都可以独立地构建、测试和运行,这不仅提高了开发效率,也便于团队协作和项目的维护。以…...

通过QT进行服务器和客户端之间的网络通信

客户端 client.pro #------------------------------------------------- # # Project created by QtCreator 2024-07-02T14:11:20 # #-------------------------------------------------QT core gui network #网络通信greaterThan(QT_MAJOR_VERSION, 4): QT widg…...

【STM32 HAL库】DMA+串口

DMA 直接存储器访问 DMA传输,将数据从一个地址空间复制到另一个地址空间。-----“数据搬运工”。 DMA传输无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场,它是通过硬件为RAM和IO设备开辟一条直接传输数据的通道&#xff0c…...

C#类型基础Part2-对象判等

C#类型基础Part2-对象判等 参考资料引用类型判等简单值类型判等复杂值类型判等 参考资料 《.NET之美-.NET关键技术深入解析》 引用类型判等 先定义两个类型,它们代表直线上的一个点,一个是引用类型class,一个是值类型struct public class…...

13.CSS 打印样式表 悬停下划线动画

CSS 打印样式表 虽然我们不经常从网上实际打印内容,但打印样式表不应被忽视。它们可以用来确保你的网站内容以一种易读和适合打印的方式呈现。这里有一个简单的、独特的打印样式表,你可以用它作为自己的基础: media print {page {size: A4;}body {margin: 0;padding: 0;}body, …...

C#基础:数据库分表的好处和实现方式

一、分表的好处: 1.提升查询速度:分表筛选后再拼接,而不是查大表,速度会显著提升 2.管理容易:根据业务需求,通常会按照时间或者空间来分表 3.提高并发性:降低锁竞争和查询阻塞的风险&#xf…...

基于3D开发引擎HOOPS平台的大型三维PLM系统的设计、开发与应用

产品生命周期管理(Product Lifecycle Management,PLM)系统在现代制造业中扮演着至关重要的角色。随着工业4.0和智能制造的推进,PLM系统从最初的CAD和PDM系统发展到现在的全面集成、协作和智能化的平台。本文将探讨基于HOOPS平台的…...

学习React(描述 UI)

React 是一个用于构建用户界面(UI)的 JavaScript 库,用户界面由按钮、文本和图像等小单元内容构建而成。React 帮助你把它们组合成可重用、可嵌套的 组件。从 web 端网站到移动端应用,屏幕上的所有内容都可以被分解成组件。在本章…...

mysql字符类型字段设置默认值为当前时间

-- 2024-07-22 10:22:20 select (DATE_FORMAT(CURRENT_TIMESTAMP, %Y-%m-%d %H:%i:%s)); ALTER TABLE tablename MODIFY COLUNN CREATE_DATE varchar (23) DEFAULT(DATE_FORMAT(CURRENT_TIMESTAMP, %Y-%m-%d %H:%i:%s)) COMMENT "创建日期;...

java题目之数字加密以及如何解密

public class Main6 {public static void main(String[] args) {// 某系统的数字密码&#xff08;大于0&#xff09;&#xff0c;比如1983&#xff0c;采用加密方式进行传输//定义了一个静态数组int []arr{1,9,8,3};//1.加密//先给每位数加上5for (int i 0; i <arr.length …...

Linux基于CentOS7【yum】【vim】的基础学习,【普通用户提权】

目录 yum生态 什么是yum yum是如何得知目标服务器的地址和下载链接 vim vim模式 命名模式 光标移动 插入模式 i键插 a键插 o键插 底行模式 批量化注释 批量化去注释 创建vim配置文件 例子 高亮功能&#xff1a; 缩进功能&#xff1a; 符号位自动补齐功能…...

盛元广通实验室自动化生物样本库质量控制管理系统

随着我国生物医学研究的不断深入和精准医疗的快速发展&#xff0c;对高质量生物样本的需求日益增长。近年来&#xff0c;我国生物样本库建设取得了显著进展。各级政府、高校和医院纷纷投入资源建设生物样本库&#xff0c;推动了生物样本资源的有效整合和利用。生物样本库的质量…...

Java | 自制AWT单词猜一猜小游戏(测试版)

目录 游戏标题 开发过程 开发想法 技术栈 代码呈现 导包 核心代码 游戏标题 探索知识的迷宫&#xff0c;体验自制AWT单词猜一猜小游戏 在数字时代&#xff0c;学习可以是多彩的&#xff0c;游戏可以是智慧的。我们自豪地推出“单词猜猜猜”是一款结合了教育与娱乐的自制…...

docker搭建ES 8.14 集群

参考&#xff1a;【docker搭建es8集群kibana】_docker 安装生产级 es 8.14 集群-CSDN博客 1、之前已搭建一台单机版的dockerES集群 参见 Elasticsearch docker 安装_docker 安装es8.14.3-CSDN博客 2、现在需要重新搭建为docker ES集群 准备新搭建3个点 一、准备工作 提前开…...

自定义特征的智能演进:Mojo模型中的动态特征选择控制

自定义特征的智能演进&#xff1a;Mojo模型中的动态特征选择控制 在机器学习领域&#xff0c;特征选择是提升模型性能和泛化能力的关键步骤。Mojo模型&#xff0c;作为一种高效的模型部署方式&#xff0c;其对特征的动态选择和控制能力是实现高级机器学习应用的重要特性。本文…...

Git->Git生成patch和使用patch

生成patch git format-patch -1 HEAD -o "输出目录"format-patch&#xff1a;用于生成补丁文件-1&#xff1a;-1 表示最近一次提交&#xff0c;-2 表示生成最近两次提交的补丁。HEAD&#xff1a;HEAD 指向当前分支的最新提交-o&#xff1a;指定生成的补丁文件的输出…...

开发面试算法题求教

在《无尽的拉格朗日》中&#xff0c;有许多不同的星系建筑物。每个星系建筑物的等级不同&#xff0c;带来的影响力也不同。 已知宇宙可以抽象为一个无穷大的平面直角坐标系&#xff0c;现在给定了每个星系建筑物的所在坐标(xi,yi)和它的影响力ri&#xff0c;距离其切比雪夫距离…...

OpenStack中nova的架构

1.1 nova-api 负责接收和相应客户的API调用。 1.2 compute core nova-schedule 负责决定在哪个计算节点运行虚拟机。 nova-compute 通过调用Hypervisor实现虚拟机生命周期的管理。一般运行在计算节点。 hypervisor 对虚拟机进行硬件虚拟化的管理软件&#xff…...

力扣高频SQL 50题(基础版)第五题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第五题1683. 无效的推文题目说明&#xff1a;思路分析&#xff1a;实现过程&#xff1a;结果截图&#xff1a; 力扣高频SQL 50题&#xff08;基础版&#xff09;第五题 1683. 无效的推文 题目说明&#xff1a; 表&a…...

Air780EP- AT开发-阿里云应用指南

简介 使用AT方式连接阿里云分为一机一密和一型一密两种方式&#xff0c;其中一机一密又包括HTTP认证二次连接和MQTT直连两种方式 关联文档和使用工具&#xff1a; AT固件获取在线加/解密工具阿里云平台 准备工作 Air780EP_全IO开发板一套&#xff0c;包括天线SIM卡&#xff0…...

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.4数据架构

前言&#xff1a;系统集成项目管理工程师专业&#xff0c;现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试&#xff0c;全称为“全国计算机与软件专业技术资格&#xff08;水平&#xff09;考试”&…...

excel批量新建多个同类型的表格

背景引入 比如&#xff0c;一个企业有多个部门&#xff0c;现在需要按照某一个excel表模板收集各个部门的信息&#xff0c;需要创建数十个同类型表格&#xff0c;且标题要包含部门名称。 1.修改模板表格标题 在一个文件夹下面放入需要发放给各个部门的表格&#xff0c;将标题…...

React Native 与 Flutter:你的应用该如何选择?

Flutter 和 React Native 都被认为是混合应用程序开发中的热门技术。然而&#xff0c;当谈到为你的项目使用框架时&#xff0c;你必须考虑哪一个是最好的&#xff1a;Flutter 还是 React Native&#xff1f; 本篇文章包含 Flutter 和 React Native 在各个方面的差异。因此&…...

DP学习——状态模式

学而时习之&#xff0c;温故而知新。 状态模式 角色 2个角色&#xff0c;引用类&#xff0c;状态行为类。 和策略模式很相似 状态行为封装成很多独立的状态行为类——就是把不同的状态及其要执行的方法单独封装起来。 而策略模式类似&#xff0c;是不同的算法封装成一个个…...

前端性能优化面试题汇总

面试题 1. 简述如何对网站的文件和资源进行优化? 参考回答&#xff1a; 举列&#xff1a; 1.文件合并&#xff08;目的是减少http请求&#xff09;&#xff1a;使用css sprites合并图片&#xff0c;一个网站经常使用小图标和小图片进行美化&#xff0c;但是很遗憾这些小图片…...

C#基于SkiaSharp实现印章管理(4)

前几篇文章实现了绘制不同外形印章的功能&#xff0c;印章内部一般包含圆形、线条等形状&#xff0c;有些印章内部还有五角星&#xff0c;然后就是各种样式的文字。本文实现在印章内部绘制圆形、线条、矩形、椭圆等四种形状。   定义FigureType枚举记录印章内部形状&#xff…...

Vue全家桶 - pinia 的理解和学习2(Pinia 核心概念的插件、组件外的 Store 和 服务器渲染(SSR))

Pinia&#xff08;Vue 的专属状态管理库&#xff09; Vue全家桶 - pinia 的理解和学习1&#xff08;Pinia 核心概念的 Store、State、Getter、Action&#xff09; https://blog.csdn.net/weixin_54092687/article/details/140520675 插件 由于有了底层 API 的支持&#xff0c…...

数学建模(6)——预测类模型目录

预测模型是一类通过分析和建模历史数据来预测未来结果的算法或模型。这些模型广泛应用于各种领域&#xff0c;包括金融、医疗、市场营销、气象、制造业等。以下是一些常见的预测模型&#xff1a; 1. 回归模型 线性回归&#xff08;Linear Regression&#xff09;&#xff1a;…...

安卓刷入系统证书

设备&#xff1a;Pixel XL 证书&#xff1a;reqable-ca.crt 刷入前需要手机已刷入Magisk 使用USB充电线连接手机&#xff0c;打开Windows终端面板手机打开Magisk&#xff0c;开启Shell的Root权限Windows终端输入su获取root权限查看SELinux状态并修改为Permissive修改system分…...

中科亿海微信号采集核心板在振动采集场景中的应用

在工业现场控制领域&#xff0c;对于旋转物体的速度我们通用的做法是测量旋转所产生的振动量来倒推设备的转速值。振动采集系统是一种广泛用于检测和记录系统振动的设备&#xff0c;整体包括传感器和数据采集两部分。传感器类型包括加速度传感器、速度传感器和位移传感器&#…...

`panic` 是 Go 语言中用来表示发生了严重错误的一种机制

目录 panic 是 Go 语言中用来表示发生了严重错误的一种机制案例goroutine空指针是什么栈展开是什么defer 语句会按照 LIFO&#xff08;后进先出&#xff09;的顺序执行 panic 是 Go 语言中用来表示发生了严重错误的一种机制 在 Go 程序中&#xff0c;panic 是一种运行时错误&a…...

【BUG】已解决:requests.exceptions.ProxyError: HTTPSConnectionPool

已解决&#xff1a;requests.exceptions.ProxyError: HTTPSConnectionPool 目录 已解决&#xff1a;requests.exceptions.ProxyError: HTTPSConnectionPool 【常见模块错误】 原因分析 解决方案 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&am…...

Python实现招聘数据采集 ,并做可视化分析

转眼秋招快到了&#xff0c; 今天来学习一下如何用Python采集全网招聘数据&#xff0c;并进行可视化分析&#xff0c;为就业准备~ 话不多说开始造 源码和详细的视频讲解我都打包好了&#xff0c;文末名片自取 准备工作 首先你需要准备这些 环境 Python 3.10 Pycharm 模块…...

ES中的数据类型学习之Aggregate metric(聚合计算)

Aggregate metric field type | Elasticsearch Guide [7.17] | Elastic 对于object类型的字段来说&#xff0c;可以存子字段为 min/max/sum/value_count PUT my-index {"mappings": {"properties": {"my-agg-metric-field": { -- 字段名"ty…...

看准JS逆向案例:webpack逆向解析

&#x1f50d; 逆向思路与步骤 抓包分析与参数定位 首先&#xff0c;我们通过抓包工具对看准网的请求进行分析。 发现请求中包含加密的参数b和kiv。 为了分析这些加密参数&#xff0c;我们需要进一步定位JS加密代码的位置。 扣取JS加密代码 定位到JS代码中的加密实现后&a…...

【C语言】 利用栈完成十进制转二进制(分文件编译,堆区申请空间malloc)

利用栈先进后出的特性&#xff0c;在函数内部&#xff0c;进行除二取余的操作&#xff0c;把每次的余数存入栈内&#xff0c;最后输出刚好就是逆序输出&#xff0c;为二进制数 学习过程中&#xff0c;对存储栈进行堆区的内存申请时候&#xff0c;并不是很熟练&#xff0c;一开始…...

如何解决ChromeDriver 126找不到chromedriver.exe问题

引言 在使用Selenium和ChromeDriver进行网页自动化时&#xff0c;ChromeDriver与Chrome浏览器版本不匹配的问题时有发生。最近&#xff0c;许多开发者在使用ChromeDriver 126时遇到了无法找到chromedriver.exe文件的错误。本文将介绍该问题的原因&#xff0c;并提供详细的解决…...

Anaconda下安装配置Jupyter

Anaconda下安装配置Jupyter 1、安装 conda activate my_env #激活虚拟环境 pip install jupyter #安装 jupyter notebook --generate-config #生成配置文件提示配置文件的位置&#xff1a; Writing default config to: /root/.jupyter/jupyter_notebook_config.py检查版本&am…...

蓝队黑名单IP解封提取脚本

应用场景&#xff1a;公司给蓝队人员一个解封IP列表&#xff0c;假如某个IP满足属于某某C段&#xff0c;则对该IP进行解封。该脚本则是进行批量筛选出符合条件的白名单IP 实操如下&#xff1a;公司给了一个已经封禁了的黑名单IP列表如下&#xff08;black&#xff09; 公司要求…...

共享充电桩语音ic方案,展现它的“说话”的能力

随着电动汽车的普及&#xff0c;充电设施的便捷性、智能化需求日益凸显&#xff0c;共享充电桩语音IC应运而生&#xff0c;成为连接人与机器、实现智能交互的桥梁。本文将为大家介绍共享充电桩语音ic的概述、应用词条以及优势&#xff0c;希望能够帮助您。 一、NV170D语音ic概述…...

ARM 单片机裸机任务调度框架

前言&#xff1a; 在没有使用操作系统的情况下&#xff0c;一个合理的裸机任务调度方式&#xff0c;可以更好的提供数据的处理&#xff0c;和用户体验&#xff0c;有多种任务调度的方式。 方案 1&#xff1a; 从上到下的任务调度方式&#xff0c;C语言程序的代码是在main函数…...

.Net 8 控制台程序部署(Linux篇)

在无流量Linux环境下部署.NET8开发的控制台程序 写在前面准备远程访问安装环境程序部署1.下载并导入2.解压并配置3.发布程序4.创建Systemd服务单元文件5.启用并启动服务 写在结尾 写在前面 好久没更新文章了&#xff0c;今天给大家带来的是在在无流量的Linux工控机上部署.Net8…...

LeetCode:x的平方根(C语言)

1、问题概述&#xff1a;给你一个非负整数 x&#xff0c;计算并返回 x 的 算术平方根 &#xff0c;返回类型得是一个整数&#xff0c;小数舍弃 2、示例 示例 1&#xff1a; 输入&#xff1a;x 4 输出&#xff1a;2 示例 2&#xff1a; 输入&#xff1a;x 8 输出&#xff1a;…...

深入浅出WebRTC—DelayBasedBwe

WebRTC 中的带宽估计是其拥塞控制机制的核心组成部分&#xff0c;基于延迟的带宽估计是其中的一种策略&#xff0c;它主要基于延迟变化推断出可用的网络带宽。 1. 总体架构 1.1. 静态结构 1&#xff09;DelayBasedBwe 受 GoogCcNetworkController 控制&#xff0c;接收其输入…...

JAVA开发工具IDEA如何连接操作数据库

一、下载驱动 下载地址&#xff1a;【免费】mysql-connector-j-8.2.0.jar资源-CSDN文库 二、导入驱动 鼠标右击下载到IDEA中的jar包&#xff0c;选择Add as Library选项 如图就导入成功 三、加载驱动 Class.forName("com.mysql.cj.jdbc.Driver"); 四、驱动管理…...

简化AI模型:PyTorch量化技术在边缘计算中的应用

引言 在资源受限的设备上部署深度学习模型时&#xff0c;模型量化技术可以显著提高模型的部署效率。通过将模型的权重和激活从32位浮点数转换为更低位数的值&#xff0c;量化可以减少模型的大小&#xff0c;加快推理速度&#xff0c;同时降低能耗。 模型量化概述 定义与优势…...

拥抱AI时代:解锁Prompt技术的无限潜力与深远影响

拥抱AI时代&#xff1a;解锁Prompt技术的无限潜力与深远影响 引言 在人工智能的浩瀚星空中&#xff0c;自然语言处理&#xff08;NLP&#xff09;无疑是最耀眼的星辰之一。随着技术的不断演进&#xff0c;NLP已经从最初的简单问答系统发展成为能够生成复杂文本、理解人类情感与…...

第123天:内网安全-域防火墙入站出站规则不出网隧道上线组策略对象同步

目录 案例一&#xff1a; 单机-防火墙-限制端口\协议出入站 案例二&#xff1a;不出网的解决思路 入站连接 隧道技术 案例三&#xff1a;域控-防火墙-组策略对象同步 案例四&#xff1a;域控-防火墙-组策略不出网上线 msf cs 案例一&#xff1a; 单机-防火墙-限制端口\…...