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

wow-agent---Day3 Zigent 智能代理开发框架

这个框架是课程讲解的,但资料比较少,觉得框架比较小众,所以这里只分析代码,打算把更多的精力放在metagpt的学习上,毕竟还是要学教为主流的框架,这对后续维护升级都有帮助,当然感兴趣作为研究,可以研究下这个小框架。

代码目的是要生成一个一个教程编写智能体,其主要功能是输入教程主题,然后自动生成完整的教程内容,首先定义WriteDirectoryAction类,用于生成教程的目录,然后再定义生成教程的类,最后是执行层的代码。

Python复制
class WriteDirectoryAction(BaseAction):"""生成教程目录结构的动作类。该类用于根据给定的主题和语言,生成教程的目录结构。目录结构以字典格式输出,包含主目录和子目录,每个目录标题都有实际意义。Attributes:action_name (str): 动作名称,固定为"WriteDirectory"。action_desc (str): 动作描述,固定为"Generate tutorial directory structure"。params_doc (dict): 参数文档,包含主题(topic)和语言(language)两个参数的类型和说明。Methods:__call__(**kwargs): 根据给定的主题和语言生成教程目录结构。Example:>>> action = WriteDirectoryAction()>>> result = action(topic="Python编程", language="Chinese")>>> print(result){'topic': 'Python编程', 'language': 'Chinese', 'directory_data': {'title': 'Python编程', 'directory': [{'基础概念': ['变量', '数据类型']}, {'进阶应用': ['函数', '模块']}]}}Note:该类依赖于LLM模型来生成目录结构,如果LLM模型返回的数据不符合预期格式,将返回默认的目录数据。"""def __init__(self) -> None:"""初始化WriteDirectoryAction类。初始化时设置动作名称、描述和参数文档。"""action_name = "WriteDirectory"action_desc = "Generate tutorial directory structure"params_doc = {"topic": "(Type: string): The tutorial topic name","language": "(Type: string): Output language (default: 'Chinese')"}super().__init__(action_name, action_desc, params_doc)def __call__(self, **kwargs):"""根据给定的主题和语言生成教程目录结构。Args:**kwargs: 关键字参数,包含主题(topic)和语言(language)两个参数。topic (str): 教程主题名称,默认为空字符串。language (str): 输出语言,默认为"Chinese"。Returns:dict: 包含主题、语言和目录数据的字典。Raises:json.JSONDecodeError: 如果LLM模型返回的数据不符合JSON格式。"""topic = kwargs.get("topic", "")language = kwargs.get("language", "Chinese")directory_prompt = f"""请为主题"{topic}"生成教程目录结构,要求:1. 输出语言必须是{language}2. 严格按照以下字典格式输出: {{"title": "xxx", "directory": [{{"章节1": ["小节1", "小节2"]}}, {{"章节2": ["小节3", "小节4"]}}]}}3. 目录层次要合理,包含主目录和子目录4. 每个目录标题要有实际意义5. 不要有多余的空格或换行"""# 调用 LLM 生成目录directory_data = llm.llm_chain.invoke({"prompt": directory_prompt})try:directory_data = json.loads(directory_data)except:directory_data = {"title": topic, "directory": []}return {"topic": topic,"language": language,"directory_data": directory_data}
class WriteContentAction(BaseAction):"""生成教程详细内容的动作类。该类用于根据给定的教程标题、章节、小节标题、目录结构和语言,生成教程的详细内容。内容以Markdown格式输出,包含代码示例(如有),长度适中。Attributes:action_name (str): 动作名称,固定为"WriteContent"。action_desc (str): 动作描述,固定为"Generate detailed tutorial content based on directory structure"。params_doc (dict): 参数文档,包含标题(title)、章节(chapter)、目录数据(directory_data)和语言(language)四个参数的类型和说明。Methods:__call__(**kwargs): 根据给定的参数生成教程详细内容。Example:>>> action = WriteContentAction()>>> directory_data = {'title': 'Python编程', 'directory': [{'基础概念': ['变量', '数据类型']}, {'进阶应用': ['函数', '模块']}]}>>> content = action(title="变量", chapter="基础概念", language="Chinese", directory_data=directory_data)>>> print(content)# 变量在Python中,变量是用来存储数据的容器...Note:该类依赖于LLM模型来生成内容,如果LLM模型返回的数据不符合预期,可能需要手动调整。"""def __init__(self) -> None:"""初始化WriteContentAction类。初始化时设置动作名称、描述和参数文档。"""action_name = "WriteContent"action_desc = "Generate detailed tutorial content based on directory structure"params_doc = {"title": "(Type: string): The section title","chapter": "(Type: string): The chapter title","directory_data": "(Type: dict): The complete directory structure", "language": "(Type: string): Output language (default: 'Chinese')"}super().__init__(action_name, action_desc, params_doc)def __call__(self, **kwargs):"""根据给定的参数生成教程详细内容。Args:**kwargs: 关键字参数,包含标题(title)、章节(chapter)、语言(language)和目录数据(directory_data)四个参数。title (str): 小节标题,默认为空字符串。chapter (str): 章节标题,默认为空字符串。language (str): 输出语言,默认为"Chinese"。directory_data (dict): 完整的目录结构,默认为空字典。Returns:str: 生成的教程详细内容。Raises:Exception: 如果LLM模型调用失败。"""title = kwargs.get("title", "")chapter = kwargs.get("chapter", "")language = kwargs.get("language", "Chinese")directory_data = kwargs.get("directory_data", {})content_prompt = f"""请为教程章节生成详细内容:教程标题: {directory_data.get('title', '')}章节: {chapter}小节: {title}要求:1. 内容要详细且准确2. 如果需要代码示例,请按标准规范提供3. 使用 Markdown 格式4. 输出语言必须是{language}5. 内容长度适中,通常在500-1000字之间"""# 调用 LLM 生成内容content = llm.llm_chain.invoke({"prompt": content_prompt})return content
class TutorialAssistant(BaseAgent):"""教程生成助手类,管理目录和内容创建。该类用于生成完整教程,包括目录结构和详细内容。它依赖于WriteDirectoryAction和WriteContentAction两个动作类来分别生成目录结构和详细内容。Attributes:name (str): 助手名称,固定为"TutorialAssistant"。role (str): 助手角色描述,说明其专业领域和能力。llm (BaseLLM): 语言模型实例,用于生成目录结构和详细内容。language (str): 输出语言,默认为"Chinese"。directory_action (WriteDirectoryAction): 生成目录结构的动作实例。content_action (WriteContentAction): 生成详细内容的动作实例。Methods:_generate_tutorial(directory_data): 根据目录结构生成完整教程内容。__call__(task): 处理教程生成任务,生成目录结构和详细内容,并保存结果。_add_tutorial_example(): 添加教程生成助手的示例用例。Example:>>> assistant = TutorialAssistant(llm)>>> task = TaskPackage(instruction="Create a Python tutorial for beginners")>>> result = assistant(task)>>> print(result.answer)# Python基础教程## 目录1. 第一章:Python介绍1.1 什么是Python1.2 环境搭建...Note:该类假设语言模型能够正常工作,如果语言模型返回的数据不符合预期,可能需要手动调整。"""def __init__(self,llm: BaseLLM,language: str = "Chinese"):"""初始化TutorialAssistant类。初始化时设置助手名称、角色描述、语言模型实例、输出语言、目录动作实例和内容动作实例。Args:llm (BaseLLM): 语言模型实例。language (str, optional): 输出语言,默认为"Chinese"。"""name = "TutorialAssistant"role = """You are a professional tutorial writer. You can create well-structured, comprehensive tutorials on various topics. You excel at organizing content logically and explaining complex concepts clearly."""super().__init__(name=name,role=role,llm=llm,)self.language = languageself.directory_action = WriteDirectoryAction()self.content_action = WriteContentAction()# Add example for the tutorial assistantself._add_tutorial_example()def _generate_tutorial(self, directory_data: Dict) -> str:"""根据目录结构生成完整教程内容。Args:directory_data (Dict): 目录结构数据,包含教程标题和章节信息。Returns:str: 生成的完整教程内容。Raises:Exception: 如果目录结构数据不符合预期格式。"""full_content = []title = directory_data["title"]full_content.append(f"# {title}\n")# Generate table of contentsfull_content.append("## 目录\n")for idx, chapter in enumerate(directory_data["directory"], 1):for chapter_title, sections in chapter.items():full_content.append(f"{idx}. {chapter_title}")for section_idx, section in enumerate(sections, 1):full_content.append(f"   {idx}.{section_idx}. {section}")full_content.append("\n---\n")# Generate content for each sectionfor chapter in directory_data["directory"]:for chapter_title, sections in chapter.items():for section in sections:content = self.content_action(title=section,chapter=chapter_title,directory_data=directory_data,language=self.language)full_content.append(content)full_content.append("\n---\n")return "\n".join(full_content)def __call__(self, task: TaskPackage):"""处理教程生成任务,生成目录结构和详细内容,并保存结果。Args:task (TaskPackage): 教程生成任务,包含指令信息。Returns:TaskPackage: 处理后的任务,包含生成的教程内容和完成状态。Raises:Exception: 如果任务指令不符合预期格式。"""# Extract topic from tasktopic = task.instruction.split("Create a ")[-1].split(" tutorial")[0]if not topic:topic = task.instruction# Generate directory structuredirectory_result = self.directory_action(topic=topic,language=self.language)print(directory_result)# Generate complete tutorialtutorial_content = self._generate_tutorial(directory_result["directory_data"])# Save the resulttask.answer = tutorial_contenttask.completion = "completed"return taskdef _add_tutorial_example(self):"""添加教程生成助手的示例用例。示例用例用于演示教程生成助手的工作流程和输出格式。"""exp_task = "Create a Python tutorial for beginners"exp_task_pack = TaskPackage(instruction=exp_task)topic = "Python基础教程"act_1 = AgentAct(name=ThinkAct.action_name,params={INNER_ACT_KEY: """First, I'll create a directory structure for the Python tutorial, then generate detailed content for each section."""})obs_1 = "OK. I'll start with the directory structure."act_2 = AgentAct(name=self.directory_action.action_name,params={"topic": topic, "language": self.language})obs_2 = """{"title": "Python基础教程", "directory": [{"第一章:Python介绍": ["1.1 什么是Python", "1.2 环境搭建"]},{"第二章:基础语法": ["2.1 变量和数据类型", "2.2 控制流"]}]}"""act_3 = AgentAct(name=self.content_action.action_name,params={"title": "什么是Python","chapter": "第一章:Python介绍","directory_data": json.loads(obs_2),"language": self.language})obs_3 = """# 第一章:Python介绍\n## 什么是Python\n\nPython是一种高级编程语言..."""act_4 = AgentAct(name=FinishAct.action_name,params={INNER_ACT_KEY: "Tutorial structure and content generated successfully."})obs_4 = "Tutorial generation task completed successfully."exp_act_obs = [(act_1, obs_1), (act_2, obs_2), (act_3, obs_3), (act_4, obs_4)]self.prompt_gen.add_example(task=exp_task_pack,action_chain=exp_act_obs)

