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

【Agent】OpenManus-Flow组件详细分析

1. Flow架构概述

OpenManus 的Flow组件实现了一个灵活的工作流管理系统,主要用于协调多个智能体的协作,以完成复杂任务。Flow组件的核心是基于计划的执行模型,它将任务分解为一系列步骤,然后逐步执行这些步骤,直到任务完成。

2. 核心组件设计

2.1 BaseFlow (基础Flow)

设计特点

  • 使用 Pydantic 模型实现,支持数据验证和序列化
  • 支持多智能体管理,可以灵活配置主要智能体和执行者
  • 提供了智能体访问和管理的接口
  • 定义了 execute 抽象方法,要求子类实现

关键属性

  • agents: 智能体字典,存储Flow中可用的所有智能体
  • tools: 可选的工具列表
  • primary_agent_key: 主要智能体的键名

初始化逻辑

  • 支持多种智能体输入方式:单个智能体、智能体列表或智能体字典
  • 自动设置主要智能体,如果未指定则使用第一个智能体

关键方法

  • primary_agent: 属性方法,获取主要智能体
  • get_agent: 根据键名获取特定智能体
  • add_agent: 添加新智能体到Flow中
  • execute: 抽象方法,执行Flow

2.2 FlowType (Flow类型)

设计特点

  • 使用枚举类定义可用的Flow类型
  • 目前只有 PLANNING 类型,但设计支持扩展

2.3 PlanStepStatus (计划步骤状态)

设计特点

  • 使用枚举类定义计划步骤的可能状态
  • 提供了状态管理和显示的辅助方法

状态类型

  • NOT_STARTED: 未开始
  • IN_PROGRESS: 进行中
  • COMPLETED: 已完成
  • BLOCKED: 已阻塞

辅助方法

  • get_all_statuses: 获取所有可能的状态值
  • get_active_statuses: 获取活动状态值(未开始或进行中)
  • get_status_marks: 获取状态标记符号映射

2.4 FlowFactory (Flow工厂)

设计特点

  • 实现了工厂模式,用于创建不同类型的Flow实例
  • 支持根据Flow类型和智能体配置创建相应的Flow

关键方法

  • create_flow: 静态方法,根据Flow类型和智能体创建Flow实例

3. PlanningFlow (规划Flow)

3.1 设计特点

  • 继承自 BaseFlow,实现了基于计划的任务执行Flow
  • 使用 PlanningTool 管理计划的创建、更新和执行
  • 支持多智能体协作,可以根据步骤类型选择合适的执行者
  • 实现了计划的自动创建、步骤执行和状态跟踪
  • 提供了计划可视化和总结功能

3.2 关键属性

  • llm: 语言模型实例,用于计划创建和总结
  • planning_tool: 计划工具实例,用于管理计划
  • executor_keys: 执行者智能体的键名列表
  • active_plan_id: 当前活动计划的 ID
  • current_step_index: 当前执行步骤的索引

3.3 初始化逻辑

  • 处理执行者配置和计划 ID
  • 初始化计划工具
  • 如果未指定执行者,则使用所有可用智能体作为执行者

3.4 执行Flow

主要执行Flow (execute 方法):

  1. 验证主要智能体是否可用
  2. 如果提供了输入文本,创建初始计划
  3. 循环执行以下步骤,直到计划完成或无更多步骤:
    • 获取当前要执行的步骤信息
    • 如果没有更多步骤,完成计划并退出
    • 根据步骤类型选择合适的执行者
    • 执行当前步骤
    • 检查执行者状态,如果为 FINISHED 则退出
  4. 返回执行结果

计划创建Flow (_create_initial_plan 方法):

  1. 创建系统消息和用户消息
  2. 使用 LLM 和 PlanningTool 创建计划
  3. 处理工具调用结果
  4. 如果创建失败,创建默认计划

步骤执行Flow (_execute_step 方法):

  1. 准备计划状态和步骤文本
  2. 创建步骤提示
  3. 使用选定的执行者执行步骤
  4. 标记步骤为已完成
  5. 返回执行结果

