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

LLM学习笔记4——本地部署Docker、vLLM和Qwen2.5-32B-Instruct实现OpenManus的使用

系列文章目录

参考博客
参考博客
参考博客
参考博客


文章目录

  • 系列文章目录
  • 前言
  • 一、OpenManus介绍
  • 二、环境搭建
    • 1.Docker+vLLM
    • 2.搭建OpenManus
      • 1)安装anaconda虚拟环境
      • 2)安装OpenManus
      • 3)下载并配置Qwen2.5-32B-Instruct模型
      • 4)配置与运行OpenManus
      • 5)报错与解决
  • 三、总结


前言

关于Docker、vLLM的介绍与安装以及更多相关内容可以查看我之前写的博客
LLM学习笔记1——本地部署Meta-Llama-3.2-1B大模型与学习LLaMA模型框架
LLM学习笔记2——使用Docker(Ollama+OpenWebUI)实现本地部署DeepSeek-R1-14B模型
LLM学习笔记3——使用Docker(vLLM+OpenWebUI)实现本地部署DeepSeek-R1-32B模型


一、OpenManus介绍

OpenManus,由 MetaGPT 团队精心打造的开源项目,于2025年3月发布。它致力于模仿并改进 Manus 这一封闭式商业 AI Agent 的核心功能,为用户提供无需邀请码、可本地化部署的智能体解决方案。换句话说,OpenManus 就像一位全能的数字助手,能够在你的本地设备上运行,随时听候差遣,完成各种复杂任务。

它的出现,打破了技术领域的高墙,让每一位开发者都有机会站在同一起跑线上,快速实现诸如代码生成、数据分析、网络信息检索等复杂任务的自动化处理。无论你是独立开发者,还是大型团队的一员,OpenManus 都能为你提供强大的支持,让你专注于创造性的核心工作,而非将时间浪费在重复性任务上。

1.OpenManus的优点
1.1 本地智能体运行
OpenManus 的一大亮点在于其本地智能体运行能力。你只需通过简单的终端指令输入任务,它便能迅速调用预先配置的语言模型(LLM),为你实现自动化的操作流程。无论是生成一段精妙的代码,还是对复杂的数据进行深度分析,亦或是执行网页交互任务,OpenManus 都能轻松应对,让你在数字化世界中游刃有余。

1.2 多工具链协同
为了更好地模拟人类的工作方式,OpenManus 搭建了一个强大的多工具链协同平台:
Python 代码执行器:它能够实时生成并运行 Python 代码,无论是进行数学计算,还是编写自动化脚本,都能一气呵成,大大提高了工作效率。
浏览器自动化工具:这个工具就像你的网络向导,能够模拟人类操作,访问各种网页,提取你需要的信息,让你无需手动在海量的网络数据中大海捞针。
文件处理系统:文档生成、管理以及格式化输出(如生成精美的 HTML 报告)都不在话下,让信息的整理和呈现变得更加专业和便捷。
网络搜索工具:它能自动检索网络上的最新数据,为你的任务提供最前沿的实时支持,确保你的工作始终紧跟时代潮流。

1.3 实时反馈机制
在任务执行的过程中,OpenManus 并非一味地闷头苦干,而是通过实时反馈机制,将思考逻辑、进度更新以及中间结果以可视化日志的形式呈现给你。这样一来,你就能清晰地追踪任务的每一步进展,及时发现并解决问题,让整个工作流程更加透明和可控。

2.技术架构与实现
2.1 模块化设计
OpenManus 采用了先进的模块化设计理念,通过可插拔的工具(Tools)和系统指令(System Prompt)组合,实现了功能模块的快速扩展。就好比搭积木一样,你可以根据自己的需求,轻松地添加或调整各种功能模块,比如浏览器自动化工具、数据分析工具等,让智能体完美适配你的工作场景。

2.2 基于 LLM 的规划系统
其规划系统基于强大的语言模型(LLM),并采用了 ReAct(推理与行动)框架。这一框架能够将复杂的任务巧妙地分解为一系列可执行的子步骤,例如先收集信息,再进行分析,最后生成报告,并且能够动态地协调各个工具的调用,确保任务的高效执行。