执行层:

if __name__ == "__main__":#这行代码创建了一个TutorialAssistant实例,传入了一个语言模型llm。这个实例将用于生成教程assistant = TutorialAssistant(llm=llm)# 交互式生成教程FLAG_CONTINUE = True#使用一个while循环来持续接收用户输入,直到用户选择不再生成新的教程。while FLAG_CONTINUE:#通过input函数接收用户想要生成的教程主题。input_text = input("What tutorial would you like to create?\n")#将用户输入的主题封装成一个TaskPackage对象,这个对象将传递给TutorialAssistant实例。task = TaskPackage(instruction=input_text)#调用TutorialAssistant实例的__call__方法来处理任务,生成教程内容result = assistant(task)#将生成的教程内容打印到控制台。print("\nGenerated Tutorial:\n")print(result.answer)# 创建输出目录,使用当前时间创建一个唯一的输出目录,确保每次生成的教程文件不会互相覆盖。output_dir = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")os.makedirs(output_dir, exist_ok=True)# 处理文件名,确保有效safe_input_text = "".join([c if c.isalnum() or c in (' ', '_') else '_' for c in input_text])output_file = os.path.join(output_dir, f"{safe_input_text}.md")# 保存文件with open(output_file, 'w', encoding='utf-8') as f:f.write(result.answer)# 询问用户是否继续#通过input函数询问用户是否想要继续生成新的教程,如果用户输入n,则退出循环。if input("\nDo you want to create another tutorial? (y/n): ").lower() != "y":FLAG_CONTINUE = False