计划完成Flow (_finalize_plan 方法):

  1. 获取最终计划文本
  2. 使用 LLM 创建计划总结
  3. 如果 LLM 总结失败,尝试使用智能体创建总结
  4. 返回计划完成信息和总结

3.5 步骤管理

步骤获取 (_get_current_step_info 方法):

  1. 验证计划是否存在
  2. 从计划工具存储中获取计划数据
  3. 查找第一个未完成的步骤
  4. 提取步骤类型(如果有)
  5. 将步骤标记为进行中
  6. 返回步骤索引和信息

步骤完成 (_mark_step_completed 方法):

  1. 使用计划工具将当前步骤标记为已完成
  2. 如果工具调用失败,直接更新计划工具存储中的步骤状态

3.6 计划可视化

计划文本获取 (_get_plan_text 方法):

  1. 尝试使用计划工具获取计划文本
  2. 如果失败,从存储中直接生成计划文本

计划文本生成 (_generate_plan_text_from_storage 方法):

  1. 从计划工具存储中获取计划数据
  2. 确保步骤状态和注释与步骤数量匹配
  3. 计算各状态的步骤数量和完成进度
  4. 生成格式化的计划文本,包括标题、进度和步骤列表
  5. 使用状态标记显示每个步骤的状态

4. PlanningTool (计划工具)

4.1 设计特点

  • 实现了计划的创建、更新、查询和管理功能
  • 使用内存存储管理计划数据
  • 支持多个计划的并行管理
  • 提供了计划步骤状态的跟踪和更新

4.2 关键属性

  • plans: 字典,存储所有计划数据
  • _current_plan_id: 当前活动计划的 ID

4.3 命令支持

  • create: 创建新计划
  • update: 更新现有计划
  • list: 列出所有计划
  • get: 获取特定计划
  • set_active: 设置活动计划
  • mark_step: 更新步骤状态
  • delete: 删除计划

5. 调用Flow分析

5.1 Flow创建和初始化

# 创建智能体
agents = {"manus": Manus()}# 使用工厂创建Flow
flow = FlowFactory.create_flow(flow_type=FlowType.PLANNING,agents=agents,
)
  1. 首先创建所需的智能体实例
  2. 使用 FlowFactory 创建特定类型的Flow
  3. Flow初始化过程中设置智能体和其他配置

5.2 Flow执行

# 执行Flow
result = await flow.execute(prompt)
  1. 调用Flow的 execute 方法,传入用户输入
  2. Flow内部创建初始计划
  3. 循环执行计划步骤,直到完成
  4. 返回执行结果

5.3 计划创建

# 内部计划创建Flow
await self._create_initial_plan(input_text)
  1. 使用 LLM 和 PlanningTool 创建初始计划
  2. 设置计划 ID 和标题
  3. 定义计划步骤

5.4 步骤执行

# 获取当前步骤
self.current_step_index, step_info = await self._get_current_step_info()# 选择执行者
executor = self.get_executor(step_type)# 执行步骤
step_result = await self._execute_step(executor, step_info)
  1. 获取当前未完成的步骤
  2. 根据步骤类型选择合适的执行者
  3. 使用执行者执行步骤
  4. 标记步骤为已完成

5.5 计划完成

# 完成计划
result += await self._finalize_plan()
  1. 获取最终计划状态
  2. 使用 LLM 创建总结
  3. 返回计划完成信息

6. 设计模式应用

6.1 工厂模式

  • FlowFactory 实现了工厂模式,用于创建不同类型的Flow

6.2 策略模式

  • 不同的Flow实现不同的执行策略
  • 可以根据需要选择不同的Flow类型

6.3 命令模式

  • PlanningTool 实现了命令模式,支持不同的计划操作命令

6.4 观察者模式

  • 计划状态变化和事件处理

6.5 模板方法模式

  • BaseFlow 定义了算法骨架
  • PlanningFlow 实现特定步骤

7. 扩展性设计

7.1 Flow扩展

  • 可以通过继承 BaseFlow 创建新的Flow类型
  • 只需实现 execute 方法