2.3 多模型集成
OpenManus 默认支持 GPT-4o 这一主流语言模型,但它的魅力不仅于此。通过简单的配置文件修改,你可以轻松切换到其他模型,如 Claude 3.5、Qwen VL Plus 等。这种多模型集成的方式,让你能够充分利用不同模型的优势,根据具体任务选择最合适的工具,从而达到最佳的效果。


二、环境搭建

1.Docker+vLLM

参考之前的博客:
LLM学习笔记3——使用Docker(vLLM+OpenWebUI)实现本地部署DeepSeek-R1-32B模型

安装好Docker和vLLM镜像

2.搭建OpenManus

1)安装anaconda虚拟环境

国内用户可以从清华大学开源软件镜像站里面获取 Anaconda 3,根据自己的基础配置选择对应的 Linux 86_64 位版本下载。
Anaconda 3下载
在这里插入图片描述

下载好后,终端进入安装包所在的对应目录,执行:

bash Anaconda3-***-Linux-x86_64.sh

然后根据不同要求,选择回车或者yes

检查是否安装
一定要打开一个新的终端,输入以下命令

conda --version

安装成功后你就可以开始创建管理自己的虚拟环境了。

anaconda常用命令参考博客

2)安装OpenManus

在这里插入图片描述

OpenManus的github下载路径

创建一个conda 环境:

conda create -n open_manus python=3.12
source activate open_manus

解压并进入openmanus的文件夹,安装依赖与第三方库:

pip install -r requirements.txt

3)下载并配置Qwen2.5-32B-Instruct模型

国内使用modelscope网站下载

Qwen2.5-32B-Instruct-GPTQ-Int4模型地址

在下载前,请先通过如下命令安装ModelScope(需要python环境):

pip install modelscope

下载完整模型库到指定文件夹:

modelscope download --model Qwen/Qwen2.5-32B-Instruct-GPTQ-Int4  --local_dir /home/xxx/models/Qwen2.5-32B-Instruct-GPTQ-Int4

提供一份docker-compose.yml 文件参考,保存在models的同级目录下:

services:vllm:container_name: vllmimage: vllm/vllm-openai:v0.7.2ports:- "8000:8000"volumes:- ./models:/modelsenvironment:- NVIDIA_VISIBLE_DEVICES=all- API_KEY=123456command: ["--model", "/models/Qwen2.5-32B-Instruct-GPTQ-Int4","--served-model-name", "Qwen2.5-32B-Instruct-GPTQ-Int4","--tensor-parallel-size", "4","--max-model-len", "16384","--max-num-seqs", "1","--dtype","auto","--gpu-memory-utilization", "0.80","--enable-auto-tool-choice","--tool-call-parser", "hermes" ]ipc: hostrestart: alwaysdeploy:resources:reservations:devices:- driver: nvidiacount: allcapabilities: [gpu]

参数说明:

1. vllm 服务: container_name: vllm: 容器的名称为 vllm。image: vllm/vllm-openai:v0.7.2: 使用 vllm 提供的官方镜像,版本为 v0.7.2。ports: - "8000:8000": 将容器的 8000 端口映射到宿主机的 8000 端口。volumes: - ./models:/models: 将宿主机的 ./models 目录挂载到容器的 /models 目录,用于存放模型文件。environment:- NVIDIA_VISIBLE_DEVICES=all:使用GPU的设备- API_KEY=123456:设置一个api钥匙command: 运行容器时执行的命令,配置了以下参数:--model "/models/models/Qwen2.5-32B-Instruct-GPTQ-Int4": 使用指定路径下的模型。--served-model-name "models/Qwen2.5-32B-Instruct-GPTQ-Int4": 模型的服务名称为models/Qwen2.5-32B-Instruct-GPTQ-Int4。--tensor-parallel-size "4": 张量并行大小为 4,优化 GPU 计算。--max-model-len "16384": 模型处理的最大长度为 16384 个 token。--max-num-seqs "1": 每次处理的最大序列数为 1。--dtype "auto": 数据类型自动选择。--gpu-memory-utilization "0.80": GPU 内存利用率设为 80%。--enable-auto-tool-choice: 是独立开关参数,无需赋值,和自动选择工具有关,比如在模型支持工具调用时自动启用相关功能--tool-call-parser "hermes" : 解析工具调用的输出

