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

创建Workforce

创建你的Workforce

3.3.1 简单实践

1. 创建 Workforce 实例

想要使用 Workforce,首先需要创建一个 Workforce 实例。下面是最简单的示例:

from camel.agents import ChatAgent
from camel.models import ModelFactory
from camel.types import ModelPlatformType
from camel.messages import BaseMessage
from camel.societies.workforce import Workforce
from camel.toolkits import SearchToolkit
from camel.tasks import Task
from camel.toolkits import FunctionToolimport osmodel = ModelFactory.create(model_platform=ModelPlatformType.OPENAI_COMPATIBLE_MODEL,model_type="你的模型",)# 创建一个 Workforce 实例
workforce = Workforce(description="旅游攻略制作与评估工作组",new_worker_agent_kwargs={'model':model},coordinator_agent_kwargs={'model':model},task_agent_kwargs={'model':model})

这段代码会生成一个名为 一个简单的Workforce 的实例,不过目前它还不包含任何工作节点。

提示:如何自定义 Workforce

如果你只想快速上手,给 Workforce 传入一个描述就足够了;如果你需要更复杂的定制,则可以在初始化时配置工作节点列表、协调器Agent(Coordinator Agent)或任务规划Agent(Task Planner Agent)等高级参数。


2. 定义worker

接下来,我们需要给Workforce定义一些worker。我们希望在这个Workforce里有一个专业的旅游信息搜索助手、一个专业的旅行规划师、一个经验丰富的旅行爱好者。他们分别负责制定计划和评价计划,例如:

search_tool = FunctionTool(SearchToolkit().search_duckduckgo)search_agent = ChatAgent(system_message="""你是一个专业的旅游信息搜索助手。你的职责是:1. 搜索目的地的主要景点信息2. 搜索当地特色美食信息3. 搜索交通和住宿相关信息请确保信息的准确性和实用性。""",model=model,tools=[search_tool],output_language='中文')planner_agent = ChatAgent(system_message="""你是一个专业的旅行规划师。你的职责是:1. 根据景点分布规划合理的游览顺序2. 为每天安排适量的景点和活动3. 考虑用餐、休息等时间4. 注意不同季节的特点请确保行程安排合理且具有可行性。""",model=model,output_language='中文')reviewer_agent = ChatAgent(system_message="""你是一个经验丰富的旅行爱好者。你的职责是:1. 从游客角度评估行程的合理性2. 指出可能的问题和改进建议3. 补充实用的旅行小贴士4. 评估行程的性价比请基于实际旅行经验给出中肯的建议。""",model=model,output_language='中文'
)

当然,你也可以按自己的喜好来定义你的Workforce。

3. 添加工作节点

定义好 Workforce 和worker后,你可以往里面添加工作节点(Worker Nodes)。以一个命名为 search_agent 的示例Agent(Agent)为例,代码如下:

# 添加一个执行网页搜索的Agent
workforce.add_single_agent_worker("一个能够执行网页搜索的Agent",    worker=search_agent,
)

如果需要一次性添加多个工作节点,可以使用方法链(Fluent Interface)来操作:

# 添加工作节点
workforce.add_single_agent_worker("负责搜索目的地相关信息",worker=search_agent
).add_single_agent_worker("负责制定详细行程规划",worker=planner_agent
).add_single_agent_worker("负责从游客角度评估行程",worker=reviewer_agent
)

提示:描述很重要

虽然看似只是一个字符串,但工作节点的描述在任务分配中至关重要。协调器Agent会根据节点描述来分配具体的子任务,因此你最好为每个节点写一个精准且易读的描述。

4. 启动 Workforce 并处理任务

准备好工作节点后,就可以创建一个任务,并让 Workforce 来处理。下面是一个简单的任务示例:

from camel.tasks import Task# 创建一个用于测试的任务
task = Task(content="规划一个3天的巴黎旅行计划。",id="0",  # id可以是任何标记字符串
)

接着,调用 process_task() 方法即可启动 Workforce 的任务处理流程:

# 使用jupyter来运行代码请打开下面两行注释
# import nest_asyncio
# nest_asyncio.apply()# 让 Workforce 处理这个任务
task = workforce.process_task(task)

此时,Workforce 会根据各工作节点的描述,为它们分配合适的子任务,最终返回处理结果。你可以通过以下方式查看任务处理的最终产出:

print(task.result)

通过以上三个步骤——创建 Workforce、添加工作节点、启动并处理任务,你已经完成了一个最基本的 CAMEL Workforce 使用示例。

3.3.2 利用Workforce组建hackathon评审团

在本小节中,我们将通过一个示例,展示如何使用 CAMEL Workforce 协调多个智能体对黑客松项目进行多角度评审。通过为每个智能体赋予不同的角色与个性,我们可以模拟真实评审场景中“智囊团”之间的讨论和打分过程。

我们的创建过程主要分为以下几个阶段:

  1. 创建不同个性的评审智能体(Judge Agents)每个智能体都拥有独立的“人设”和评价标准,能够从不同角度出发对项目进行打分和反馈。

  2. 组建 Workforce将这些个性化评审智能体(以及一个辅助搜索的研究者智能体)加入到一个 Workforce 中,方便统一管理和任务分配。

  1. 创建 Task将具体的项目描述和需要完成的目标封装到一个 Task 对象中,让 Workforce 来调度。

  2. 处理 Task通过调用 Workforce.process_task() 来让评审团协同完成项目评价,并最终生成结果。

下面,我们会一步步地拆解各核心代码模块,帮助你掌握多智能体协作的基本实现流程。

1. 创建评审智能体

import textwrapfrom camel.agents import ChatAgent
from camel.messages import BaseMessage
from camel.models import ModelFactory
from camel.tasks import Task
from camel.toolkits import FunctionTool, SearchToolkit
from camel.types import ModelPlatformType, ModelType
from camel.societies.workforce import Workforceimport os
from dotenv import load_dotenv
load_dotenv()
api_key = os.getenv('QWEN_MAX_API_KEY')model = ModelFactory.create(model_platform=ModelPlatformType.QWEN,model_type=ModelType.QWEN_MAX,model_config_dict={"temperature": 0},api_key=api_key
)def make_judge(persona: str,example_feedback: str,criteria: str,
) -> ChatAgent:msg_content = textwrap.dedent(f"""\你是一个黑客马拉松的评委。这是你必须遵循的人物设定: {persona}这里是你可能给出的一个示例反馈,你必须尽力与此保持一致:{example_feedback}在评估项目时,你必须使用以下标准:{criteria}你还需要根据这些标准给出分数,范围从1到4。给出的分数应类似于3/4、2/4等。"""  # noqa: E501)sys_msg = BaseMessage.make_assistant_message(role_name="黑客马拉松评委",content=msg_content,)agent = ChatAgent(system_message=sys_msg,model=model,)return agent
  • 多人格设定:我们通过 persona 字符串刻画智能体的性格、使用的措辞和关注点,比如 “投资人” 注重商业潜力,“工程师” 注重技术稳健性等。

  • 示例反馈example_feedback 中的示例给智能体一个参考,指导它的表达风格,以确保它在对项目进行评论时能符合角色定位。

  • 评审标准criteria 为智能体提供了打分的准则,如从 1-4 分衡量项目的商业可行性、技术实现、创新程度等。

通过这个函数,我们可以快速生成多个“个性化的评审智能体”。然后我们可以定义一个虚拟的Hackathon项目描述,稍后我们会将它发给评委来打分:

proj_content = textwrap.dedent("""\项目名称: 基于CAMEL的自适应学习助手你的项目如何解决一个真实的问题: 我们的基于CAMEL的自适应学习助手解决了在日益多样化和快速变化的学习环境中个性化教育的挑战。传统的一刀切教育方法往往无法满足个别学习者的独特需求,导致理解上的差距和参与度降低。我们的项目利用CAMEL-AI的先进能力,创建一个高度自适应的智能辅导系统,能够实时理解和响应每个学生的学习风格、节奏和知识差距。解释你的技术以及哪些部分有效: 我们的系统利用CAMEL-AI的上下文学习和多领域应用特性,创建一个多功能的学习助手。核心组件包括:1. 学习者档案分析: 使用自然语言处理评估学生的当前知识、学习偏好和目标。2. 动态内容生成: 利用CAMEL-AI创建个性化的学习材料、解释和练习题,针对每个学生的需求量身定制。3. 自适应反馈循环: 持续分析学生的反应,并实时调整内容的难度和风格。4. 多模态集成: 融合文本、图像和互动元素,以满足不同的学习风格。5. 进度跟踪: 提供学生学习旅程的详细见解,识别优势和改进领域。目前,我们已成功实现学习者档案分析和动态内容生成模块。自适应反馈循环部分功能正常,而多模态集成和进度跟踪功能仍在开发中。"""  # noqa: E501
)

2. 创建辅助智能体

然后,我们将创建 5 个独特的agent,它们稍后将一起协作。在这 5 个agent中,其中四个是评委,我们还创建了一个“助手”智能体(在示例中称为 Researcher),用于在线搜索相关资料并为评审提供更多信息参考。

另一方面,其他四名agent是具有不同角色设定和标准的评委。他们将根据描述以及帮助者收集的信息为项目打分。

# 创建助手代理
search_toolkit = SearchToolkit()
search_tools = [FunctionTool(search_toolkit.search_baidu),
]researcher_agent = ChatAgent(system_message=BaseMessage.make_assistant_message(role_name="研究员",content="你是一名研究人工智能和开源项目的研究员。""你使用网络搜索来保持对最新创新和趋势的了解。",),model=model,tools=search_tools,
)# 创建风险投资家评委
vc_persona = ('你是一位对项目如何扩展为“独角兽”公司的风险投资家。''你在讲话中夹杂着“颠覆性”、“协同效应”和“市场渗透”等流行词。''你不关心技术细节或创新,除非它直接影响商业模式。'
)vc_example_feedback = ('"哇,这个项目在区块链驱动的市场中绝对是颠覆性的!''我可以肯定地看到在金融科技生态系统中的协同应用。''可扩展性极高——这是革命性的!'
)vc_criteria = textwrap.dedent("""\### **对现实世界使用的适用性 (1-4 分)**- **4**: 项目直接解决了一个重要的现实世界问题,并具有明确的可扩展应用。- **3**: 解决方案与现实世界挑战相关,但需要更多的完善以便于实际或广泛使用。- **2**: 对现实世界问题有一定的适用性,但解决方案并不立即实用或可扩展。- **1**: 与现实世界问题几乎没有相关性,需要进行重大更改才能实际使用。"""  # noqa: E501
)vc_agent = make_judge(vc_persona,vc_example_feedback,vc_criteria,
)# 创建资深工程师评委
eng_persona = ('你是一位经验丰富的工程师和完美主义者。你非常注重细节,''对任何技术缺陷都持批评态度,无论多么微小。''你评估每个项目时,仿佛它明天就要投入关键系统使用,''因此你的反馈非常全面,但往往也很苛刻。'
)eng_example_feedback = ('这个项目存在严重的代码效率问题。架构不稳定,内存管理不理想。''我期望接近完美的性能,但这个解决方案在压力测试下几乎无法运行。''它有潜力,但距离部署准备还很远。'
)eng_criteria = textwrap.dedent("""\### **技术实施 (1-4 分)**- **4**: 技术执行无可挑剔,设计复杂,性能高效,架构稳健。- **3**: 技术实施强劲,但可能有改进或进一步发展的空间。- **2**: 项目可以运行,但技术限制或效率低下影响了整体性能。- **1**: 技术实施差,功能、编码或结构存在重大问题。"""  # noqa: E501
)eng_agent = make_judge(eng_persona,eng_example_feedback,eng_criteria,
)# 创建人工智能创始人评委
founder_persona = ('你是一位知名的人工智能初创公司创始人,''总是在寻找人工智能领域的“下一个大事件”。''你重视大胆、富有创意的想法,优先考虑那些突破新领域的项目,''而不是那些改进现有系统的项目。'
)founder_example_feedback = ('这很有趣,但我之前见过类似的方法。''我在寻找一些突破界限、挑战规范的东西。''这个项目最具革命性的部分是什么?让我们看看互联网上的趋势,''以确保这不是已经存在的东西!'
)founder_criteria = textwrap.dedent("""\### **创新 (1-4 分)**- **4**: 项目展示了一个突破性的概念或独特的方法,显著偏离现有方法。- **3**: 项目展示了对已知解决方案的新颖扭曲或引入了一些创新方面。- **2**: 存在一定程度的创新,但项目主要建立在现有想法上,没有重大新贡献。- **1**: 几乎没有创新;项目基于标准方法,创造力极少。"""  # noqa: E501
)founder_agent = make_judge(founder_persona,founder_example_feedback,founder_criteria,
)# 创建CAMEL贡献者评委
contributor_persona = ('你是CAMEL-AI项目的贡献者,总是对人们如何使用它感到兴奋。''你友善且乐观,总是提供积极的反馈,即使对于仍然粗糙的项目。'
)contributor_example_feedback = ('哦,我喜欢你在这里实现CAMEL-AI的方式!''利用其自适应学习能力真是太棒了,你真的很好地利用了上下文推理!''让我查看一下GitHub README,看看是否还有更多潜在的优化。'
)contributor_criteria = textwrap.dedent("""\### **CAMEL-AI的使用 (1-4 分)**- **4**: 出色地集成了CAMEL-AI,充分利用其先进功能,如上下文学习、自适应性或多领域应用。- **3**: 良好地使用了CAMEL-AI,但还有机会利用更多的高级功能。- **2**: 对CAMEL-AI的使用有限,主要依赖基本功能,而没有充分利用其全部潜力。- **1**: CAMEL-AI的集成很少或实施不当,给项目带来的价值很小。"""  # noqa: E501
)contributor_agent = make_judge(contributor_persona,contributor_example_feedback,contributor_criteria,
)
  • 工具集(Toolkit):这里示例给智能体添加了搜索能力,让它可以使用 Google 或 DuckDuckGo 等搜索引擎来获取最新资料。

  • 系统消息:通过“研究者”这一系统消息,将智能体定位为对 AI 和开源技术进行调研的角色。

这样一来,我们就拥有了一个既能执行网络搜索,也能将搜索到的信息反馈给评审智能体的辅助角色。

3. 组建 Workforce

workforce = Workforce('黑客马拉松评审团',coordinator_agent_kwargs={"model": model},task_agent_kwargs={"model": model},new_worker_agent_kwargs={"model": model},
)workforce.add_single_agent_worker('愿景先锋维罗妮卡(评委),一位风险投资家...',worker=vc_agent,
).add_single_agent_worker('批判性约翰(评委),一位经验丰富的工程师...',worker=eng_agent,
).add_single_agent_worker('创新者艾瑞斯(评委),一位知名的AI初创公司创始人...',worker=founder_agent,
).add_single_agent_worker('友好的弗兰基(评委),CAMEL-AI项目的贡献者...',worker=contributor_agent,
).add_single_agent_worker('研究员瑞秋(助手),一位进行在线搜索的研究员...',worker=researcher_agent,
)
  • Workforce 实例:通过给 Workforce 传入一个描述(如“Hackathon Judges”)与一系列可选参数,我们就能快速搭建一个多智能体“工作台”。

  • 添加智能体:使用 add_single_agent_worker() 方法,将评审和研究者智能体逐个添加到同一个 Workforce 中。这里的字符串描述(如 “Visionary Veronica (Judge) …”)非常重要,因为它会帮助内部的协调智能体区分并调配不同角色。

在这一步,我们将所有智能体统一到一个“协作环境”中,让它们可以一起完成后续的任务。

4. 创建并分配任务(Task)

task = Task(content="评估黑客马拉松项目。首先,进行一些与项目相关的信息研究,然后每位评委应相应地给出分数。最后,列出每位评委的意见,同时保留评委的独特身份,以及分数和评委姓名,并给出意见的最终总结。",additional_info=proj_content,id="0",
)
  • Task 内容:要交给 Workforce 处理的具体工作需求,例如“请评审这个项目,给出评分和总结意见”。

  • 附加信息additional_info 可以储存项目背景描述等重要材料,Workforce 会在任务的拆解和传递过程中为各智能体保持这部分信息不变。

  • 唯一标识id 用于标记任务编号,方便后续跟踪任务结果。

5. 处理任务并获取结果

最后,通过下面这行指令,Workforce 就会把任务分发给各个智能体进行协作,完成后可从 task.result 中获取最终的整合结果。

# jupyter环境需要添加上下面两行
# import nest_asyncio
# nest_asyncio.apply()task = workforce.process_task(task)
print(task.result)

通过以上步骤,我们成功地搭建了一个“黑客松评审团”多智能体系统:

  1. 多个性格鲜明的评审——投资人、工程师、AI 创业者、开源社区贡献者;

  2. 辅助性搜索者——为评审提供最新的项目信息;

  1. Workforce 协同——统一调度、分配任务,并整合多方意见得到最终结果。

至此,你已经掌握了 CAMEL Workforce 的核心使用模式。

相关文章:

创建Workforce

创建你的Workforce 3.3.1 简单实践 1. 创建 Workforce 实例 想要使用 Workforce,首先需要创建一个 Workforce 实例。下面是最简单的示例: from camel.agents import ChatAgent from camel.models import ModelFactory from camel.types import Model…...

关于光谱相机的灵敏度

一、‌灵敏度的核心定义‌ ‌光谱灵敏度(单色灵敏度)‌ 描述光谱相机对单色辐射光的响应能力,即探测器对特定波长入射光的输出信号强度与入射光功率的比值。 例如,若在680nm波长下的光谱灵敏度较高,则表示该相机对此…...

【Redis】二、Redis常用数据类型命令学习

目录 一、String 1. SET、GET:设置与读取键值对: 2. DEL:删除键 3. INCR、DECR:自增 / 自减(常用于计数器) 4. APPEND:内容追加 5. EXPIRE:设置过期时间 / 查看剩余时间&#x…...

HarmonyOS基础组件:Button三种类型的使用

简介 HarmonyOS在明年将正式不再兼容Android原生功能,这意味着对于客户端的小伙伴不得不开始学习HarmonyOS开发语言。本篇文章主要介绍鸿蒙中的Button使用。 HarmonyOS中的Button相较于Android原生来说,功能比较丰富,扩展性高,减…...

RT_Thread——快速入门

文章目录 一、RT-Thread 目录结构二、核心文件三、移植时涉及的文件3.1 CPU 部分3.2 BSP 部分 四、内存管理五、启动流程及main函数5.1 启动流程5.2 关键函数速览5.3 main 函数示例 六、数据类型和编程规范6.1 数据类型6.2 函数名6.3 结构体定义6.4 注释规范 七、使用模拟器运行…...

Java 参数值传递机制

一个很经典的问题: java的方法入参 是值传递还是地址传递? 答案是:值传递。 今天排查一个生产问题,数据库链接资源没有关闭。 大致代码逻辑如下: try{Preparestatement ps null;String sql "select * from tableA wher…...

Redis 的 key 的过期策略是怎么实现的

在 Redis 中,有一个 expire 命令,用来设置某个 key 的过期时间,当超过这个时间后,这个 key 就被删除了,我们也就获取不到了,但是 Redis 是如何做到对于每一个设置了过期时间的 key 都能按时删除的呢&#x…...

ROG NUC 2025 :狂暴而冷静的小猛兽

在今年1 月的 CES 展会上,华硕首次披露了ROG NUC 2025,就以突破性紧凑设计桌面级超强性能配置,引发全球科技媒体和游戏爱好者的热议。蛰伏数月,蓄力进化! 华硕自承接英特尔NUC产品线以来,就一直致力于重塑迷…...

origin绘图之【如何将多条重叠、高度重叠的点线图、折线图分开】

在使用 Origin 进行数据可视化时,尤其是在绘制多组数据的折线图或点线图时,我们经常会遇到这样的问题:多条曲线重叠严重,难以区分,导致图形信息密集、可读性差,影响图表的传达效果。 那么,我们该…...

2025第一届轩辕杯--Crypto--WriteUp

2025第一届轩辕杯–Crypto–WriteUp Crypto easyrsa task e 65537 n 1000000000000000000000000000156000000000000000000000000005643 c 418535905348643941073541505434424306523376401168593325605206exp from Crypto.Util.number import inverse, long_to_bytese …...

人工智能范式:技术革命下的认知重构

当生成式AI能够自主创作内容、设计解决方案甚至编写程序时,我们正在见证的不仅是工具革新,更是一场认知范式的根本转变。人工智能范式正在重塑人类理解世界、解决问题和创造价值的基本方式——这种转变将重新定义未来十年的职业逻辑与知识体系。 一、范…...

python训练营打卡第30天

模块和库的导入 知识点回顾: 导入官方库的三种手段导入自定义库/模块的方式导入库/模块的核心逻辑:找到根目录(python解释器的目录和终端的目录不一致) 一、导入官方库 1.标准导入:导入整个库 import mathprint(&quo…...

第29天-python实现mysql数据增删改查

想用Python和Tkinter实现一个MySQL数据库的增删改查应用。首先,我需要确定用户的需求是什么。他们可能想要一个图形界面,方便操作数据库,而不需要直接写SQL语句。用户可能对Python和Tkinter有一定了解,但对如何整合数据库操作可能不太熟悉。 首先,我应该考虑如何设计界面。…...

2025.05.21华为暑期实习机考真题解析第三题

📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. GPU资源租赁优化 问题描述 A先生是一家云计算服务商的资源调度负责人,负责管理公司的GPU资源租赁业务。公司拥有多个高性能GPU核心,并按时间段出租给不同客户使用。每个客户有…...

Datawhale 5月llm-universe 第4次笔记

第四章 构建RAG应用 envs 在 Conda 中,envs 目录是用来存放虚拟环境的地方。 也就是说,你在运行: onda create -n llm-universe python3.10 时,Conda 就会在这个路径下创建一个新的文件夹: makefile D:\Users\…...

滑窗问题实验LC2653(一次遍历维持窗口元素保持排序)

在只有一次遍历(即滑窗每向右移动一步只处理新增元素和删除旧元素)的前提下,要维持当前窗口内元素的全局“可排序”结构 问题背景:LeetCode 2653 - 滑动子数组的美丽值 题目要求在大小为 k 的滑动窗口中,找到第 x 小…...

PHP学习笔记(八)

返回值 值通过可选参数的返回语句返回 return的使用 函数不能返回多个值,但可以通过返回一个数组来得到类似的效果 函数返回一个引用,必须在函数声明和指派返回值给一个变量时都使用引用运算符&: 可变函数 PHP支持可变函数的概念。意味…...

【react18】在styled-components中引入图片报错

在styled-components项目中,遇到背景图片显示不出来的问题。图片的确是引入正确,但是webpack解析路径是有问题的 效果展示 以下这两种写法都不行,无法生效 export const HeaderNavLeft styled.h1width: 176px;height: 69px;background: ur…...

693SJBH基于.NET的题库管理系统

计算机与信息学院 本科毕业论文(设计)开题报告 论文中文题目 基于asp.net的题库管理系统设计与实现 论文英文题目 Asp.net based database management system design and Implementation 学生姓名 专业班级 XXXXXX专业08 班 ⒈选题的背景和意…...

centos系统redis-dump安装

1. ​Ruby 环境​ Redis-dump 是一个 Ruby 工具,需先安装 Ruby 和 RubyGems。 安装依赖​: sudo yum install -y curl gpg2 gcc-c patch readline readline-devel zlib zlib-devel libyaml-devel libffi-devel openssl-devel make bzip2 autoconf aut…...

如何利用 Conda 安装 Pytorch 教程 ?

如何利用 Conda 安装 Pytorch 教程 ? 总共分为六步走: (1)第一步:验证conda 环境是否安装好? 1) conda -V2) conda --version(2)第二步:查看现有环境 conda env list…...

FPGA降低功耗研究

FPGA降低功耗研究 首先要明白一点:我们的核心目标是在维持性能的前提下,通过工艺、架构、设计方法学和系统级策略的协同优化,降低动态功耗、静态功耗和短路功耗。 本篇文章则是聚焦于 FPGA 设计阶段 的功耗优化,主要从 RTL 代码设…...

软考 系统架构设计师系列知识点之杂项集萃(67)

接前一篇文章:软考 系统架构设计师系列知识点之杂项集萃(66) 第108题 RISC(精简指令系统计算机)的特点不包括()。 A. 指令长度固定,指令种类尽量少 B. 寻址方式尽量丰富&#xff…...

第十节第三部分:常见API:传统时间:Date日期类、SimpleDateFormat

Date日期类常用方法 时间格式常用符号 Date日期类总结 为什么用SimpleDateFormat SimpleDateFormat常见方法 SimpleDateFormat解析字符串时间成为日期对象 SimpleDateFormat总结 代码: 代码一:Date日期类 package com.itheima.Time;import java.util.D…...

Python学习Day1:安装

Python的安装 1.安装python 打开python的官网,我们下载3.6.8版本Python Release Python 3.6.8 | Python.org 根据自己的电脑来下载对应的python版本 如图所示: 我已经下载完成,就是这样, 安装页面的第一排是自动安装&#xf…...

Java安全-Servlet内存马

内存马简介 内存马是指将恶意代码注入到内存中,达到无文件落地的效果,使得被攻击方难以察觉。由于是无文件的形式,可以绕过部分基于文件检测的杀软。而 Servlet 内存马是基于 Java Servlet 技术,动态将恶意代码注入到 Tomcat 内存…...

Mariadb cpu 93% 问题

最近项目遇到cpu平均使用率93% 一、登录数据库服务查看具体情况 可以看到服务器负载很高,,mariadb CPU使用已达到接近380.4% (因为是8核,所以会有超过100%的情况)。如下图: 二、排查是否有耗时较长sql 在…...

LeetCode222_完全二叉树的结点个数

LeetCode222_完全二叉树的结点个数 标签:#位运算 #树 #二分查找 #二叉树Ⅰ. 题目Ⅱ. 示例 0. 个人方法 标签:#位运算 #树 #二分查找 #二叉树 Ⅰ. 题目 给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下&…...

linux 查看java的安装路径

一、验证Java安装状态 java -version正常安装会显示版本信息: openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)二、检查环境变量配置 若已配置JAVA_HOME&#…...