相关文章:

wow-agent---Day3 Zigent 智能代理开发框架

这个框架是课程讲解的,但资料比较少,觉得框架比较小众,所以这里只分析代码,打算把更多的精力放在metagpt的学习上,毕竟还是要学教为主流的框架,这对后续维护升级都有帮助,当然感兴趣作为研究&am…...

python 入门

1. Python 概述 1.1 简介 python 是一种面向对象的解释型编程语言,由吉多范罗苏姆开发; 1991 年,公开发行版发布; 因其可以将其他语言制作的模块轻松联接在一起,又被称作胶水语言; 1.2 优点 简单易学&…...

sentinel微服务保护

学习链接 SpringCloudRabbitMQDockerRedis搜索分布式 文章目录 学习链接1.初识Sentinel1.1.雪崩问题及解决方案1.1.1.雪崩问题1.1.2.超时处理1.1.3.仓壁模式1.1.4.断路器1.1.5.限流1.1.6.总结 1.2.服务保护技术对比1.3.Sentinel介绍和安装1.3.1.初识Sentinel官网地址github地址…...

接口测试Day10-封装IHRM登录

-登录接口 普通方式实现 登录接口对象层 思路: 动态变化的,写入参数固定不变,直接写到方法实现内响应结果,通过返回值 return 分析: 封装实现: 登录接口测试用例层 封装断言方法 1、创建 文件 assert_uti…...