在 docker-compose.yml 所在目录下打开终端,执行:

sudo docker-compose up -d

查看运行状态:

sudo docker-compose ps
或
nvidia-smi

4)配置与运行OpenManus

OpenManus 需要配置使用的 LLM API,请按以下步骤设置:

  1. 在 config 目录创建 config.toml文件(可从示例复制):
cp config/config.example.toml config/config.toml
  1. 编辑 config/config.toml添加 API 密钥和自定义设置:
# 全局 LLM 配置
[llm]
model = "Qwen2.5-32B-Instruct-GPTQ-Int4"       # The LLM model to use
base_url = "http://localhost:8000/v1" # API endpoint URL
api_key = "123456"                   # Your API key
max_tokens = 8192                          # Maximum number of tokens in the response
temperature = 0.0                          # Controls randomness# 可选特定 LLM 模型配置
[llm.vision]
model = "Qwen2.5-32B-Instruct-GPTQ-Int4"       # The vision model to use
base_url = "http://localhost:8000/v1" # API endpoint URL for vision model
api_key = "123456"                   # Your API key for vision model
max_tokens = 8192                          # Maximum number of tokens in the response
temperature = 0.0                          # Controls randomness for vision model

一行命令运行 OpenManus:

python main.py

运行后正常结果:

INFO     [browser_use] BrowserUse logging setup complete with level info
INFO     [root] Anonymized telemetry enabled. See https://docs.browser-use.com/development/telemetry for more information.
Enter your prompt:

然后通过终端输入你的创意!

如需使用 MCP 工具版本,可运行:

python run_mcp.py

如需体验不稳定的多智能体版本,可运行:

python run_flow.py

5)报错与解决

报错一:

ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 400 - {'object': 'error', 'message': '"auto" tool choice requires --enable-auto-tool-choice and --tool-call-parser to be set', 'type': 'BadRequestError', 'param': None, 'code': 400}

是因为vLLM调用模型时没有加上 “–enable-auto-tool-choice"和”–tool-call-parser", “hermes” 参数,无法调用工具,在docker-compose.yml文件中加上即可。

报错二:

ERROR | app.llm:ask_tool:250 - API error: Error code: 400 - {‘code’: 20037, ‘message’: ‘Function call is not supported for this model.’, ‘data’: None}

是因为使用的模型不支持工具调用,需要带Instruct后缀的模型才有这个功能,更可用的模型即可。

报错三:

ERROR    | app.llm:ask_tool:769 - API error: Error code: 404 - {'object': 'error', 'message': 'The model `DeepSeek-R1-Distill-Qwen-32B-GPTQ-Int4` does not exist.', 'type': 'NotFoundError', 'param': None, 'code': 404}

docker-compose.yml文件中模型名称和config.toml文件中的模型名称不对应,修改即可。

报错四:

ERROR    | app.llm:ask_tool:763 - OpenAI API error: Error code: 400 - {'object': 'error', 'message': "This model's maximum context length is 8192 tokens. However, you requested 10220 tokens (2028 in the messages, 8192 in the completion). Please reduce the length of the messages or completion.", 'type': 'BadRequestError', 'param': None, 'code': 400}

是因为请求的 ​​Token 总数超出模型最大上下文限制​​导致的,要么缩短问题长度,要么根据使用的模型上下文长度去修改docker-compose.yml文件中的–max-model-len参数,适当修改对应值,config.toml文件中的max_tokens则取–max-model-len参数值的一半,修改即可。


三、总结

OpenManus 的应用场景几乎涵盖了我们工作和生活的方方面面:

自动化办公:无论是生成周计划、整理会议纪要,还是处理 Excel 数据,OpenManus 都能为你一键搞定,让你从繁琐的日常事务中解脱出来。
开发者辅助:对于开发者来说,它就像一位贴心的编程伙伴,能够快速生成代码片段、协助调试程序、规划项目架构,让开发过程更加顺畅高效。
教育与研究:在教育领域,它能够辅助编程教学、生成教学材料;在学术研究中,又能自动整理文献资料,为科研工作提供有力支持。
企业级工具:企业可以利用它定制专属的数据分析工具、客户支持系统,甚至是 SEO 优化报告生成器,助力企业在激烈的市场竞争中脱颖而出。
创意实现:如果你是一位创意工作者,OpenManus 能够根据你的描述生成美观的 HTML 页面,或者对网站进行深度技术分析,比如 SEO 审核,让创意得以快速落地。