day32 python解释性库PDPbox

目录 一、初识PDPbox官方文档 二、准备鸢尾花数据集和训练模型 三、使用PDPbox进行解释性分析 1. 导入类并实例化对象 2. 调用plot方法绘制图形 3. 探索返回值的意义 四、总结与感悟 作为一名正在学习机器学习的学生,今天要学习一个非常有趣的库——PDPbox&am…...

LVLM-AFAH论文精读

Basic Information 标题:Your Large Vision-Language Model Only Needs A Few Attention Heads For Visual Grounding作者:Seil Kang, Jinyeong Kim, Junhyeok Kim, Seong Jae Hwang机构:Yonsei Universit…...

蓝桥杯3503 更小的数

问题描述 小蓝有一个长度均为 n 且仅由数字字符 0∼9 组成的字符串,下标从 0 到 n−1,你可以将其视作是一个具有 n 位的十进制数字 num,小蓝可以从 num 中选出一段连续的子串并将子串进行反转,最多反转一次。 小蓝想要将选出的子…...

5.21本日总结

一、英语 复习list4list26 二、数学 学完14讲,1000题13讲写完 三、408 学习计网5.3剩余内容 四、总结 高数本月结束知识点学习,15讲知识点与14讲的题目同步进行。408剩余两本书要加快学习进度。 五、明日计划 英语:复习lsit5list25 …...