什么是IP地址、子网掩码、网关、DNS

简单解释 IP地址在网络中用于标识一个节点(或者网络设备的接口) IP地址用于IP报文在网络中的寻址 一个IPv4地址有32 bit。 IPv4地址通常采用“点分十进制”表示。 IPv4地址范围:0.0.0.0~255.255.255.255 网络部分:用来标识一个网络,代表IP地址所属网络。 主机部分:…...

python编程-OpenCV(图像读写-图像处理-图像滤波-角点检测-边缘检测)角点检测

角点检测(Corner Detection)是计算机视觉和图像处理中重要的步骤,主要用于提取图像中的关键特征,以便进行后续的任务,比如图像匹配、物体识别、运动跟踪等。下面介绍几种常用的角点检测方法及其应用。 1. Harris角点检…...

软路由系统iStoreOS 一键安装 docker compose

一键安装命令 大家好!今天我来分享一个快速安装 docker-compose 的方法。以下是我常用的命令,当前版本是 V2.32.4。如果你需要最新版本,可以查看获取docker compose最新版本号 部分,获取最新版本号后替换命令中的版本号即可。 w…...

Invicti-Professional-V25.1

01 更新介绍 此更新包括对内部代理的更改。内部扫描代理的当前版本为 25.1.0。内部身份验证验证程序代理的当前版本为 25.1.0。#新功能现在,单击扫描摘要屏幕中的预设扫描图标会将您重定向到具有过滤视图的 “最近扫描” 页面,从而改进导航和对相关扫描…...