在实际体验中OpenManus虽然可以实现全自动的能力,但是这也与调用的模型能力息息相关,模型能力差给出的结果就不好,甚至会出现记忆力遗忘等问题。
另外提示词的编写也需要的表达清晰准确,否则模型会自由发挥。

相关文章:

LLM学习笔记4——本地部署Docker、vLLM和Qwen2.5-32B-Instruct实现OpenManus的使用

系列文章目录 参考博客 参考博客 参考博客 参考博客 文章目录 系列文章目录前言一、OpenManus介绍二、环境搭建1.DockervLLM2.搭建OpenManus1)安装anaconda虚拟环境2)安装OpenManus3)下载并配置Qwen2.5-32B-Instruct模型4)配置与…...

aarcpy 列表函数的使用(1)

arcpy.ListFeatureClasses() 该函数用于列出指定工作空间中的所有要素类。可以通过通配符和过滤条件进一步筛选结果。 语法: python arcpy.ListFeatureClasses(wild_cardNone, feature_typeNone)• wild_card:用于筛选要素类名称的通配符,…...

maven工程中引入外部jar

1、引入模块下的jar 1.负责打包的模块&#xff0c;pom中加上这个插件&#xff0c;这个可以把外部jar包打入工程中。 <!-- 打包 --> <build><finalName>xxx-send-admin</finalName><resources><resource><directory>${project.base…...

C++智能指针上

一、裸指针 “裸指针”是最基础的&#xff0c;直接存储内存地址的指针类型。特点&#xff1a;①它本身没有自动的内存管理机制&#xff1a;如它不会自动释放内存&#xff0c;也不会检查是否指向有效的内存区域&#xff1b;②直接操作内存地址&#xff0c;不进行任何的边界检查&…...

flutter 中各种日志

日志方法对比 输出方式调试模式控制台输出发布模式控制台输出DevTools Logging 视图print()✅ 显示✅ 显示❌ 不显示debugPrint()✅ 显示✅ 显示❌ 不显示stderr.writeln()✅ 显示✅ 显示✅ 显示dart:developer.log()✅ 显示❌ 不显示✅ 显示 详细说明&#xff1a; print()&a…...

Java面试:从Spring Boot到微服务的全面考核

Java面试&#xff1a;从Spring Boot到微服务的全面考核 场景设定&#xff1a; 在一家互联网大厂的面试室内&#xff0c;严肃的面试官正准备开始对前来面试的赵大宝进行技术考核。赵大宝是一位自称在Java开发方面经验丰富的求职者&#xff0c;不过却是个搞笑的水货程序员。 第…...

安卓adb shell串口基础指令

目录 前言一、列出串口设备节点二、修改串口设备权限三、串口参数配置&#xff08;stty命令&#xff09;3.1 基本配置3.2 其他常用参数3.3 查看当前配置 四、数据收发操作4.1 发送数据4.2 接受数据 参考链接: 前言 在 Android 设备上&#xff0c;ADB提供了一系列命令用于与设备…...

大模型技术全景解析:从基础架构到Prompt工程

大模型技术全景解析&#xff1a;从基础架构到Prompt工程 引言 近年来&#xff0c;大型语言模型(LLMs)如GPT、BERT等取得了突破性进展&#xff0c;彻底改变了自然语言处理领域。本文将全面剖析大模型的核心技术要素&#xff0c;包括三要素构成、系统架构、机器学习范式演进、P…...

404页面精选(一)翻滚盒子

内容很详细&#xff0c;直接上代码 效果演示 源码 <!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>翻滚盒子</title><style>body {background: #000;h…...

LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下

LJF-Framework 第15章 想想搞点啥-若依管理系统兼容一下 一、下载后端源码 我们学习一下他的前后端分离的项目吧RuoYi-Vue,我看他有单独的Vue3版本的项目,我们就整这新的吧,向新新势力低头。 1、下载地址 git clone https://gitcode.com/yangzongzhuan/RuoYi-Vue.git2、…...