【25软考网工】第七章(3) UOS Linux防火墙配置和Web应用服务配置

博客主页:christine-rr-CSDN博客 ​​​专栏主页:软考中级网络工程师笔记 ​​​​ 大家好,我是christine-rr !目前《软考中级网络工程师》专栏已经更新三十多篇文章了,每篇笔记都包含详细的知识点,希望能帮助到你&am…...

Python数据分析基础

Python数据分析入门 介绍 在这个教程中,我们将学习如何使用Python来进行基本的数据分析。 安装必要的库 为了开始,你需要安装以下Python库: NumPyPandasMatplotlib 示例代码 import numpy as np import pandas as pd import matplotli…...

spring cloud config更新配置

在开发微服务时,往往需要有开发环境、测试环境和生产环境,手动修改配置环境是一件很麻烦的事情,因此,这里使用spring cloud config管理配置环境。要使用spring cloud config,需要先在GitHub搭建一个仓库。 一、仓库搭…...

小米汽车二期工厂下月将竣工,产能提升助力市场拓展

在新能源汽车市场竞争日益激烈的当下,小米汽车传来重要进展消息。据多方信息显示,小米汽车二期工厂下月即将竣工,这一关键节点的到来,有望为小米汽车的产能提升与市场布局带来重大突破。​ 小米汽车二期工厂位于北京亦庄&#xff…...