【QT】: 初识 QWidget 控件 | QWidget 核心属性(API) | qrc 文件

🔥 目录 1. 控件概述 控件体系的发展阶段 2. QWidget 核心属性 2.1 核心属性概览2.2 用件可用(Enabled) 2.3 坐标系(Geometry) **实例 1: 控制按钮的位置**实例 2: 表白 程序 2.4 窗口标题(windowTiltle&a…...

Spring WebFlux

文章目录 一、概述1、Spring体系定位2、Spring MVC和WebFlux差异 二、入门1、依赖2、ReactorHttpHandlerAdapter(main启动)3、DispatcherHandler(SpringWebFlux启动)4、WebFilter 三、DispatcherHandler理解1、handle 前置知识&am…...

【AI | pytorch】torch.polar的使用

一、torch.polar的使用 torch.polar 是 PyTorch 中用来生成复数张量的一个函数,但它与数学中的复数表达式 ( z re^{i\theta} ) 是等价的。 具体来说,torch.polar(abs, angle) 接受两个实数张量参数: abs:表示复数的模长&#…...

AWTK fscript 中的 输入/出流 扩展函数

fscript 是 AWTK 内置的脚本引擎,开发者可以在 UI XML 文件中直接嵌入 fscript 脚本,提高开发效率。本文介绍一下 fscript 中的 iostream 扩展函数 1.iostream_get_istream 获取输入流对象。 原型 iostream_get_istream(iostream) > object示例 va…...

【多线程】线程池

一、什么是线程池 线程池(Thread Pool)是一种多线程并发执行的设计模式,它通过维护一个线程集合来执行多个任务,避免频繁地创建和销毁线程,提高系统性能和响应速度。 就好比如你经营了一家餐饮店,你名下有…...

小结:路由器配置和管理 RIP协议

华为路由器中配置和管理 RIP(Routing Information Protocol)的相关指令主要分为以下几个部分:基础配置指令、接口配置指令、路由控制指令和调试指令。以下是总结: 1. 启用 RIP 协议 [Huawei] rip 1rip 1:表示创建并启…...

基于海思soc的智能产品开发(高、中、低soc、以及和fpga的搭配)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 市场上关于图像、音频的soc其实非常多,这里面有高、中、低档,开发方式也不相同。之所以会这样,有价格的因素&am…...

于灵动的变量变幻间:函数与计算逻辑的浪漫交织(下)

大家好啊,我是小象٩(๑ω๑)۶ 我的博客:Xiao Xiangζั͡ޓއއ 很高兴见到大家,希望能够和大家一起交流学习,共同进步。 这一节我们主要来学习单个函数的声明与定义,static和extern… 这里写目录标题 一、单个函数…...

偷偷的学Java

序章:为何要偷偷学Java? • Java,不仅仅是一种编程语言 • 偷偷学Java,快速提升你的竞争力 •Java学习秘籍 第一章:Java的神秘面纱 •Java的起源与发展历程 •Java的生态系统与应用场景 • Java与其他编程语言的…...

以单用户模式启动 Linux 的方法

注:本文为 “Linux 启动单用户模式” 相关文章合辑。 未整理去重。 以单用户模式启动 linux 的三种方法 作者: Magesh Maruthamuthu 译者: LCTT Xiaobin.Liu 2020-05-03 23:01 单用户模式,也被称为维护模式,超级用户…...

【AI论文】生成式视频模型是否通过观看视频学习物理原理?

摘要:AI视频生成领域正经历一场革命,其质量和真实感在迅速提升。这些进步引发了一场激烈的科学辩论:视频模型是否学习了能够发现物理定律的“世界模型”,或者,它们仅仅是复杂的像素预测器,能够在不理解现实…...

【有啥问啥】Contrastive Captioners(CoCa):对比式图像描述模型——图像-文本基础模型的新范式

Contrastive Captioners(CoCa):对比式图像描述模型——图像-文本基础模型的新范式 引言 随着深度学习技术的发展,多模态模型在处理视觉和语言任务方面的能力逐渐增强。特别是大规模预训练模型的兴起,使得这些模型可以快速迁移到许多下游任务…...

Python(十七)excel指定列自动翻译成英文

前言 本章主要讲述在excel的指定列后面添加一列,并翻译成英文 一、效果图 二、代码 实际需求: # -*- codeing utf-8 -*- # time: 2025/1/16 16:32 # Author : Mikasa # # Aim:自动将客户发的货物清单里的商品名称,翻译成英文…...

【论文投稿】探秘计算机视觉算法:开启智能视觉新时代

目录 引言 一、计算机视觉算法基石:图像基础与预处理 二、特征提取:视觉信息的精华萃取 三、目标检测:从图像中精准定位目标 四、图像分类:识别图像所属类别 五、语义分割:理解图像的像素级语义 六、计算机视觉…...

【机器学习实战入门】使用LSTM机器学习预测股票价格

机器学习在股票价格预测中有重要的应用。在这个机器学习项目中,我们将讨论如何预测股票的收益。这是一个非常复杂的任务,充满了不确定性。我们将会把这个项目分成两部分进行开发: 首先,我们将学习如何使用 LSTM 神经网络预测股票…...

(一)相机标定——四大坐标系的介绍、对应转换、畸变原理以及OpenCV完整代码实战(C++版)

一、四大坐标系介绍 1,世界坐标系 从这个世界(world)的视角来看物体 世界坐标系是3D空间坐标,每个点的位置用 ( X w , Y w , Z w ) (X_w,Y_w,Z_w) (Xw​,Yw​,Zw​)表示 2,相机坐标系 相机本身具有一个坐标系&…...

Bootstrap 下拉菜单

Bootstrap 下拉菜单 Bootstrap 是一个流行的前端框架,它提供了许多预构建的组件,其中之一就是下拉菜单。下拉菜单是一个交互式元素,允许用户从一系列选项中选择一个。在本篇文章中,我们将详细介绍如何在 Bootstrap 中创建和使用下…...

WinHttp API接口辅助类实现GET POST网络通讯

1、简述 近期需要在MFC基础上开发网络Http通讯,开始使用的WinINet进行通讯,后面发现WinINet对连接超时这块不支持设置,在网上搜索了几种方式效果都不太好,于是决定用WinHttp API接口进行通讯,分别对GET、POST进行了封装。 2、使用到接口 2.1、WinHttpOpen WinHttpOpen 是…...

Elasticsearch实战应用

嘿,小伙伴们,今天咱们来唠唠Elasticsearch,这可是个超厉害的搜索引擎,能帮你在海量数据里快速找到想要的东西,就像给你的数据装上了“放大镜”。 一、啥是Elasticsearch 简单来说,Elasticsearch就是一个基…...

MySQL存储过程

存储过程: 事先经过编译并存储在数据库中的一段sql语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的,思想上就是sql语言层面的代码封装与重用 …...

安路FPGA开发工具TD:问题解决办法 及 Tips 总结

安路科技(Anlogic)是一家专注于高性能、低功耗可编程逻辑器件(FPGA)设计和生产的公司。其提供的开发工具TD(TangDynasty)是专门为安路FPGA系列产品设计的集成开发环境(IDE)。以下是对…...

高精度阶乘C++实现

高精度计算&#xff0c;实际上就是模拟竖式计算&#xff0c;代码如下&#xff0c;请慢慢消化&#xff0c;如有不足或建议&#xff0c;请在评论区留言 这个阶乘操作实际上就是高精度乘法的运用&#xff0c;可以非常容易的在考场上写出来 #include <bits/stdc.h> using na…...

PageHelper快速使用

依赖 <!--分页插件PageHelper--> <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>1.4.7</version> </dependency>示例 /** * 封装分页结果…...

“AI 辅助决策系统:决策路上的智慧领航员

在当今瞬息万变的时代&#xff0c;无论是企业的运营管理&#xff0c;还是个人在生活中的重大抉择&#xff0c;都需要精准、高效的决策。然而&#xff0c;信息的繁杂和未来的不确定性&#xff0c;常常让决策变得困难重重。这时&#xff0c;AI 辅助决策系统宛如一位智慧的领航员&…...

[Linux] linux 系统中如何添加自动启动程序

背景&#xff1a;在嵌入式系统中&#xff0c;需要开机自动启动所编写的程序【可执行文件】。 解决方法&#xff1a;原理就是Linux开机会自动执行一些文件。在/etc/profile中添加执行程序的脚本。/etc/profile 是一个系统级的配置文件&#xff0c;在用户登录Linux系统时自动执行…...

Linux之网络套接字

Linux之网络套接字 一.IP地址和端口号二.TCP和UDP协议2.1网络字节序 三.socket编程的常见API四.模拟实现UDP服务器和客户端五.模拟实现TCP服务器和客户端 一.IP地址和端口号 在了解了网络相关的基础知识之后我们知道了数据在计算机中传输的流程并且发现IP地址在其中占据了确定…...

LeetCode 2266.统计打字方案数:排列组合

【LetMeFly】2266.统计打字方案数&#xff1a;排列组合 力扣题目链接&#xff1a;https://leetcode.cn/problems/count-number-of-texts/ Alice 在给 Bob 用手机打字。数字到字母的 对应 如下图所示。 为了 打出 一个字母&#xff0c;Alice 需要 按 对应字母 i 次&#xff0c…...

Jmeter 动态参数压力测试时间段预定接口

&#x1f3af; 本文档详细介绍了如何使用Apache JMeter进行压力测试&#xff0c;以评估预定接口在高并发场景下的性能表现。通过创建线程组模拟不同数量的用户并发请求&#xff0c;利用CSV文件动态配置时间段ID和用户token&#xff0c;确保了测试数据的真实性和有效性。文档中还…...

Learning Prompt

说明&#xff1a;这是我的学习笔记&#xff0c;很多内容转自网络&#xff0c;请查阅文章末尾的参考资料。 目录 基本要求(C.R.E.A.T.E)总结文章(Summarise)改写文章(Rewrite)根据参考资料回答问题(Question & Answer)参考资料 基本要求(C.R.E.A.T.E) Character This is th…...

微信消息群发(定时群发)-UI自动化产品(基于.Net平台+C#)

整理 | 小耕家的喵大仙 出品 | CSDN&#xff08;ID&#xff1a;lichao19897314&#xff09; 关联源码及工具下载https://download.csdn.net/download/lichao19897314/90096681https://download.csdn.net/download/lichao19897314/90096681https://download.csdn.net/download/…...

华为HuaweiCloudStack(一)介绍与架构

本文简单介绍了华为HCS私有云解决方案&#xff0c;并从下至上介绍HCS的整体架构&#xff0c;部署架构、部署方式等内容。 目录 HCS简介 HCS架构 纵向结构 ?管理平台类型 HCS节点类型 FusionSphere OpenStack CPS ServiceOM SC 运营面 OC 运维面 HCS部署架构 regi…...

【博客之星】2024年度个人成长、强化学习算法领域总结

&#x1f4e2;在2025年初&#xff0c;非常荣幸能通过审核进入到《2024年度CSDN博客之星总评选》TOP300的年度评选中&#xff0c;排名40。这还是第一次来到这个阶段&#xff0c;作为一名博士研究生&#xff0c;还是备受鼓舞的。在这里我将以回顾的方式讲述一下这一年在CSDN中走过…...

Git 分支策略

文章目录 1. Git Flow2. GitHub Flow3. GitLab Flow4. Trunk-Based Development5. Release Flow分支最佳实践 Git 分支策略是组织和管理工作特性开发、协作和版本控制的技术。选择合适的策略取决于团队规模、项目需求和部署需求。以下是常见的 Git 分支策略&#xff1a; 1. Git…...

《自动驾驶与机器人中的SLAM技术》ch8:基于预积分和图优化的紧耦合 LIO 系统

和组合导航一样&#xff0c;也可以通过预积分 IMU 因子加上雷达残差来实现基于预积分和图优化的紧耦合 LIO 系统。一些现代的 Lidar SLAM 系统也采用了这种方式。相比滤波器方法来说&#xff0c;预积分因子可以更方便地整合到现有的优化框架中&#xff0c;从开发到实现都更为便…...

Mysql学习笔记

连接数据库 找到 MySQL 安装目录下的 bin 目录&#xff0c;然后打开命令窗口&#xff0c;在命令窗口中按如下语法输入命令&#xff1a; mysql - h MySQL 数据库服务器的 IP 地址 - u 用户名 - p 然后按下回车键&#xff0c;输入密码即可 数据库操作 创建数据库 CREAT…...

Safari常用快捷键

一、书签边栏 1、显示或隐藏书签边栏&#xff1a;Control-Command-1 2、选择下一个书签或文件夹&#xff1a;向上头键或向下头键 3、打开所选书签&#xff1a;空格键 4、打开所选文件夹&#xff1a;空格键或右箭头键 5、关闭所选文件夹&#xff1a;空格键或左箭头键 6、更…...

OpenEuler学习笔记(二):用通俗的道理讲操作系统原理

用通俗的道理讲操作系统原理 基础概念类比 把OpenEuler操作系统想象成一个大型的工厂&#xff0c;这个工厂有各种各样的部门&#xff0c;每个部门都有自己的职责&#xff0c;共同协作来让整个工厂正常运转。内核就像是工厂的管理中心&#xff0c;它负责指挥和协调所有的工作。 …...

ros2-7.5 做一个自动巡检机器人

7.5.1 需求及设计 又到了小鱼老师带着做最佳实践项目了。需求&#xff1a;做一个在各个房间不断巡逻并记录图像的机器人。 到达目标点后首先通过语音播放到达目标点信息&#xff0c; 再通过摄像头拍摄一张图片保存到本地。 7.5.2 编写巡检控制节点 在chapt7_ws/src下新建功…...

使用 `scanpy` 观察 `AnnData` 对象内部数据结构

以下是使用 scanpy 观察 AnnData 对象内部数据结构的步骤: 一、导入必要的库: import scanpy as sc二、读取 AnnData 对象: 假设你的 AnnData 对象存储在一个文件中,例如 adata.h5ad,你可以使用以下代码读取它: adata = sc.read(adata.h5ad)如果你已经有了 adata 对象…...

《CPython Internals》阅读笔记:p232-p249

《CPython Internals》学习第 13天&#xff0c;p232-p249 总结&#xff0c;总计 18 页。 一、技术总结 无。 二、英语总结(生词&#xff1a;1) 1.overhead (1)overhead: over-(“above”) head(“top part, uppermost section”) overhead的字面意思是&#xff1a;above…...

Java并发08 - 并发安全容器详解

并发容器详解 文章目录 并发容器详解一&#xff1a;不使用并发容器如何保证安全二&#xff1a;阻塞队列容器2&#xff1a;ArrayBlockingQueue2.1&#xff1a;内部成员2.2&#xff1a;put方法的实现2.3&#xff1a;take方法的实现 3&#xff1a;LinkedBlockingQueue3.1&#xff…...

抽奖系统(3——奖品模块)

1. 图片上传 application.properties 配置上传文件路径 ## 文件上传 ## # 目标路径 pic.local-pathD:/PIC # spring boot3 升级配置名 spring.web.resources.static-locationsclasspath:/static/,file:${pic.local-path} tip&#xff1a; 1. 如果访问的是本地路径&#xff0c…...