Hadoop基础知识

Hadoop 是由 Apache 基金会开发的开源分布式计算框架&#xff0c;主要用于处理海量数据的存储和计算问题。其核心设计基于 Google 的 MapReduce 编程模型和 GFS&#xff08;Google File System&#xff09;&#xff0c;旨在通过集群化的廉价硬件实现高可靠性、高扩展性的大数据…...

第1讲:Transformers 的崛起:从RNN到Self-Attention

序列建模的演进之路 一、RNN&#xff08; Recurrent Neural Networks&#xff09;&#xff1a;序列处理的开拓者 循环神经网络(RNN)是最早处理序列数据的深度学习结构。RNN的核心思想是在处理序列的每个时间步时保持一个"记忆"状态。 h_t tanh(W_x * x_t W_h * …...

经验分享 | 如何高效使用 `git commit --amend` 修改提交记录

背景 在「地面智能观测项目」这种多模块协作的物联网系统中&#xff0c;版本迭代频率高达每周3次。每个部署包&#xff08;如v0.3.19&#xff09;都包含硬件控制脚本、数据处理模块和部署工具&#xff0c;任何提交遗漏都可能导致部署失败。传统的新建提交方式会造成冗余记录&a…...

生物创新药研发为何要上电子实验记录本?

前言&#xff1a;数据驱动的生物创新药研发新范式 在精准医疗时代&#xff0c;生物创新药以其靶向性强、疗效确切的优势&#xff0c;成为肿瘤、自身免疫性疾病等复杂病症的核心治疗方案。国家"十四五" 规划明确将生物制药列为战略性新兴产业&#xff0c;各地政府纷纷…...

PH热榜 | 2025-04-24

1. Peek 标语&#xff1a;AI个人财务教练&#xff0c;帮你做出明智的财务决策。 介绍&#xff1a;Peek的人工智能助手能够主动进行财务检查&#xff0c;分析你的消费模式&#xff0c;并以一种细腻而积极的方式帮助你改善习惯。完全没有评判&#xff0c;也没有负罪感。就像为你…...

民锋视角下的节奏判断与资金行为建模

民锋视角下的节奏判断与资金行为建模 在市场节奏的研判中&#xff0c;行为模型始终是构建逻辑核心。以民锋为代表的一类研究视角&#xff0c;更关注的是微观结构中的资金行为痕迹&#xff0c;而非单一技术形态。 节奏并非由K线决定&#xff0c;而是由成交密度与换手效率共同塑…...

Debian服务器上JSP页面无法加载如何解决?

如果你在 Debian 服务器上部署 JSP 页面无法加载&#xff0c;可以按以下步骤排查和解决问题&#xff1a; 1. 确认安装了 Java 环境 JSP 需要 Java 支持&#xff0c;先确认 Java 是否安装并配置好&#xff1a; java -version如果未安装&#xff0c;使用如下命令安装 OpenJDK&…...

第三篇:Django创建表关系及生命周期流程图

第三篇&#xff1a;Django创建表关系及生命周期流程图 文章目录 第三篇&#xff1a;Django创建表关系及生命周期流程图一、Django中orm创建表关系一、数据库中的表关系二、创建表 二、Django请求生命周期流程图 一、Django中orm创建表关系 一、数据库中的表关系 我们可以通过…...

【玩泰山派】7、玩linux桌面环境xfce - (2)音视频,yt-dlp下载工具、parole播放器

文章目录 前言yt-dlpyt-dlp概述发展背景特点应用场景使用方式局限性 安装yt-dlpyt-dlp常用命令直接下载默认格式指定格式 查看视频所有分辨率下载指定分辨率参考 parole播放器使用Parole概述源码地址使用 前言 前面安装了ubuntu Xfce桌面环境(xubuntu-desktop)&#xff0c;现在…...

【文献速递】NMR代谢组寻找预测DR发展的候选标志物

2024年7月5日&#xff0c;中山大学中山眼科中心王伟教授团队在Ophthalmology&#xff08;IF&#xff1a;13.2&#xff09;上发表了题为“Plasma Metabolomics Identifies Key Metabolites and Improves Prediction of Diabetic Retinopathy&#xff1a;Development and Validat…...