【单片机】如何产生负电压?

以下是对知乎文章《单片机中常用的负电压是这样产生的!》的解析与总结,结合电路原理、应用场景及讨论要点展开: 一、负电压产生的核心原理 负电压本质是相对于参考地(GND)的电势差为负值,需通过电源或储能…...

Mcu_Bsdiff_Upgrade

系统架构 概述 MCU BSDiff 升级系统通过使用二进制差分技术,提供了一种在资源受限的微控制器上进行高效固件更新的机制。系统不传输和存储完整的固件映像,而是只处理固件版本之间的差异,从而显著缩小更新包并降低带宽要求。 该架构遵循一个…...

阿里云ecs 8核 16G 内存 装有redis6 分配了3G内存,和2个tomcat 每个tomcat 4G 服务器反应迟钝,如何确认不是redis的问题

我们经常用redis 但遇到tomcat timeout的时候,如何确认不是redis的问题。 不能因为这个再去搞个redis 压力测试。有没有更省劲的方法来确认不是redis的问题 以下是针对 阿里云 ECS(8核16G,Redis 6分配3G内存,2个Tomcat各分配4G&a…...

机器学习-KNN算法

1.机器学习概述(全部流程) 获取数据:from sklearn.datasets import load_wine 数据处理(数据集划分、标准化):from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler 特征工程:from s…...

【数据结构 · 初阶】- 快速排序

目录 一. Hoare 版本 1. 单趟 2. 整体 3. 时间复杂度 4. 优化(抢救一下) 4.1 随机选 key 4.2 三数取中 二. 挖坑法 格式优化 三. 前后指针(最好) 四. 小区间优化 五. 改非递归 快速排序是 Hoare 提出的一种基于二叉树…...

HTTPS和HTTP区别

客户端向服务器发送HTTPS请求。服务器响应并发送其数字证书。客户端通过证书的公钥验证数字签名的有效性,如果有效,客户端生成一个随机的对称密钥。客户端使用公钥对这个对称密钥进行加密,然后将加密后的密钥发送给服务器。服务器使用自己的私…...

自动驾驶中的预测控制算法:用 Python 让无人车更智能

自动驾驶中的预测控制算法:用 Python 让无人车更智能 自动驾驶技术近年来取得了令人惊叹的进步,AI 与边缘计算的结合让车辆能够实时感知环境、规划路径并执行驾驶决策。其中,预测控制(Model Predictive Control,MPC) 作为一种先进的控制算法,凭借其对未来驾驶行为的优化…...

分享一些实用的网址

第一个:视频转化为动图 网址:https://www.freeconvert.com/zh/convert/mp4-to-gif 当然还有很多其他的功能,可以按需选择使用。 第二个:ASCII字符串到16进制在线转换工具 网址 :https://coding.tools/cn/ascii-to-…...

打开小程序提示请求失败(小程序页面空白)

1、小程序代码是商城后台下载的还是自己编译的 (1)要是商城后台下载的,检查设置里面的域名是不是https的 (2)要是自己编译的,检查app.js里面的接口域名是不是https的,填了以后有没有保存 注&a…...

Taro 安全区域

目录 一、问题描述 二、问题解决 1、顶部刘海区 2、底部小黑条 一、问题描述 安全区域主要是为了避免刘海屏或底部栏遮挡,而造成的不良显示效果。 本次将针对以下两点进行考量: 1、顶部刘海屏区 2、苹果X底部小黑条 二、问题解决 通过Taro.getS…...

DL00988-稀疏增强数据transformer船舶AIS轨迹预测含完整数据集

提升科研效率,精准预测船舶AIS轨迹!文末有完整获取方式 作为研究生和科研人员,是否在进行船舶轨迹预测时遇到数据稀疏、轨迹复杂等问题?现在,我们为你提供一款基于稀疏增强数据Transformer的船舶AIS轨迹预测工具&#…...

重写B站(网页、后端、小程序)

1. 网页端 1.1 框架 Vue ElementUI axios 1.2 框架搭建步骤 搭建Vue 1.3 配置文件 main.js import {createApp} from vue import ElementUi from element-plus import element-plus/dist/index.css; import axios from "axios"; import router from…...

SOPHGO算能科技BM1688内存使用与编解码开发指南

1. BM1688内存分配接口详解 1.1 设备内存分配接口区别 BM1688提供了三个主要的设备内存分配接口,它们的主要区别如下: // 基本设备内存分配接口 void* bm_malloc_device_byte(bm_handle_t handle, unsigned int size);// 指定heap区域的设备内存分配 void*</...