人工智能核心知识:AI Agent 的四种关键设计模式
人工智能核心知识:AI Agent 的四种关键设计模式
一、引言
在人工智能领域,AI Agent(人工智能代理)是实现智能行为和决策的核心实体。它能够感知环境、做出决策并采取行动以完成特定任务。为了设计高效、灵活且适应性强的 AI Agent,研究者们提出了多种设计模式。其中,以下四种设计模式是 AI Agent 设计中最关键和最常用的,它们分别从不同角度为 AI Agent 的构建提供了理论基础和实践指导。
二、基于简单反射的设计模式
(一)定义
基于简单反射的设计模式是一种最基本的 AI Agent 设计方式。在这种模式下,Agent 根据当前感知到的环境状态直接做出决策,而无需考虑历史信息或长期规划。它的决策过程是即时的、基于当前状态的反射式反应。
(二)工作原理
- 感知输入:Agent 通过传感器接收环境中的信息,这些信息可以是图像、声音、温度、位置等,具体取决于应用场景。例如,在一个简单的智能家居系统中,Agent 可能通过温度传感器感知室内温度。
- 规则匹配:Agent 内部存储了一系列预定义的规则,这些规则将环境状态与相应的行动关联起来。当 Agent 接收到感知输入后,它会将当前状态与这些规则进行匹配。例如,规则可以是“如果室内温度高于 26 摄氏度,则打开空调”。
- 行动输出:一旦找到匹配的规则,Agent 就会执行相应的行动。在上述例子中,如果室内温度确实高于 26 摄氏度,Agent 就会发送指令打开空调。
(三)优点
- 简单高效:这种设计模式结构简单,实现起来相对容易,对于一些简单任务和快速反应场景非常有效。例如,在自动门控制系统中,当传感器检测到有人靠近时立即打开门,这种简单的反射式 Agent 可以快速做出反应,无需复杂的计算。
- 易于理解和维护:由于其基于规则的决策方式,逻辑清晰,便于开发人员理解和调试。当需要修改 Agent 的行为时,只需调整相应的规则即可。
(四)缺点
- 缺乏灵活性:基于简单反射的 Agent 只能根据当前状态做出决策,无法考虑历史信息或未来可能的变化。在复杂环境中,这种模式可能会导致 Agent 无法做出最优决策。例如,在自动驾驶场景中,仅根据当前车辆前方的障碍物做出刹车决策,而没有考虑前方道路的其他情况(如是否有足够的空间重新加速等),可能会导致不必要的减速或交通拥堵。
- 无法处理不确定性:当环境状态存在不确定性或感知信息不完整时,基于简单反射的 Agent 可能无法准确匹配规则,从而无法做出正确的决策。例如,在一个光线较暗的环境中,图像传感器可能无法准确识别物体,导致 Agent 无法根据预定义的规则做出正确的反应。
三、基于模型的设计模式
(一)定义
基于模型的设计模式在简单反射模式的基础上引入了环境模型的概念。Agent 不仅根据当前感知状态做出决策,还会利用一个内部模型来模拟环境的动态变化,从而更好地预测未来状态并做出更合理的决策。
(二)工作原理
- 环境模型构建:Agent 需要构建一个环境模型,该模型能够描述环境的状态变化规律和因果关系。例如,在一个机器人导航任务中,环境模型可以包括地图信息、障碍物的位置变化规律以及机器人自身的运动学模型。
- 感知与状态更新:Agent 通过传感器感知环境状态,并将感知到的信息与环境模型进行对比和更新。如果感知到的信息与模型预测不符,Agent 可以调整模型参数以更好地适应环境变化。
- 预测与决策:基于更新后的环境模型,Agent 可以预测未来可能的状态变化,并根据这些预测信息做出决策。例如,在自动驾驶场景中,Agent 可以利用车辆动力学模型和交通规则模型预测前方车辆的行驶轨迹,从而提前做出变道或减速等决策。
(三)优点
- 适应复杂环境:通过引入环境模型,Agent 能够更好地处理复杂和动态变化的环境。它可以考虑历史信息和未来可能的变化,从而做出更合理的决策。例如,在机器人路径规划任务中,基于模型的 Agent 可以根据地图信息和障碍物动态变化预测未来的路径,避免陷入死胡同。
- 提高决策质量:基于模型的决策过程更加全面和深入,能够考虑到更多的因素和潜在风险,从而提高决策的质量和可靠性。例如,在金融投资领域,基于模型的 Agent 可以利用市场动态模型和风险评估模型做出更合理的投资决策。
(四)缺点
- 模型构建难度大:构建准确且有效的环境模型是一项复杂且具有挑战性的任务,需要对环境有深入的了解和准确的描述。在一些复杂或不确定的环境中,很难建立一个完全准确的模型。例如,在气象预测领域,尽管已经有许多复杂的气象模型,但仍然无法完全准确地预测天气变化。
- 计算成本高:基于模型的决策过程需要进行大量的计算,包括模型更新、状态预测等,这可能会导致计算成本较高,尤其是在实时性要求较高的应用场景中。例如,在实时游戏场景中,基于模型的 Agent 可能无法在短时间内做出决策,从而影响游戏体验。
四、基于效用的设计模式
(一)定义
基于效用的设计模式是一种更加注重决策结果价值的 Agent 设计方式。在这种模式下,Agent 会根据每个可能的决策结果的效用值来选择最优决策。效用值通常反映了决策结果对 Agent 的目标或任务的贡献程度。
(二)工作原理
- 效用函数定义:首先需要定义一个效用函数,该函数将决策结果映射为一个效用值。效用函数的设计取决于 Agent 的目标和任务。例如,在一个电商推荐系统中,效用函数可以是用户购买产品的概率与产品利润的乘积,反映了推荐结果对商家收益的贡献。
- 决策结果评估:Agent 对每个可能的决策结果进行评估,计算其对应的效用值。这可能需要考虑多个因素,如决策的直接收益、长期收益、风险等。例如,在投资决策中,Agent 需要考虑投资项目的预期收益、风险水平以及投资期限等因素来计算其效用值。
- 最优决策选择:Agent 根据效用值选择效用最高的决策。如果有多个决策的效用值相同,则可以选择其他次优决策或根据其他标准进行选择。例如,在一个资源分配问题中,Agent 可以根据每个资源分配方案的效用值选择最优的分配方案。
(三)优点
- 目标导向性强:基于效用的设计模式能够直接反映 Agent 的目标和任务,使决策过程更加目标导向。Agent 可以根据效用函数明确地评估每个决策对目标的贡献程度,从而做出最有利于实现目标的决策。例如,在一个医疗诊断系统中,Agent 可以根据治疗方案的治愈率、副作用等因素来选择最优的治疗方案。
- 灵活性高:效用函数可以根据不同的目标和任务进行灵活定义和调整,使 Agent 能够适应多种应用场景。例如,在一个智能交通系统中,可以根据不同的交通目标(如减少拥堵、提高安全性等)定义不同的效用函数,从而实现不同的交通管理策略。
(四)缺点
- 效用函数设计复杂:设计一个准确且合理的效用函数是一项复杂的工作,需要充分考虑各种因素和目标之间的关系。在一些复杂或多目标的场景中,很难设计出一个能够全面反映所有目标和约束的效用函数。例如,在一个环境保护与经济发展平衡的决策问题中,很难设计出一个既能反映经济发展又能考虑环境保护的效用函数。
- 计算复杂度高:在一些决策空间较大的场景中,评估所有可能决策结果的效用值可能会导致计算复杂度较高。特别是在实时性要求较高的应用场景中,可能会导致 Agent 无法及时做出决策。例如,在一个大规模的物流调度问题中,可能有成千上万种调度方案,评估每种方案的效用值可能会耗费大量的计算时间。
五、基于学习的设计模式
(一)定义
基于学习的设计模式是一种使 Agent 能够通过与环境的交互不断学习和改进自身行为的设计方式。Agent 通过试错、观察、模仿等方式从经验中学习,从而逐渐提高决策能力和适应性。
(二)工作原理
- 学习算法选择:根据 Agent 的任务和应用场景选择合适的学习算法。常见的学习算法包括监督学习、无监督学习、强化学习等。例如,在一个图像识别任务中,可以使用监督学习算法(如卷积神经网络)来训练 Agent 识别不同类型的图像。
- 经验获取与学习:Agent 通过与环境的交互获取经验数据,然后利用学习算法对这些数据进行学习和分析。在监督学习中,Agent 可以通过标注数据进行训练;在无监督学习中,Agent 可以通过聚类等方法发现数据中的规律;在强化学习中,Agent 可以通过试错和奖励信号来学习最优的行为策略。
- 行为调整与优化:根据学习结果,Agent 对自身的行为策略进行调整和优化,以提高决策质量和适应性。例如,在一个机器人导航任务中,Agent 可以通过强化学习不断调整导航策略,以提高导航效率和成功率。
(三)优点
- 自适应能力强:基于学习的设计模式使 Agent 能够根据环境的变化和新经验不断调整自身行为,具有很强的自适应能力。Agent 可以在不同的环境和任务中自动学习最优的行为策略,而无需人工干预。例如,在一个智能客服系统中,Agent 可以通过与用户的交互不断学习用户的意图和需求,从而提供更准确的服务。
- 性能提升潜力大:通过不断学习和优化,Agent 的性能可以随着时间的推移不断提高。特别是在一些复杂和动态变化的环境中,基于学习的 Agent 能够逐渐适应环境的变化,找到最优的解决方案。例如,在一个股票交易系统中,Agent 可以通过不断学习市场数据和交易经验,逐步提高交易策略的性能。
(四)缺点
- 学习过程耗时:学习过程通常需要大量的时间和数据,特别是在复杂的任务和环境中。Agent 可能需要经过大量的试错和学习才能达到较好的性能水平。例如,在一个复杂的机器人操作任务中,Agent 可能需要经过数小时甚至数天的训练才能掌握正确的操作方法。
- 对数据质量要求高:学习算法的性能很大程度上依赖于数据的质量和数量。如果数据存在噪声、偏差或不完整等问题,可能会导致 Agent 学习到错误的行为策略。例如,在一个医疗诊断系统中,如果训练数据存在错误或不准确的标注,可能会导致 Agent 诊断错误。
六、四种设计模式的比较与选择
(一)比较
- 复杂性:从简单到复杂依次为:基于简单反射的设计模式、基于模型的设计模式、基于效用的设计模式、基于学习的设计模式。基于简单反射的设计模式结构简单,实现容易;而基于学习的设计模式则需要复杂的算法和大量的数据支持。
- 适应性:基于简单反射的设计模式适应性最差,只能处理简单和确定性的环境;基于学习的设计模式适应性最强,能够适应复杂和动态变化的环境。
- 决策质量:基于效用的设计模式在理论上能够做出最优决策,但实际应用中可能会受到效用函数设计和计算复杂度的限制;基于学习的设计模式随着学习过程的进行,决策质量会逐渐提高,但初始阶段可能表现不佳。
(二)选择
- 任务简单且环境确定:如果任务简单且环境相对稳定和确定,基于简单反射的设计模式是一个合适的选择。例如,在一个简单的自动化生产线中,Agent 只需要根据传感器信号控制设备开关,这种场景下基于简单反射的设计模式能够快速实现且成本较低。
- 任务复杂且需要考虑未来变化:对于复杂任务和动态环境,基于模型的设计模式能够更好地处理。例如,在一个智能交通系统中,需要考虑交通流量的变化、道路施工等因素,基于模型的设计模式可以通过环境模型预测未来交通状态并做出合理的决策。
- 目标明确且需要优化决策结果:当任务目标明确且需要优化决策结果时,基于效用的设计模式是首选。例如,在一个资源分配问题中,需要根据资源的效用最大化分配资源,基于效用的设计模式能够明确地评估每个决策结果的效用值并选择最优决策。
- 需要自适应和性能提升:如果任务环境复杂且不断变化,需要 Agent 具有自适应能力和性能提升潜力,则基于学习的设计模式是最合适的选择。例如,在一个智能机器人服务场景中,机器人需要不断学习用户的习惯和需求,以提供更好的服务,基于学习的设计模式能够使机器人通过与用户的交互不断学习和优化自身行为。
七、结论
AI Agent 的设计模式多种多样,每种设计模式都有其独特的特点和适用场景。在实际应用中,选择合适的设计模式需要根据任务的复杂性、环境的动态性、目标的明确性以及对性能的要求等因素进行综合考虑。有时,为了更好地满足实际需求,还可以将多种设计模式结合起来使用,例如将基于模型的设计模式与基于学习的设计模式相结合,使 Agent 既能利用环境模型进行预测和决策,又能通过学习不断优化自身行为。总之,理解和掌握这些关键设计模式对于设计高效、智能的 AI Agent 具有重要意义。
相关文章:
人工智能核心知识:AI Agent 的四种关键设计模式
人工智能核心知识:AI Agent 的四种关键设计模式 一、引言 在人工智能领域,AI Agent(人工智能代理)是实现智能行为和决策的核心实体。它能够感知环境、做出决策并采取行动以完成特定任务。为了设计高效、灵活且适应性强的 AI Age…...
Electron+vite+vue3 从0到1搭建项目,开发Win、Mac客户端
随着前端技术的发展,出现了所谓的大前端。 大前端则是指基于前端技术延伸出来的各种终端平台及应用场景,包括APP、桌面端、手表终端、服务端等。 本篇文章主要是和大家一起学习一下使用Electron 如何打包出 Windows 和 Mac 所使用的客户端APPÿ…...
GitLab部署
学git Git最新最新详细教程、安装(从入门到精通!!!!企业级实战!!!工作必备!!!结合IDEA、Github、Gitee实战!!!…...
基于R语言地理加权回归、主成份分析、判别分析等空间异质性数据分析技术
在自然和社会科学领域,存在大量与地理或空间相关的数据,这些数据通常具有显著的空间异质性。传统的统计学方法在处理这类数据时往往力不从心。基于R语言的一系列空间异质性数据分析方法,如地理加权回归(GWR)、地理加权…...
指针深入理解(二)
volatile关键字 防止优化指向内存地址, typedef 指针可以指向C语言所有资源 typedef 就是起一个外号。 指针运算符加减标签操作 指针加的是地址,并且增加的是该指针类型的一个单位,指针变量的步长可以用sizeof(p[0]) 这两个的p1是不一样…...
django回忆录(Python的一些基本概念, pycharm和Anaconda的配置, 以及配合MySQL实现基础功能, 适合初学者了解)
django 说实在的, 如果是有些Python基础或者编程基础, 使用django开发本地网站的速度还是很快的, 特别是配合ai进行使用. 本人使用该框架作业的一个主要原因就是因为要做数据库大作业, 哥们想速通, 结果由于我一开始没有接触过这些方面的知识, 其实也不算快, 而且现在我也没有…...
leetcode hot100刷题日记——5.无重复字符的最长字串
解答:滑动窗口思想(见官方题解) //方法1 class Solution { public:int lengthOfLongestSubstring(string s) {//哈希表记录是否有重复字符unordered_set<char>c;int maxlength0;int ns.size();//右指针初始化为-1,可以假设…...
一文讲清python、anaconda的安装以及pycharm创建工程
软件下载 Pycharm下载地址: https://download-cdn.jetbrains.com.cn/python/pycharm-community-2024.1.1.exe?_gl1*1xfh3l8*_gcl_au*MTg1NjU2NjA0OC4xNzQ3MTg3Mzg1*FPAU*MTg1NjU2NjA0OC4xNzQ3MTg3Mzg1*_ga*MTA2NzE5ODc1NS4xNzI1MzM0Mjc2*_ga_9J976DJZ68*czE3NDczMD…...
[每日一题] 3355. 零数组变换 i
文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 3355. 零数组变换 I - 力扣(LeetCode) 2. 题目描述 给定一个长度为 n 的整数数组 nums 和一个二维数组 queries,其中 queries[i] [li, ri]。…...
【笔记】与PyCharm官方沟通解决开发环境问题
#工作记录 2025年5月20日 星期二 背景 在此前的笔记中,我们提到了向PyCharm官方反馈了几个关于Conda环境自动激活、远程解释器在社区版中的同步问题以及Shell脚本执行时遇到的问题。这些问题对日常开发流程产生了一定影响,因此决定联系官方支持寻求解…...
mariadb-cenots8安装
更新系统:安装完成 CentOS 8 后,连接到互联网,打开终端并运行以下命令来更新系统,以获取最新的软件包和安全补丁。 bash sudo yum update -y安装 MariaDB:运行以下命令来安装 MariaDB。 bash sudo yum install mariadb…...
Python实现VTK - 自学笔记(4):用Widgets实现三维交互控制
核心知识点 交互器样式(vtkInteractorStyle):自定义鼠标/键盘交互逻辑三维控件(3D Widgets):使用预制控件实现复杂交互回调机制:实现动态数据更新参数化控制:通过控件调整算法参数import vtk# 1. 创建圆锥体数据源 cone = vtk.vtkConeSour…...
在tp6模版中加减法
实际项目中,我们经常需要标签变量加减运算的操作。但是,在ThinkPHP中,并不支持模板变量直接运算的操作。幸运的是,它提供了自定义函数的方法,我们可以利用自定义函数解决:ThinkPHP模板自定义函数语法如下&a…...
Linux:库与链接
库是预先编译好、可执⾏的⼆进制码,可以被操作系统加载到内存中执⾏。 库有两种: 静态库:.a(Linux)、.lib(Windows) 动态库:.so(Linux)、.dil(Windows) 静态库 1.程序在链接时把库的代码链接到可执⾏⽂件中,运⾏时…...
T008-网络管理常用命令:ping,ipconfig,nslookup,route,netstat
ipconfig:网络诊断命令,显示 IP 地址、掩码、网关信息,清除/显示 DNS 缓存信息; route:主要用于管理路由表,确定数据包如何从源主机通过网络到达目的主机 nslookup:用于查询域名到IP地址&…...
Qt文件:XML文件
XML文件 1. XML文件结构1.1 基本结构1.2 XML 格式规则1.3 XML vs HTML 2. XML文件操作2.1 DOM 方式(QDomDocument)读取 XML写入XML 2.2 SAX 方式(QXmlStreamReader/QXmlStreamWriter)读取XML写入XML 2.3 对比分析 3. 使用场景3.1 …...
MySQL 8.0 OCP 英文题库解析(六)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题41~50 试题4…...
微软开放代理网络愿景
🌐 Microsoft的开放式智能代理网络愿景 2025年05月20日 | AI日报  欢迎各位人工智能爱好者 微软刚刚在Build 2025大会上开启了备受期待的AI周活动,通过发布大…...
阿尔泰科技助力电厂——520为爱发电!
当城市的霓虹在暮色中亮起,当千万个家庭在温暖中共享天伦,总有一群默默的 "光明守护者" 在幕后坚守 —— 它们是为城市输送能量的电厂,更是以科技赋能电力行业的阿尔泰科技。值此 520 爱意满满的日子,阿尔泰科技用硬核技…...
微软账户无密码化的取证影响
五月初,微软正式宣布,新创建的微软账户现在将默认为无密码,以实现“更简单、更安全的登录”。这一变化延续了Windows 11所设定的方向,即逐步淘汰传统密码,转而采用更安全、更方便用户的身份验证方法,如PIN码…...
idea部署本地仓库和连接放送远程仓库
1.下载git,安装好后任意地方又键会出现两个带git的东西 2.点击bash here的那个,召唤出git的小黑窗,输入 git config --global user.name "你自己取名" git config --global user.email "你自己输入你的邮箱" 3.打开id…...
4大AI智能体平台,你更适合哪一个呐?
好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受. AI的火热程度,应该说是今年IT行业内最热的话题了,以下是根据我对各个智能体平台的了解和熟悉,按照 平台特点、…...
Pandas:Series和DataFrame的概念、常用属性和方法
本文目录: 一、Series和Dataframe的概念二、创建Series对象三、创建Dataframe对象(一)Series1.Series的常用属性总结如下:2.Series的常用方法总结如下: (二)Dataframe1.Dataframe的常用属性2.Da…...
Index-AniSora论文速读:探索Sora时代动画视频生成的前沿
AniSora: Exploring the Frontiers of Animation Video Generation in the Sora Era 一、引言 论文开篇指出动画产业近年来的显著增长,动画内容的需求不断攀升,但传统动画制作流程存在劳动密集和耗时的问题,如故事板创建、关键帧生成和中间…...
扫盲笔记之NPM
简介 npm,全名 node package manger。 NPM(Node Package Manager)是一个 JavaScript 包管理工具,也是 Node.js 的默认包管理器。 NPM 允许开发者轻松地下载、安装、共享、管理项目的依赖库和工具。网址:https://www…...
【Go-2】基本语法与数据类型
基本语法与数据类型 Go语言作为一种静态类型、编译型语言,拥有简洁且高效的语法结构。本章将深入介绍Go的基本语法和数据类型,帮助你建立扎实的编程基础。 2.1 第一个 Go 程序 编写第一个Go程序是学习任何编程语言的传统步骤。通过一个简单的“Hello,…...
Varlet UI-Material Design风格Vue 3框架移动端组件库
#Varlet UI是什么 在现代Web开发中,Vue 3以其强大的组件系统特性,成为了构建可复用、模块化应用界面的首选框架。而在Vue 3的生态系统中,Varlet UI开源组件库以其高效、一致和可维护的设计,为开发者提供了丰富的工具和资源。本文将…...
Golang的文件上传与下载
## Golang的文件上传与下载 文件上传 在Golang中,我们可以使用 net/http 包来实现文件上传功能。文件上传的一般流程包括创建一个接收上传请求的处理器,解析表单数据,然后获取文件并保存到服务器指定的位置。 创建文件上传接口 首先ÿ…...
信奥赛-刷题笔记-栈篇-T3-P4387验证栈序列0520
总题单 本部分总题单如下 【腾讯文档】副本-CSP-JSNOI 题单 (未完待续) https://docs.qq.com/sheet/DSmJuVXR4RUNVWWhW?tabBB08J2 栈篇题单 P4387 【深基15.习9】验证栈序列 题目描述 给出两个序列 pushed 和 poped 两个序列,其取值从 1 到 n ( n ≤ 10…...
jenkins授权管理.
使用背景: 在企业中可能多个开发组织共用同一个Jenkins服务器, 不会让用户具有管理员权限的, 需要给用户分配对应的Group组织权限。例如: 张三, 属于devops1这个组织, 仅允许张三对devops1组织相关的jenkins作业进行构…...
Ubuntu24.04安装Dify
1、win10上安装docker不顺利 参考:Dify的安装_dify安装-CSDN博客等资料,Dify依赖Docker运行,在Win10上安装Docker,先安装wsl。在PowerShell(管理员)中输入: wsl --install 或显示“找不到指定文件”,或显示…...
Spring Boot 集成 Elasticsearch【实战】
前言: 上一篇我们简单分享了 Elasticsearch 的一些概念性的知识,本篇我们来分享 Elasticsearch 的实际运用,也就是在 Spring Booot 项目中使用 Elasticsearch。 Elasticsearch 系列文章传送门 Elasticsearch 基础篇【ES】 Elasticsearch …...
Spark离线数据处理实例
工具:Jupyter notebook # 一、需求分析 (1)分析美妆商品信息,找出每个“商品小类”中价格最高的前5个商品。 (2)每月订购情况,统计每个月订单的订购数量情况和消费金额。 (3&#x…...
window 安装 wsl + cuda + Docker
WSL 部分参考这里安装: Windows安装WSL2 Ubuntu环境 - 知乎 如果出现错误: WslRegisterDistribution failed with error: 0x800701bc 需要运行:https://crayon-shin-chan.blog.csdn.net/article/details/122994190 wsl --update wsl --shu…...
多通道振弦式数据采集仪MCU安装指南
设备介绍 数据采集仪 MCU集传统数据采集器与5G/4G,LoRa/RS485两种通信功能与一体的智能数据采集仪。该产品提供振弦、RS-485等的物理接口,能自动采集并存储多种自然资源、建筑、桥梁、城市管廊、大坝、隧道、水利、气象传感器的实时数据,利用现场采集的数…...
Linux:进程信号---信号的概念与产生
文章目录 1. 信号的概念1.1 信号1.2 认识信号1.3 signal函数1.4 信号的识别(硬件角度) 2. 信号的产生2.1 键盘组合键2.2 kill命令2.3 系统调用2.4 异常2.5 软件条件 3. core dump 序:在我们的生活中,有很多信号,比如红…...
开放鸿蒙OpenHarmony 5.0.0 Release 兼容性测试实战经验分享
OpenHarmony 5.0版本的发布时间是2024年12月20日至21日。这个版本带来了许多新特性和改进。现在5.0出了两个release 版本,分别是5.0.0和5.0.1。 就在5.0版本发布不到2周的时间内,2025年01月01日起,不支持新产品基于老分支(OpenHa…...
Nvidia - NVLink Fusion
每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...
C#处理印尼地区的数字分隔符方法
1.在印尼 数字中的 小数点 和 千分位分隔符 的用法与欧美习惯相反 逗号(,) 用作 小数点(如 1,23 表示 1.23)。点(.) 用作 千分位分隔符(如 1.000 表示 1000)。 查阅资料后发现&#…...
Python爬虫(30)Python爬虫高阶:Selenium+Scrapy+Playwright融合架构,攻克动态页面与高反爬场景
目录 一、背景:动态页面与反爬技术的崛起二、技术融合架构设计1. 核心组件分工2. 架构图示3. 关键技术点 三、代码实现:分步详解1. 环境配置2. 核心代码结构3. Scrapy项目集成4. Playwright增强功能示例 四、总结:技术融合的优势与挑战1. 优势…...
PHP、JAVA、Shiro反序列化
目录 一、PHP反序列化 二、JAVA反序列化 三、Shiro反序列化 Shiro-550 反序列化漏洞原理 Shiro-721 反序列化漏洞原理 Padding Oracle 漏洞补充: 防御措施: 一、PHP反序列化 主要是分为有类和无类: 1、有类:就有相关的魔术…...
FreeRTOS全攻略:从入门到精通
目录 一、FreeRTOS 基础概念1.1 FreeRTOS 是什么1.2 为什么选择 FreeRTOS 二、与裸机开发的区别2.1 任务管理2.2 中断处理2.3 资源管理 三、FreeRTOS 入门篇3.1 内存管理3.2 任务创建3.3 任务状态3.4 任务优先级3.5 空闲任务和钩子函数3.6 同步与互斥3.7 队列3.8 信号量3…...
机器学习 决策树-分类
决策树-分类 1 概念2 基于信息增益决策树的建立(1) 信息熵(2) 信息增益(3) 信息增益决策树建立步骤 3 基于基尼指数决策树的建立(了解)4 sklearn API5 示例 1 概念 1、决策节点 通过条件判断而进行分支选择的节点。如:将某个样本中的属性值(特征值)与决策节点上的值…...
【RK3588嵌入式图形编程】-Cairo-形状与填充
形状与填充 文章目录 形状与填充1、基本形状2、 纯色填充3、 填充图案4、 填充渐变本文介绍了如何使用Cairo库创建和填充基本形状及复杂形状。首先,通过Cairo API创建矩形、正方形、圆形、弧线和椭圆等基本形状,并使用纯色进行填充。接着,通过组合基本图元,展示了如何绘制星…...
C及C++的音频库与视频库介绍
在 C/C 开发中,处理音频和视频需要依赖专业的库来实现编解码、播放、录制、处理等功能。 一.音频库(C/C) 1.FFmpeg(音频 视频全能库) 功能: 支持几乎所有音频 / 视频格式的编解码(如 MP3、…...
5.2.4 wpf中MultiBinding的使用方法
在 WPF 中,MultiBinding 允许将多个绑定(Binding)组合成一个逻辑结果,并通过一个转换器(IMultiValueConverter)处理这些值,最终影响目标属性。以下是其核心用法和示例: 核心组件: MultiBinding:定义多个绑定源的集合。 IMultiValueConverter:实现逻…...
小白的进阶之路系列之二----人工智能从初步到精通pytorch中分类神经网络问题详解
什么是分类问题? 分类问题涉及到预测某物是一种还是另一种。 例如,你可能想要: 问题类型具体内容例子二元分类目标可以是两个选项之一,例如yes或no根据健康参数预测某人是否患有心脏病。多类分类目标可以是两个以上选项之一判断一张照片是食物、人还是狗。多标签分类目标…...
日志根因分析:Elastic Observability 的异常检测与日志分类功能
作者:来自 Elastic Bahubali Shetti Elastic Observability 不仅提供日志聚合、指标分析、APM 和分布式追踪,Elastic 的机器学习能力还能帮助分析问题的根因,让你将时间专注于最重要的任务。 随着越来越多的应用程序迁移到云端,收…...
web基础
域名概述 2-1 域名的概念:IP 地址不易记忆,域名是互联网络上识别和定位计算机的层次结构式的字符标识,与该计算机的互联网协议 (IP) 地址相对应,用于在数据传输时标识计算机的电子方位,方便人们记忆和输入。 早期使用…...
WebRTC技术EasyRTC音视频实时通话驱动智能摄像头迈向多场景应用
一、方案背景 在物联网蓬勃发展的当下,智能摄像头广泛应用于安防、家居、工业等领域。但传统智能摄像头存在视频传输延迟高、设备兼容性差、网络波动时传输不稳定等问题,难以满足用户对实时流畅交互视频的需求。EasyRTC凭借低延迟、高可靠、跨平台特性…...