flask学习(1)

1.基本框架 from flask import Flask app Flask(__name__)app.route(/) def hello():return "<h1>Hello, Flask in Conda!</h1>"if __name__ __main__:app.run(host0.0.0.0, port5000, debugTrue) # 关键行&#xff01; 在此基础上 from flask imp…...

详解springcloudalibaba采用prometheus+grafana实现服务监控

1.官网下载安装 prometheus和grafana promethus 官网&#xff1a;https://prometheus.io/ 1.下载windows版本安装包 2.双击启动 3.访问地址 http://localhost:9090 grafana 官网&#xff1a;https://grafana.com/ 1.下载windows版本安装包 2.启动 &#xff0c;默认windo…...

Java查询数据库表信息导出Word

参考: POI生成Word多级标题格式_poi设置word标题-CSDN博客 1.概述 使用jdbc查询数据库把表信息导出为word文档, 导出为word时需要下载word模板文件。 已实现数据库: KingbaseES, 实现代码: 点击跳转 2.效果图 2.1.生成word内容 所有数据库合并 数据库不合并 2.2.生成文件…...

【金仓数据库征文】从云计算到区块链:金仓数据库的颠覆性创新之路

目录 一、引言 二、金仓数据库概述 2.1 金仓数据库的背景 2.2 核心技术特点 2.3 行业应用案例 三、金仓数据库的产品优化提案 3.1 性能优化 3.1.1 查询优化 3.1.2 索引优化 3.1.3 缓存优化 3.2 可扩展性优化 3.2.1 水平扩展与分区设计 3.2.2 负载均衡与读写分离 …...

Kotlin函数体详解:表达式函数体 vs 代码块函数体——使用场景与最佳实践

&#x1f9e9; 什么是表达式函数体&#xff08;Expression Body&#xff09;&#xff1f; 表达式函数体指的是使用 号直接返回一个表达式结果的函数写法。 ✅ 示例&#xff1a; fun add(x: Int, y: Int): Int x y这个函数的意思是&#xff1a;传入两个整数&#xff0c;返…...

【bug修复】一次诡异的接口数据显示 bug 排查之旅

一次诡异的接口数据显示 bug 排查之旅 在后端开发的日常中&#xff0c;总会遇到一些让人摸不着头脑的 bug&#xff0c;最近我就经历了一个颇为诡异的情况。接口接收到的响应 data 对象里字段明明都有值&#xff0c;但直接打印到控制台却显示空字符串&#xff0c;最后通过一个简…...

C++ RPC以及cmake

目录 1.RPC概念 2.RPC实现计算举例 3.python进行rpc调用 4.thrift实现分布式容器创建 5.阶段总结 6.cmake简介 7.cmake使用的一般步骤 8.cmake编译多层次文件 9.cmake编译多种交付件 1.RPC概念 # 1.需求分析 靠谱的商用项目不是只有一个可执行程序就够了的。好的商用…...

数字隔离器,筑牢AC-DC数字电源中的“安全防线”

在传统工业与现代科技高速交融的发展浪潮中&#xff0c;AC-DC数字电源作为电能转换的核心枢纽&#xff0c;不仅能将交流电精准地转化为直流电&#xff0c;还可通过软件编程实现电流限制、过温保护与设定输出电压等多种功能&#xff0c;是现代众多电力电子基础设施中不可或缺的精…...

使用“复合索引”和不使用“复合索引”的优化对比

目录 1.创建数据库 2.未创建索引 3.创建索引 4.结论 1.创建数据库 CREATE TABLE orders (order_id INT AUTO_INCREMENT PRIMARY KEY,customer_id INT,order_date DATE,total_amount DECIMAL(10, 2));插入数据&#xff1a; INSERT INTO orders (customer_id, order_date, t…...

.NETCore部署流程

资料下载&#xff1a;https://download.csdn.net/download/ly1h1/90684992 1.下载托管包托管捆绑包 | Microsoft Learn&#xff0c;下载后点击安装即可。 2.安装IIS 3.打开VS2022&#xff0c;新建项目&#xff0c;选择ASP.NET Core Web API 5.Program修改启动项&#xff0c;取…...

深入解析微软MarkitDown:原理、应用与二次开发指南