7.2 智能体集成

  • Flow支持多种智能体集成方式
  • 可以根据步骤类型选择不同的执行者

7.3 计划工具扩展

  • PlanningTool 支持添加新的命令和功能
  • 可以扩展计划数据结构和状态类型

8. 错误处理机制

8.1 异常捕获

  • 在主要方法中捕获异常
  • 记录错误并提供友好的错误消息

8.2 超时处理

  • 在 run_flow.py 中实现了执行超时处理
  • 防止长时间运行的任务阻塞系统

8.3 状态恢复

  • 在计划工具操作失败时提供直接更新存储的备选方案
  • 确保计划状态的一致性

9. Flow使用示例

9.1 基本使用

# 创建智能体和Flow
agents = {"manus": Manus()}
flow = FlowFactory.create_flow(flow_type=FlowType.PLANNING, agents=agents)# 执行Flow
result = await flow.execute("创建一个网站爬虫")

9.2 多智能体协作

# 创建多个智能体
agents = {"planner": PlanningAgent(),"coder": SWEAgent(),"researcher": Manus()
}# 创建Flow并指定执行者
flow = FlowFactory.create_flow(flow_type=FlowType.PLANNING,agents=agents,primary_agent_key="planner",executors=["coder", "researcher"]
)# 执行Flow
result = await flow.execute("分析市场数据并创建可视化")

OpenManus 的Flow组件通过分离计划创建、步骤执行和状态管理的职责,它能够支持复杂任务的分解和执行,同时保持代码的可维护性和可扩展性。核心的基于计划的执行模型和多智能体协作机制使Flow能够处理各种复杂任务,从而实现更高级的自动化和问题解决能力。

相关文章:

【Agent】OpenManus-Flow组件详细分析

1. Flow架构概述 OpenManus 的Flow组件实现了一个灵活的工作流管理系统,主要用于协调多个智能体的协作,以完成复杂任务。Flow组件的核心是基于计划的执行模型,它将任务分解为一系列步骤,然后逐步执行这些步骤,直到任务…...

MySQL环境安装详细教程(Windows/macOS/Linux)

摘要:本文详细介绍了在Windows、macOS和Linux三大操作系统下安装MySQL数据库的完整流程,帮助开发者快速搭建本地MySQL环境。 一、MySQL安装前准备 官网下载 访问MySQL官网 → 选择"Downloads" → 选择"MySQL Community (GPL) Downloads&…...

【人工智能基础2】人工神经网络、卷积神经网络基础、循环神经网络、长短时记忆网络