一、项目背景与技术定位 微软开源的MarkitDown并非简单的又一个Markdown解析器&#xff0c;而是针对现代文档处理需求设计的工具链核心组件。该项目诞生于微软内部大规模文档系统的开发实践&#xff0c;旨在解决以下技术痛点&#xff1a; 大规模文档处理性能&#xff1a;能够高…...

Rust 2025:内存安全革命与异步编程新纪元

Rust 2025 Edition通过区域内存管理、泛型关联类型和零成本异步框架三大革新&#xff0c;重新定义系统级编程语言的能力边界。本次升级不仅将内存安全验证效率提升80%&#xff0c;更通过异步执行器架构优化实现微秒级任务切换。本文从编译器原理、运行时机制、编程范式转型三个…...

Vue3 setup、计算属性、侦听器、响应式API

一、setup 一、setup 函数基础 作用&#xff1a;组合式 API 的入口&#xff0c;用于定义响应式数据、方法和生命周期钩子 执行时机&#xff1a;在 beforeCreate 之前调用&#xff0c;此时组件实例尚未创建 基本结构&#xff1a; export default {setup(props, context) {/…...

从内核到应用层:深度剖析信号捕捉技术栈(含sigaction系统调用/SIGCHLD回收/volatile内存屏障)

Linux系列 文章目录 Linux系列前言一、进程对信号的捕捉1.1 内核对信号的捕捉1.2 sigaction()函数1.3 信号集的修改时机 二、可重入函数三、volatile关键字四、SIGCHLD信号 前言 Linux系统中&#xff0c;信号捕捉是指进程可以通过设置信号处理函数来响应特定信号。通过信号捕捉…...

【KWDB 创作者计划】_嵌入式硬件篇---寄存器与存储器截断与溢出

文章目录 前言一、寄存器与存储器1. 定义与基本概念寄存器(Register)位置功能特点存储器(Memory)位置功能特点2. 关键区别3. 层级关系与协作存储层次结构协作示例4. 为什么需要寄存器性能优化指令支持减少总线竞争5. 其他寄存器类型专用寄存器程序计数器(PC)栈指针(SP)…...

Python torchvision.datasets 下常用数据集配置和使用方法

torchvision.datasets 提供了许多常用的数据集类&#xff0c;以下是一些常用方法&#xff08;datasets中有大量数据集处理方法&#xff0c;这里仅展示了部分数据集处理方法&#xff09;及其实现类的介绍、用法和输入参数解释&#xff1a; CIFAR CIFAR10 &#xff1a;包含 10 个…...

unity使用iTextSharp生成PDF文件

iTextSharp 可以在VS中工具下面得NuGet包管理器中下载 &#xff0c;具体操作可以搜一下 很多 &#xff0c; 我直接把我得生成pdf代码附上 我这个是生成我一个csv文件内容和图片 using System.IO; using UnityEngine; using iTextSharp.text; using iTextSharp.text.pdf; using…...

django admin 添加自定义页面

在Django中&#xff0c;你可以通过多种方式向Django Admin添加自定义页面。以下是一些常见的方法&#xff1a; 方法1&#xff1a;使用ModelAdmin的get_urls()方法 如果你只是想添加一个简单的页面来展示信息&#xff0c;你可以在你的ModelAdmin类中重写get_urls()方法。 from…...

Java并发编程|CompletableFuture原理与实战:从链式操作到异步编排

🔥 本文系统讲解Java并发编程核心类CompletableFuture,涵盖线程池配置策略、异步编程实践、异常处理机制等关键技术。通过电商订单系统与物流调度实战案例,深度解析:1)CompletableFuture链式操作与异步编排 2)多线程任务聚合与结果处理 3)生产级异常处理方案 4)组合操…...

动态自适应分区算法(DAPS)设计流程详解

动态自适应分区算法&#xff08;Dynamic Adaptive Partitioning System, DAPS&#xff09;是一种通过实时监测系统状态并动态调整资源分配策略的智能算法&#xff0c;广泛应用于缓存优化、分布式系统、工业制造等领域。本文将从设计流程的核心步骤出发&#xff0c;结合数学模型…...

优雅实现网页弹窗提示功能:JavaScript与CSS完美结合