文章目录 三、人工神经网络1. 神经元感知模型2. 神经网络模型3. 学习规则:修改神经网络的权重和偏置反向传播算法(BP)优化器 - 梯度下降法 四、卷积神经网络基础(CNN)1. 基本原理2. 计算过程 五、循环神经网络(RNN&…...

如何查看windows系统的硬件环境(附方法

方法一:使用命令指示符查询 在“开始”菜单中搜索:命令指示符,并以管理员身份打开, 输入:systeminfo,就可以查看硬件、CPU、处理器等详细内容 systeminfo 方法二:在资源监视器中查看 按住 “…...

基于树莓派的水果分类系统(论文+源码)

针对小型农户的在水果加工销售环节中的分类需求,本文设计并实现了基于树莓派的视觉识别分类系统。本章根据所选水果的具体情况,简述系统各模块的实现方法,设计树莓派的程序算法,并选择合适的器件型号,开发所用的辅助工…...

Gemini Robotics:将人工智能带入物理世界

25年3月来自谷歌的技术报告“Gemini Robotics: Bringing AI into the Physical World”。 大型多模态模型的最新进展,已使数字领域出现卓越的通才能力,但将其转化为机器人等物理智体仍然是一项重大挑战。一般有用的机器人需要能够理解周围的物理世界&am…...

2.5[frontEnd]

requestAnimationFrame 是 浏览器原生 API,定义在 window 对象中,属于 Web API 的一部分。无需任何导入即可直接使用,其类型定义包含在 TypeScript 标准库中。 React 组件挂载时执行该 useEffect 初始化节流计时器 lastEmit 和 25ms 触发间隔…...

【动手学深度学习】#2线性神经网络

主要参考学习资料: 《动手学深度学习》阿斯顿张 等 著 【动手学深度学习 PyTorch版】哔哩哔哩跟李牧学AI 目录 2.1 线性回归2.1.1 线性回归的基本元素线性模型损失函数解析解随机梯度下降 2.1.3 最大似然估计 2.2 线性回归从零开始实现2.2.1 生成数据集2.2.2 读取数…...

C语言动态内存管理(上)

欢迎拜访:雾里看山-CSDN博客 本篇主题:C语言动态内存管理(上) 发布时间:2025.3.16 隶属专栏:C语言 目录 为什么需要动态内存管理静态分配的局限性动态分配的优势 动态内存函数malloc函数介绍函数使用 free函数介绍函数使用 calloc…...

图解多头注意力机制:维度变化一镜到底

目录 一、多头注意力机制概述二、代码实现1. pyTorch 实现2. tensorFlow实现 三、维度变化全流程详解1. 参数设定2. 维度变化流程图3. 关键步骤维度变化 四、关键实现细节解析1. 多头拆分与合并2. 注意力分数计算3. 掩码处理技巧 五、完整运行示例六、总结与常见问题1. 核心优势…...

Navicat如何查看密码

近期遇到需要将大部分已存储的navicat数据库转发给其他人,于是乎进行导出文件 奈何对方不用navicat,无法进行文件的导入从而导入链接 搜罗navicat的密码查看,大部分都为php代码解析 以下转载GitHub上看到的一个python代码解析的脚本 这里是对…...

第4节:分类任务

引入: 独热编码(one-hot):对于分类任务的输出,也就是是或不是某类的问题,采取独热编码的形式将y由一离散值转化为连续的概率分布,最大值所在下标为预测类 输入的处理:对于任意一张…...

EasyCVR安防视频汇聚平台助力工业园区构建“感、存、知、用”一体化智能监管体系

在现代工业园区的安全管理和高效运营中,视频监控系统扮演着不可或缺的角色。然而,随着园区规模的扩大和业务的复杂化,传统的视频监控系统面临着诸多挑战,如设备众多难以统一管理、数据存储分散、智能分析能力不足、信息利用率低下…...

计算机网络——DNS

一、什么是DNS? DNS(Domain Name System,域名系统) 是互联网的核心服务,负责将人类可读的域名(如 www.baidu.com)转换为机器可识别的 IP地址(如 14.119.104.254)。它像一…...

STC89C52单片机学习——第20节: [8-2]串口向电脑发送数据电脑通过串口控制LED

写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.03.15 51单片机学习——第20节: [8-2]串口向电脑发送数据&电脑通过串口控制LED 前言…...

1.5[hardware][day5]

Link类跳转指令可以拆分为两个部分,一个是跳转,即下一个PC的生成,如果将分支条件的比较放到译码级来进行,则这部分只涉及取值级和译码级流水;另一个是Link操作,简单来说就是写寄存器,这部则主要…...

Java 多线程编程:提升系统并发处理能力!

多线程是 Java 中实现并发任务执行的关键技术,能够显著提升程序在多核处理器上的性能以及处理多任务的能力。本文面向初级到中级开发者,从多线程的基本定义开始,逐步讲解线程创建、状态管理、同步机制、并发工具以及新兴的虚拟线程技术。每部…...

Mininet 的详细设计逻辑

Mininet 是一个轻量级网络仿真工具,其核心目标是在单台物理机上快速构建复杂的虚拟网络拓扑,支持 SDN(软件定义网络)和传统网络协议的实验与验证。其设计逻辑围绕 虚拟化、模块化 和 灵活性 展开,以下是其详细设计架构…...

原生微信小程序实现导航漫游(Tour)

效果&#xff1a; 小程序实现导航漫游 1、组件 miniprogram/components/tour/index.wxml <!--wxml--> <view class"guide" wx:if"{{showGuide}}"><view style"{{guideStyle}}" class"guide-box"><view class&quo…...

Spring(6)——Spring、Spring Boot 与 Spring MVC 的关系与区别

Spring、Spring Boot 与 Spring MVC 的关系与区别 1. 核心定位 Spring 定位&#xff1a;基础框架&#xff0c;提供 IoC&#xff08;控制反转&#xff09; 和 DI&#xff08;依赖注入&#xff09; 核心功能&#xff0c;管理对象生命周期及依赖关系。功能&#xff1a;支持事务管…...

神聖的綫性代數速成例題2. 行列式的性質

性質 1&#xff1a;行列式與它的轉置行列式相等&#xff1a; 設為行列式&#xff0c;為其轉置行列式&#xff0c;則。 性質 2&#xff1a;交換行列式的兩行 (列)&#xff0c;行列式變號&#xff1a; 若行列式經過交換第行和第行得到行列式&#xff0c;則。 性質 3&#xff…...

ModelScope推理QwQ32B

文章目录 ModelScope推理QwQ32Bmodel_scope下载QwQ32BModelScope 调用QwQ-32B ModelScope推理QwQ32B 以下载 qwq32b 为例子 需要安装的 python 包 transformers4.49.0 accelerate>0.26.0 torch2.4.1 triton3.0.0 safetensors0.4.5可以使用 conda 创建一个虚拟环境安装 cond…...

使用unsloth进行grpo强化学习训练

说明 unsloth框架可以进行各种sft训练&#xff0c;包括lora和grpo训练。我参考官方方法&#xff0c;使用模型Qwen2.5-3B-Instruct和数据集gsm8k&#xff0c;写了一个grpo训练的例子。 代码 这个代码加载模型Qwen2.5-3B-Instruct和数据集gsm8k。训练完成后先保存lora模型然后…...

【c++】【智能指针】shared_ptr底层实现

【c】【智能指针】shared_ptr底层实现 智能指针之前已经写过了&#xff0c;但是考虑到不够深入&#xff0c;应该再分篇写写。 1 shared_ptr 1.1 shared_ptr 是什么 std::shared_ptr是一个类模板&#xff0c;它的对象行为像指针&#xff0c;但是它还能记录有多少个对象共享它…...

python拉取大视频导入deepseek大模型解决方案

使用Python拉取大视频并导入大模型&#xff0c;需要综合考虑数据获取、存储、处理和资源管理&#xff0c;确保高效稳定地处理大视频数据&#xff0c;同时充分利用大模型的性能&#xff0c;以下是分步方案及代码示例&#xff1a; --- 1. 分块下载大视频&#xff08;避免内存溢出…...

【Python】面向对象

编程的两大特点 面向过程&#xff1a;着重于做什么面向对象&#xff08; oop&#xff09;&#xff1a;着重于谁去做 python是面向对象语言&#xff0c;面向对象三大特点&#xff1a;封装、继承、多态 面向对象&#xff1a;便于代码管理&#xff0c;方便迭代更新。 新式类、经…...

leetcode日记(100)填充每个节点的下一个右侧节点指针

和层序遍历差不多的思路&#xff0c;将节点储存在队列里&#xff0c;一边取出节点一边放入取出节点的左右节点&#xff0c;直到队列空。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL), right(NU…...

docker入门篇

使用docker可以很快部署相同的环境,这也是最快的环境构建,接下来就主要对docker中的基础内容进行讲解.Docker 是一个用于开发、交付和运行应用程序的开源平台&#xff0c;它可以让开发者将应用程序及其依赖打包到一个容器中&#xff0c;然后在任何环境中运行这个容器&#xff0…...

python语法

1. 前面先写import导入模块&#xff0c;完整的语法是&#xff1a; [from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名] 语法还可以是&#xff1a; from 模块名 import 功能名 如果import整个模块的话&#xff0c;需要用.功能名()&#xff0c;来用这个功能&#xff…...

Dify使用部署与应用实践

最近在研究AI Agent&#xff0c;发现大家都在用Dify&#xff0c;但Dify部署起来总是面临各种问题&#xff0c;而且我在部署和应用测试过程中也都遇到了&#xff0c;因此记录如下&#xff0c;供大家参考。Dify总体来说比较灵活&#xff0c;扩展性比较强&#xff0c;适合基于它做…...

微信小程序接入DeepSeek模型(火山方舟),并在视图中流式输出

引言&#xff1a; DeepSeek&#xff0c;作为一款先进的自然语言处理模型&#xff0c;以其强大的文本理解和生成能力著称。它能够处理复杂的文本信息&#xff0c;进行深度推理&#xff0c;并快速给出准确的回应。DeepSeek模型支持流式处理&#xff0c;这意味着它可以边计算边输…...

前端性能优化指标及优化方案

前端性能优化的核心目标是 提高页面加载速度、降低交互延迟、减少资源占用。常见的 Web 性能指标包括 LCP、FID、CLS、TTFB、TTI、FCP 等。 关键性能指标&#xff08;Web Vitals&#xff09; 指标优化方案 &#xff08;1&#xff09;LCP&#xff08;Largest Contentful Paint&…...

正则化介绍

简单介绍 正则化是用于控制模型的复杂度&#xff0c;防止模型在训练数据上过度拟合&#xff08;overfitting&#xff09;。正则化通过在模型的损失函数中引入额外的惩罚项&#xff0c;来对模型的参数进行约束&#xff0c;从而降低模型的复杂度。这个额外的惩罚通常与模型参数的…...

AI时代:数字媒体的无限可能

人工智能和数字媒体技术正深刻改变着我们的生活。通过大数据分析、机器学习等技术&#xff0c;人工智能不仅能精准预测用户需求&#xff0c;还能在医疗、金融等多个领域提供高效解决方案。与此同时&#xff0c;数字媒体技术的进步使得信息传播更加迅速和广泛。社会计算作为新兴…...

自动化爬虫drissionpage

自动化爬虫drissionpage官网 自动化测试框架&#xff1a;DrissionPage DrissionPage调用工具汇总 网络爬虫工具比较-DrissionPage、Selenium、Playwright...

禁毒知识竞赛主持稿串词

尊敬的各位领导、各位来宾、参赛选手们&#xff1a;大家好&#xff01; 在市禁毒委员会的领导下&#xff0c;今年我市开展了以“参与禁毒战争&#xff0c;构建和谐社会”为主题的禁毒宣传月活动。为了进一步加强我市禁毒宣传力度&#xff0c;促进社会治安的好转和社会主义物质文…...

【JDK17】Jlink一秒生成精简的JRE

之前介绍了 Java17模块化的JDK&#xff0c;模块化后按需使用Jlink 用于精简生成 JRE 环境&#xff0c;这让快速的开发环境增强了编码的愉悦感。在实际生产环境中使用 mave 进行项目的构建&#xff0c;其次再是精简 JRE 缩小容器镜像体积&#xff0c;为实现一体化的流程&#xf…...

机器学习周报--文献阅读

文章目录 摘要Abstract 1 文章内容1.1 模型结构1.1.1 LSTMAT的结构设置1.1.2 AWPSO算法优化模型 1.2 实验与结果讨论1.2.1 处理缺失数据1.2.2 模型评估指标1.2.3 比较实验1.2.4 消融实验&#xff08;ABLATION EXPERIMENTS&#xff09; 2相关知识2.1 自适应权重粒子群优化&#…...

硬件地址反序?用位操作为LED灯序“纠偏”。反转二进制数即可解决

特别有意思&#xff0c;LED的灯序与其硬件地址刚好相反&#xff0c;没办法直接通过加1实现二进制进位的亮灯操作&#xff0c;查了一些资料说用数组和switch实现&#xff0c;觉得太麻烦了&#xff0c;思索良久&#xff0c;就想到了反转二进制数解决这个问题。 reverse_bits( )是…...

A* floyd算法 bellman-ford

求源点到目标点最短距离 排序的里面要加上与目标点一个预估距离,与dj算法差距只有这儿 预估要小于等于真实的最短距离,吸引力要适当 越接近实际距离越快 #include<bits/stdc.h> using namespace std;// 方向向量&#xff1a;上、右、下、左 const vector<int> …...

【数据挖掘】KL散度(Kullback-Leibler Divergence, KLD)

KL散度&#xff08;Kullback-Leibler Divergence, KLD&#xff09; 是衡量两个概率分布 P 和 Q之间差异的一种非对称度量。它用于描述当使用分布 Q 逼近真实分布 P 时&#xff0c;信息丢失的程度。 KL散度的数学定义 给定两个离散概率分布 P(x)和 Q(x)&#xff0c;它们在相同的…...

Linux shell 进度条

概述 在 Linux Shell 中实现一个简单的进度条可以通过 printf 命令结合特殊字符来实现&#xff0c;以下是一个示例脚本&#xff0c;它模拟了一个从 0% 到 100% 的进度条。 作用 反馈任务进度&#xff1a;让用户直观了解任务执行的进展情况&#xff0c;比如文件拷贝、系统更新…...

ctfshow web刷题记录

RCE 第一题 eval代码执行 &#xff1a; 1、使用system 加通配符过滤 ?csystem("tac%20fl*") ; 2、反字节执行 xxx %20 echo 反字节 3、变量转移 重新定义一个变量 让他代替我们执行 4、伪协议玩法 ?cinclude$_GET[1]?>&1php://filter/readc…...

leetcode日记(101)填充每个节点的下一个右侧节点指针Ⅱ

意料之中有这题&#xff0c;将之前的思路换一下即可&#xff0c;层序遍历的思路将record&#xff08;记录下一个循环的次数&#xff09;手动加减。 /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node* next;Node() : val(0), left(NULL)…...

大语言模型微调和大语言模型应用的区别?

1. 基本概念 微调&#xff08;Fine-tuning&#xff09; 定义&#xff1a;微调是指在预训练大语言模型的基础上&#xff0c;通过在特定领域或任务的数据上进一步训练&#xff0c;从而使模型在该特定任务上表现更优。 目的&#xff1a;适应具体的任务需求&#xff0c;比如法律文…...

Leetcode-131.Palindrome Partitioning [C++][Java]

目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-131.Palindrome Partitioninghttps://leetcode.com/problems/palindrome-partitioning/description/131. 分割回文串 - 力扣&#xff08;LeetCode&#xff09;131. 分割回文串 - 给你一个字符串 s&#xff0c;请你…...

DeepSeek:开启机器人智能化的革命性突破

引言 在2025年全球机器人产业格局中&#xff0c;中国AI公司深度求索&#xff08;DeepSeek&#xff09;凭借开源机器人智能控制系统DeepSeek-R1&#xff0c;正在掀起一场从底层算法到应用生态的技术革命。不同于传统机器人依赖预设程序的局限&#xff0c;DeepSeek通过深度推理能…...

解决load()文件报错zipfile.BadZipFile: File is not a zip file

报错如下图&#xff1a; 有可能是资源没有关闭造成了错误&#xff0c;这个网上已经有很多解决方案了&#xff0c;大家可自行查阅。 如果你在别的地方都没有找到解决问题&#xff0c;那么可能是以下这种情况。 1、描述 我在服务器上的代码load()加载文件时&#xff0c;出现了…...

【Tools】Visual Studio Code安装保姆级教程(2025版)

00. 目录 文章目录 00. 目录01. Visual Studio Code概述02. Visual Studio Code下载03. Visual Studio Code安装04. Visual Studio Code配置05. 附录 01. Visual Studio Code概述 Visual Studio Code&#xff08;简称 VS Code&#xff09;是由微软开发的一款免费、开源且跨平台…...

Python库安装报错解决思路以及机器学习环境配置详细方案

文章目录 概要第三方库gdalmahotasgraphviznltk-datalazypredictscikit-surprisenb_extensions 机器学习GPU-torch安装torch_geometric安装ubuntu安装显卡驱动dlib安装torch-cluster、torch-scatter、torch-sparse和torch-geometricYOLOapextensorflow-gpu Python && P…...