在现代Web开发中&#xff0c;弹窗提示是提升用户体验的重要元素之一。本文将深入探讨如何实现一个优雅、可复用的弹窗提示系统&#xff0c;避免常见问题如重复触发、样式混乱等。 核心代码解析 // 控制弹窗是否可以显示的标志 let alertStatus true;// 显示提示信息 functio…...

LeetCode-Hot100

数组 1.数组——最大子数组和 解题思路&#xff1a;动态规划 动态规划解决问题的步骤&#xff1a;1.理解题意。题目要求只返回结果&#xff0c;不要求得到最大的连续子数组的哪一个&#xff0c;这样的问题常常可以用动态规划。 2.定义子问题&#xff1a;eg&#xff1a;以 −…...

【Redis】有序集合类型Sortedset 常用命令详解

此类型和 set 一样也是 string 类型元素的集合&#xff0c;且不允许重复的元素 不同的是每个元素都会关联一个double类型的分数&#xff0c;redis正是通过分数来为集合中的成员进行从小到大的排序 有序集合的成员是唯一&#xff0c;但分数(score)却可以重复 1. zadd - 添加 语法…...

前缀和-724.寻找数组的中心下标-力扣(LeetCode)

一、题目解析 我们需要求出中心下标处两边的和是否相等。 二、算法解析 解法1&#xff1a;暴力枚举 O(n*2)(时间复杂度) 固定i&#xff0c;计算[0,i-1]的和&#xff0c;计算[i1,n-1]的和&#xff0c;然后比较是否相等。遍历i为n次&#xff0c;每次计算n-1个数据的值&#xff…...

缓存与数据库数据一致性:旁路缓存、读写穿透和异步写入模式解析

旁路缓存模式、读写穿透模式和异步缓存写入模式是三种常见的缓存使用模式&#xff0c;以下是对三种经典缓存使用模式在缓存与数据库数据一致性方面更全面的分析&#xff1a; 一、旁路缓存模式&#xff08;Cache - Aside Pattern&#xff09; 1.数据读取流程 应用程序首先向缓…...

HTML邮件背景图兼容 Outlook

在 HTML 邮件中设置背景图片时&#xff0c;Outlook&#xff08;尤其是桌面版的 Outlook for Windows&#xff09;经常不会正确显示背景图&#xff0c;这是因为outlook 是使用 Word 作为邮件渲染引擎&#xff0c;而不是标准的 HTML/CSS 渲染方式。 推荐的解决方案&#xff1a;使…...

Linux之七大难命令(The Seven Difficult Commands of Linux)

Linux之七大难命令 、背景 作为Linux的初学者&#xff0c;肯定要先掌握高频使用的指令&#xff0c;这样才能让Linux的学习在短时间内事半功倍。但是&#xff0c;有些指令虽然功能强大&#xff0c;但因参数多而让初学者们很害怕&#xff0c;今天介绍Linux中高频使用&#xff0…...

每日Html 4.24

&#x1f4da; 每日一个Html小知识 &#x1f40d; 每天花1分钟&#xff0c;解锁一个Html实用技巧/冷知识&#xff01;无论是新手还是老手&#xff0c;这里都有让你眼前一亮的编程干货。 ✨ 今日主题&#xff1a;<dialog> 标签 &#x1f4a1; 你知道吗&#xff1f; 浏览…...

YOLOv11改进-双Backbone架构:利用双backbone提高yolo11目标检测的精度

一、引言&#xff1a;为什么我们需要双Backbone&#xff1f; 在目标检测任务中&#xff0c;YOLO系列模型因其高效的端到端检测能力而备受青睐。然而&#xff0c;传统YOLO模型大多采用单一Backbone结构&#xff0c;即利用一个卷积神经网络&#xff08;CNN&#xff09;作为特征提…...

嵌入式Linux驱动开发:LED实验

在嵌入式Linux驱动开发中&#xff0c;LED实验可以通过多种方式实现&#xff0c;主要包括设备树下的LED实验、新字符设备驱动的LED实验和GPIO子系统的LED实验。这三种方式在硬件资源管理、驱动架构和开发流程上有显著区别&#xff0c;下面从多个维度进行对比分析&#xff1a; 1.…...