Windows系统本地部署OpenManus对接Ollama调用本地AI大模型
文章目录
- 前言
- 1. 环境准备
- 1.1 安装Python
- 1.2. 安装conda
- 2. 本地部署OpenManus
- 2.1 创建一个新conda环境
- 2.2 克隆存储库
- 2.3 安装依赖环境
- 3. 安装Ollama
- 4. 安装QwQ 32B模型
- 5. 修改OpenManus配置文件
- 6. 运行OpenManus
- 7.通过网页使用OpenManus
- 8. 安装内网穿透
- 8.1 配置随机公网地址
- 8.2 配置固定公网地址
- 总结
前言
在DeepSeek引发全网热议后,一款名为Manus的AI产品又掀起了一股新的科技浪潮。这款由国内创新团队Monica.im开发的通用型AI Agent(自主智能体),不仅能够理解并执行用户的复杂指令,还能直接交付成果,彻底改变了我们对AI的认知。然而,遗憾的是它目前尚未全面开放测试。但没想到的是,开源社区迅速给出了回应!
来自MetaGPT团队的几位大神级开发者,最近发布了一个名为OpenManus的开源项目,无需邀请码就能让你尽情发挥创意。这款工具一经推出便瞬间走红,更棒的是它可以与本地部署的大模型无缝对接,比如我之前在高性能主机上安装的千问QWQ-32B模型,完全免费、无限制地使用这一强大的AI助手。接下来,就让我们一起探索如何将OpenManus和千问QWQ-32B完美结合,打造你的专属超能力吧!
1. 环境准备
1.1 安装Python
本例使用Windows11专业版系统进行演示:
首先需要安装 python 3.12 下载地址:Python Release Python 3.12.0 | Python.org
页面底部找到Windows版本,点击下载安装程序即可:
安装时需要注意,勾选下边两个选项,不然后续有可能报错:
安装结束后,如出现下图提示,点击该选项(更改您的机器配置,以允许程序(包括Python)绕过260字符的“最大路径”限制)同意即可:
确认后,点击close关闭即可完成Python环境安装:
1.2. 安装conda
然后安装conda环境,下载地址:Anaconda Installers and Packages
点击查看所有安装文件,找到Windows版本,点击下载即可:
下载好后,正常安装即可:
需要注意的是在这一步,需要勾选第三个选项,自动加载刚才安装的Python3.12环境:
点击确定,然后点击Install继续安装:
安装完成后,点击Finish即可:
2. 本地部署OpenManus
接下来开始在Windows系统使用conda本地部署OpenManus
2.1 创建一个新conda环境
首先在Windows中打开cmd或者powershell等终端工具,执行下方命令:
conda create -n open_manus python=3.12
如果提示’conda’ 不是内部或外部命令,也不是可运行的程序,我们需要配置一下环境变量:
首先在电脑中找到conda的安装路径,本例中安装时选择的是只为我(just me)安装,那么路径是在C:\Users\[你的用户]
目录下:
进入.conda文件夹,打开environments文档,复制这个路径:
在Windows系统中搜索环境变量,打开:
选择高级-环境变量-系统变量-path ,点击编辑:
点击新建,粘贴刚才复制的Anaconda的地址加上\Scripts
比如:C:\Users\admin\anaconda3\Scripts
添加好环境变量后保存退出即可。
现在我们再打开cmd等终端工具,输入conda时,可以看到能正常识别命令了:
再次执行刚才的命令:
conda create -n open_manus python=3.12
输入y确认:
环境创建好之后,执行下方命令:
conda init
提示关闭并重启你的shell工具(关闭重新打开cmd)
然后执行下方命令激活这个新的conda环境:
conda activate open_manus
如上图所示,这个conda环境就激活成功了。
2.2 克隆存储库
接下来,我们在终端中执行下方命令,将OpenManus拉取到本地:
git clone https://github.com/mannaandpoem/OpenManus.git
ps:使用git命令需要提前在Windows系统中下载并安装node.js
如上图所示done即为拉取完成。
然后执行下方命令进入OpenManus项目根目录下:
cd OpenManus
2.3 安装依赖环境
执行下方命令安装依赖环境:
pip install -r requirements.txt
这个阶段安装时间较长,耐心等待安装完成即可:
现在就安装好了:
3. 安装Ollama
现在我们已经在本地部署好了OpenManus,但是我们还需要安装Ollama来接入本地大模型,之后再配置OpenManus 使用的 LLM API才能够使用。
下方为简略安装方法,详细的安装流程可以查看这篇文章:Windows本地部署Ollama
首先访问Ollama的官网:Download Ollama on Windows
下载适配你的操作系统的客户端,我这里使用的是Windows11系统,点击下载即可:
安装好之后,打开cmd输入ollama回车,看到下面信息即为安装成功!
4. 安装QwQ 32B模型
接下来使用Ollama下载本地AI大模型,不支持所有大模型,需要有函数调用能与OpenManus对接的才行。
恰好笔者之前下载的千问QwQ-32B模型就支持,这里就用它来演示。
下面为简略安装方法,详细的安装方式可以查看这篇文章:Windows本地部署QwQ32B
Ollama安装完成之后,就可以开始去下载 QwQ32B 这个模型了,使用这个命令就能下载:
ollama run qwq
需要预留20个G以上的储存空间,默认下载到C盘,如果想修改下载位置,可以在终端中执行下方命令来指定模型文件的存放目录,这里以d:\ollama为例,大家可以自定义:
set OLLAMA_MODELS=d:\ollama
安装成功后会提示success:
5. 修改OpenManus配置文件
接下来我们需要修改OpenManus配置文件,让它对接本地qwq32b模型。
需要修改的是全局模型配置Global LLM configuration和视觉模型配置configuration for specific LLM models
注意:里面的模型文件名称要改成你自己安装的,后面的视觉模型可以和上面的一致,也可以自定义其它的视觉模型!需要自己下载
首先进入我的电脑,打开C盘-用户-admin下的OpenManus文件夹:
然后进入config文件夹:
复制一份里边的config.example.toml文件,重命名为config.toml,使用记事本打开进行配置:
1.首先将Global LLM configuration中的
model = “claude-3-7-sonnet-20250219” 替换为本地qwq32b的名称:model = “qwq:latest”
PS:如何查看本地大模型名称:
新开一个cmd终端,输入
ollama list
进行查看,名称为 qwq:latest
2.将Global LLM configuration中的
base_url = “https://api.anthropic.com/v1/” 替换为 base_url = “http://localhost:11434/v1/”
替换后:
3.将Global LLM configuration中的
api_key = “YOUR_API_KEY” 替换为 api_key = “123”
替换后:
4.然后将下面的[llm] #OLLAMA:这部分整段删除:
删除后:
5.将Optional configuration for specific LLM models的
model = “claude-3-7-sonnet-20250219” 替换为 model = “qwq:latest”
6.将Optional configuration for specific LLM models的
base_url = “https://api.anthropic.com/v1/” 替换为 base_url = “http://localhost:11434/v1/”
7.将Optional configuration for specific LLM models的
api_key = “YOUR_API_KEY” 替换为 api_key = “123”
8.将下面的[llm.vision] #OLLAMA VISION:这部分整段删除:
删除后:
配置完毕后保存关闭此文件即可。
6. 运行OpenManus
现在我们回到刚才创建好的OpenManus根目录下,执行一行命令运行 OpenManus:
python main.py
可以看到提示我们输入指令来让它干活!
输入命令后,可能会出现如下报错:
这个问题是缺少了浏览器,那么需要先下载浏览器组件:
python -m playwright install chromium
然后安装:
pip install playwright
然后再次执行运行命令:
python main.py
并向它提出要求:
根据本地硬件配置不同,执行操作的时间也不同,稍等后会自动打开浏览器进行查询操作并给出推理与回答:
PS:如果关闭终端后,不知道如何进入conda环境下的OpenManus根目录,可以执行下方操作:
首先执行:
conda activate open_manus
然后执行:
cd OpenManus
就可以进到根目录,使用
python main.py
运行 OpenManus 了!
7.通过网页使用OpenManus
如果不喜欢在命令行中操作OpenManus,我们也可以在web网页中进行操作
首先,需要下载OpenManus的分支代码:
https://github.com/mannaandpoem/OpenManus/tree/front-end
然后解压下载的包到自定义盘符目录,本例中为 D:\OpenManus-front-end
在终端中进入这个项目路径:
D:
cd OpenManus-front-end
和上边的在命令行中运行OpenManus一样,我们需要先创建一个新的conda环境:
conda create -n open_manusui python=3.12
然后激活环境:
conda activate open_manusui
安装依赖:
pip install -r requirements.txt
在运行前,同样需要对config文件进行修改:()
复制一个config.example.toml文件,重命名为config.toml,打开进行如下修改:
保存后,回到终端中执行:
python app.py
会自动打开浏览器访问:http://localhost:5172 打开OpenManus的web ui页面:
在对话框中提问,可以在主界面中看到AI的操作流程:
思考、调用工具、给出结果:
不过这个UI版本似乎优化还有问题,处理速度比在终端中要慢很多,而且容易出现time out的情况。
8. 安装内网穿透
现在我们已经成功在本地部署了OpenManus并使用WebUI在网页中与AI交互,但如果想实现不在同一网络环境下,也能随时随地在网页中远程使用本地部署的OpenManus处理问题,那就需要借助cpolar内网穿透工具来实现公网访问了!接下来介绍一下如何安装cpolar内网穿透,过程同样非常简单:
首先进入cpolar官网:
cpolar官网地址: https://www.cpolar.com
点击免费使用
注册一个账号,并下载最新版本的cpolar:
登录成功后,点击下载cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。
cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到配置界面,结下来在WebUI管理界面配置即可。
8.1 配置随机公网地址
接下来配置一下 Open WebUI 的公网地址:
登录后,点击左侧仪表盘的隧道管理——创建隧道,
- 隧道名称:openmanus(可自定义命名,注意不要与已有的隧道名称重复)
- 协议:选择 http
- 本地地址:5172 (本地访问的地址)
- 域名类型:选择随机域名
- 地区:选择China Top
隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https:
使用上面的任意一个公网地址,在平板或其他电脑的浏览器进行登录访问,即可成功看到 OpenManus 的WebUI 界面,这样一个公网地址且可以远程访问就创建好了,使用了cpolar的公网域名,无需自己购买云服务器,即可到随时在线访问本地部署的OpenManus了!
小结
为了方便演示,我们在上边的操作过程中使用cpolar生成的HTTP公网地址隧道,其公网地址是随机生成的。这种随机地址的优势在于建立速度快,可以立即使用。然而,它的缺点是网址是随机生成,这个地址在24小时内会发生随机变化,更适合于临时使用。
如果有长期远程访问OpenManus的WebUI使用QWQ-32B模型处理问题,或者异地访问与使用其他本地部署的服务的需求,但又不想每天重新配置公网地址,还想让公网地址好看又好记并体验更多功能与更快的带宽,那我推荐大家选择使用固定的二级子域名方式来为WebUI配置一个公网地址。.
8.2 配置固定公网地址
接下来演示如何为其配置固定的HTTP公网地址,该地址不会变化,方便分享给别人长期查看你部署的项目,而无需每天重复修改服务器地址。
配置固定http端口地址需要将cpolar升级到专业版套餐或以上。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留:
保留成功后复制保留成功的二级子域名的名称:myops
,大家也可以设置自己喜欢的名称。
返回Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道:openmanus
,点击右侧的编辑:
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名:
myops
点击更新
(注意,点击一次更新即可,不需要重复提交)
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名:
最后,我们使用上边任意一个固定的公网地址访问,可以看到访问成功,这样一个固定且永久不变的公网地址就设置好了,可以随时随地在公网环境异地在线访问本地部署的OpenManus的WebUI来让AI帮你全自动处理问题了!
总结
通过上述步骤,我们不仅在Windows系统上成功部署了OpenManus及其WebUI版本分支,还借助cpolar内网穿透工具实现了随时随地远程访问AI助手。整个过程简单高效,效果令人惊喜不已。现在,你只需一台高性能主机和一个固定的二级子域名,就能轻松拥有属于自己的‘私人超能力助手’,随时随地为你处理各种任务。未来,OpenManus的发展潜力无限,让我们拭目以待!如果你对本文有任何疑问或建议,欢迎在评论区留言交流,我们一起见证AI的无限可能。
相关文章:
Windows系统本地部署OpenManus对接Ollama调用本地AI大模型
文章目录 前言1. 环境准备1.1 安装Python1.2. 安装conda 2. 本地部署OpenManus2.1 创建一个新conda环境2.2 克隆存储库2.3 安装依赖环境 3. 安装Ollama4. 安装QwQ 32B模型5. 修改OpenManus配置文件6. 运行OpenManus7.通过网页使用OpenManus8. 安装内网穿透8.1 配置随机公网地址…...
【递归,搜索与回溯算法篇】- 名词解释
一. 递归 1. 什么是递归? 定义: 函数自己调用自己的情况关键点: ➀终止条件: 必须明确递归出口,避免无限递归 ➁子问题拆分: 问题需能分解成结构相同的更小的子问题缺点: ➀栈溢出风险&#x…...
【设计模式】装饰模式
六、装饰模式 装饰(Decorator) 模式也称为装饰器模式/包装模式,是一种结构型模式。这是一个非常有趣和值得学习的设计模式,该模式展现出了运行时的一种扩展能力,以及比继承更强大和灵活的设计视角和设计能力,甚至在有些场合下&am…...
c库、POSIX库、C++库、boost库之间的区别和联系
文章目录 一、区别1. 定义和来源2. 功能范围3. 可移植性4. 语言支持5. 维护和更新 二、联系1. 相互补充2. 部分功能重叠3. 共同促进编程发展4. 代码兼容性 三、总结 一、区别 1. 定义和来源 C 库函数:由 ANSI C 和 ISO C 标准定义,是 C 语言编程的基础…...
算法及数据结构系列 - 树
系列文章目录 算法及数据结构系列 - 二分查找 算法及数据结构系列 - BFS算法 算法及数据结构系列 - 动态规划 算法及数据结构系列 - 双指针 算法及数据结构系列 - 回溯算法 文章目录 树框架树遍历框架N叉树遍历框架 经典题型124.二叉树的最大路径和105.从前序与中序遍历序列构造…...
go安装lazydocker
安装 先安装go环境 https://blog.csdn.net/Yqha1/article/details/146430281?fromshareblogdetail&sharetypeblogdetail&sharerId146430281&sharereferPC&sharesourceYqha1&sharefromfrom_link 安装lazydocker go install github.com/jesseduffield/laz…...
《深度学习》——YOLOv3详解
文章目录 YOLOv3简介YOLOv3核心原理YOLOv3改进YOLOv3网络结构 YOLOv3简介 YOLOv3(You Only Look Once, version 3)是一种先进的实时目标检测算法,由 Joseph Redmon 和 Ali Farhadi 开发。它在目标检测领域表现出色,具有速度快、精…...
使用spring-ai-ollama访问本地化部署DeepSeek
创建SpringBoot工程,引入依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"htt…...
Kafka消息自定义序列化
文章目录 1. 默认序列化2.自定义序列化3.示例4.自定义解序列化器 1. 默认序列化 在网络中发送数据都是以字节的方式,Kafka也不例外。Apache Kafka支持用户给broker发送各种类型的消息。它可以是一个字符串、一个整数、一个数组或是其他任意的对象类型。序列化器(se…...
使用Systemd管理ES服务进程
Centos中的Systemd介绍 CentOS 中的 Systemd 详细介绍 Systemd 是 Linux 系统的初始化系统和服务管理器,自 CentOS 7 起取代了传统的 SysVinit,成为默认的初始化工具。它负责系统启动、服务管理、日志记录等核心功能,显著提升了系统的启动速…...
编程语言选择分析:C#、Rust、Go 与 TypeScript 编译器优化
编程语言选择分析:C#、Rust、Go 与 TypeScript 编译器优化 在讨论编程语言的选择时,特别是针对微软的 C# 和 Rust,以及谷歌的 Go 语言,以及微软试图通过 Go 来拯救 TypeScript 编译器的问题,我们可以从多个角度来分析和…...
使用粘贴控件
HarmonyOS 5.0.3(15) 版本的配套文档,该版本API能力级别为API 15 Release 文章目录 约束与限制开发步骤 粘贴控件是一种特殊的系统安全控件,它允许应用在用户的授权下无提示地读取剪贴板数据。 在应用集成粘贴控件后,用户点击该控件…...
MySQL 客户端连不上(1045 错误)原因全解析
MySQL 客户端连不上(1045 错误)原因全解析 在我们学习 MySQL 或从事 MySQL DBA 工作期间,时常会遇到:“我尝试连接到 MySQL 并且收到1045 错误,但我确定我的用户和密码都没问题”。 不管你现在是否是高手还是高高手,都不可避免曾经在初学的时候犯过一些很初级的错误,例…...
麒麟系列Linux发行版探秘
以下内容摘自《银河麒麟操作系统进阶应用》一书。 银河麒麟操作系统(Kylin) 银河麒麟(Kylin)操作系统是中国自主研发的一款基于Linux内核的操作系统。它的发展历程可以追溯到2002年,最初由国防科技大学主导研发&…...
刘强东突然发声:不该用算法压榨最底层兄弟!东哥,真正的人民企业家
今天忙了一天,很累,准备睡觉的时候,看到网上盛传的刘强东的朋友圈,东哥又在朋友圈发文了。 说实话,看完之后,感动,真的感动。 尤其是当我看到这两句话的时候。 1、我们所学的知识、商业模式、技…...
信息收集与问答系统流程分析与改进建议
现有系统的问题与局限 1. 资源管理问题 二元决策机制过于简化:当前系统仅在令牌预算耗尽时才进入Beast Mode,缺乏渐进式资源分配策略缺少早期预算规划:没有基于问题复杂度的初始资源分配机制缺乏优先级资源分配:所有问题和策略消…...
【人工智能】如何理解transformer中的token?
如何理解transformer中的token? **一、Token在Transformer中的作用****二、文本分词的常见方法****1. 基于词典的分词(Dictionary-based Tokenization)****2. 子词分词(Subword Tokenization)****(1) WordPiece算法****(2) BPE&a…...
Spring Boot 集成 Kafka 消息发送方案
一、引言 在 Spring Boot 项目中,Kafka 是常用的消息队列,可实现高效的消息传递。本文介绍三种在 Spring Boot 中使用 Kafka 发送消息的方式,分析各自优缺点,并给出对应的 pom.xml 依赖。 二、依赖引入 在 pom.xml 中添加以下依赖: <dependencies><!-- Sprin…...
Hadoop•HDFS的Java API操作
听说这是目录哦 上传文件到HDFS🌈一、下载Windows版本的JDK和Hadoop二、配置物理机环境变量三、创建项目四 、添加依赖五、新建java类六、创建文件七、打开集群八、选中、运行 从HDFS下载文件🪐一、写代码二、HDFS要个文件三、物理机要个文件夹ÿ…...
电脑如何设置几分钟后自动关机
摘要:本文提供Windows、macOS和Linux系统设置定时自动关机的详细方法。 目录 一、Windows系统设置方法 设置定时关机 取消关机计划 二、macOS系统设置方法 设置定时关机取消关机计划 三、Linux系统设置方法 设置定时关机 取消关机计划 四、注意事项五、扩展&#x…...
固定公网 IP
固定公网 IP 是指为用户分配一个长期不变且可从互联网直接访问的 IP 地址,具有以下重要作用: 1. 搭建服务器 网站托管:可用于托管网站、博客或电子商务平台。 应用服务器:支持运行邮件服务器、游戏服务器、数据库等。 远程访问&…...
Linux安装go环境
安装一个lazydocker,根据文档需要先安装go环境 https://github.com/jesseduffield/lazydocker 官方文档解析 https://go.dev/doc/install 文档内容如下,一共三步 1.删除先前安装的go,解压下载的go压缩包到/usr/local目录 2.添加环境变量&…...
Git的基本使用
Git的基本使用 前言 :为什么使用GitGit基本操作1. 初始化2. Git分区3. 认识.git目录4. git基本操作 Git分支管理1. 基本操作2. Git分支设计规范 Git 标签管理1. Git标签的使用2. 标签使用规范3. Git标签与分支的区别 分离头指针问题1. 分离头指针问题的风险2. 分离头…...
鸿蒙Flutter开发故事:不,你不需要鸿蒙化
在华为牵头下,Flutter 鸿蒙化如火如荼进行,当第一次看到一份上百个插件的Excel 列表时,我也感到震惊,排名前 100 的插件赫然在列,这无疑是一次大规模的军团作战。 然后,参战团队鱼龙混杂,难免有…...
Mysql:关于命名
1. 命名的对象:库名、表名、列名、索引名 2. 用反引号包裹的情况下,命名时不允许使用空白字符、反引号,其它字符均可 3. 无反引号包裹的情况下,命名时仅允许使用:$、_、数字、大小写字母、中文字符(已知win系统支持)…...
JAVA————十五万字汇总
JAVA语言概述 JAVA语句结构 JAVA面向对象程序设计(一) JAVA面向对象程序设计(二) JAVA面向对象程序设计(三)工具类的实现 JAVA面向对象程序设计(四)录入异常处理 JAVA图形用户界面设…...
Chrome-Edge-IDEA-Win 常用插件-工具包
Chrome-Edge-IDEA-Win 常用插件-工具包 Chrome-Edge-IDEA-Win 常用插件-工具包谷歌插件chropathJSONViewOctotree - GitHub code treeXPath Helper书签侧边栏篡改猴Print Edit WEEdge浏览器插件IDEA插件CodeGlance Pro 代码迷你缩放图插件Alibaba Cloud ToolkitAlibaba Java Co…...
DeepSeek-R1论文深度解析:纯强化学习如何引爆LLM推理革命?
技术突破:从“无监督”到“自主进化”的跨越 paper :https://arxiv.org/pdf/2501.12948目录 技术突破:从“无监督”到“自主进化”的跨越1 DeepSeek-R1-Zero: RLnoSFT1.1 R1-Zero: GRPO(Group Relative Po…...
最新!Ubuntu Docker 安装教程
源自: AINLPer(每日干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2025-3-1 更多:>>>>大模型/AIGC、学术前沿的知识分享! 看到很多部署大模型的时候,都是基于docker安装部署的。…...
【Javascrip】Javascript练习01 REST API using Express.js.
针对该问题的项目路径 要求部分 what you need to doReview the tasks provided in the section below.Obtain the boilerplate code.Use your local development environment to implement a solution.Upload your solution for marking via Gradescope. There is no attempt…...
visual studion 2022如何使用PlaySound()
书籍:《windows程序设计(第五版)》的开始 环境:visual studio 2022 内容:HELLOWIN程序 说明:以下内容大部分来自腾讯元宝。 在Visual Studio 2022中使用PlaySound()函数播放音频,需完成以下步骤: 1. 配…...
C++相关基础概念之入门讲解(下)
1. 引用 int main() {const int a10;int& aaa;aa;cout<<aa<<endl; } 引用 不是新定义一个变量,而 是给已存在变量取了一个别名 ,编译器不会为引用变量开辟内存空 间,它和它引用的变量 共用同一块内存空间(初…...
从零开始学可靠消息投递:分布式事务的“最终一致性”方案
一、什么是可靠消息投递?—— 消息队列的“防丢宝典” 可靠消息投递 是指通过消息队列(如 RocketMQ)确保消息在生产、传输、消费过程中不丢失、不重复、有序到达。其核心目标是在分布式系统中保障数据最终一致性,常用于订单处理、…...
生物化学笔记:医学免疫学原理 免疫系统的组成与功能+克隆选择学说
免疫系统的组成与功能 克隆选择学说 克隆选择学说(Clonal Selection Theory)是免疫学的核心理论之一,由 麦克法兰伯内特(Frank Macfarlane Burnet) 在 1957 年提出,用于解释特异性免疫反应的机制。 基本概…...
SpringBoot最佳实践之 - 使用AOP记录操作日志
1. 前言 本篇博客是个人在工作中遇到的需求。针对此需求,开发了具体的实现代码。并不是普适的记录操作日志的方式。以阅读本篇博客的朋友,可以参考此篇博客中记录日志的方式,可能会对你有些许帮助和启发。 2. 需求描述 有一个后台管理系统…...
MySql中 一条select语句的执行流程
一条 SELECT 语句的执行流程涉及到数据库管理系统(DBMS)的多个组件和阶段。以下是一个更为详细的执行流程,以关系型数据库(如 MySQL、PostgreSQL 等)为例: 1. 客户端发送查询 用户输入:用户在客…...
图论——kruskal算法
53. 寻宝(第七期模拟笔试) 题目描述 在世界的某个区域,有一些分散的神秘岛屿,每个岛屿上都有一种珍稀的资源或者宝藏。国王打算在这些岛屿上建公路,方便运输。 不同岛屿之间,路途距离不同,国王希望你可以规划建公路的方案,如何可以以最短的总公路距离将 所有岛屿联通…...
【dify】 dify环境变量配置说明
这是一份Dify平台的环境变量配置文件,对平台的各项功能、服务和组件进行参数设置。以下是对其主要部分的详细解读: 1. 通用变量(Common Variables) CONSOLE_API_URL:控制台API的后端URL,用于拼接授权回调…...
如何在 Vue 项目中实现动态组件加载,有什么应用场景?
大白话如何在 Vue 项目中实现动态组件加载,有什么应用场景? 什么是动态组件加载 在 Vue 项目里,动态组件加载就是能够在程序运行时动态地决定要渲染哪个组件。打个比方,就像你去餐馆点菜,不同的时间你可能想吃不同的…...
FRP在物联网设备中的穿透方案
物联网设备常位于NAT后,FRP为其提供稳定穿透链路。 配置要点 轻量化部署:使用ARM版本FRP客户端,适配树莓派等设备9。 自启动脚本:通过systemd或crontab实现设备重启后自动连接26。 低功耗优化:调整心跳间隔…...
Android 13深度定制:SystemUI状态栏时间居中显示终极实战指南
一、架构设计与技术解析 1. SystemUI状态栏核心布局机制 层级结构 mermaid 复制 graph TDPhoneStatusBarView --> StatusBarContents[status_bar_contents]StatusBarContents --> LeftLayout[status_bar_left_side]StatusBarContents --> ClockLayout[Clock控件]Left…...
Python实战(3)-数据库操作
前面说过,可用的SQL数据库引擎有很多,它们都有相应的Python模块。这些数据库引擎大都作为服务器程序运行,连安装都需要有管理员权限。为降低Python DB API的使用门槛,我选择了一个名为SQLite的小型数据库引擎。它不需要作为独立的…...
【redis】在 Spring中操作 Redis
文章目录 基础设置依赖StringRedisTemplate库的封装 运行StringList删库 SetHashZset 基础设置 依赖 需要选择这个依赖 StringRedisTemplate // 后续 redis 测试的各种方法,都通过这个 Controller 提供的 http 接口来触发 RestController public class MyC…...
企业数据孤岛的纠结与恩怨
以下是关于控制中数据孤岛的纠结于恩怨: 一、工业控制中数据孤岛的定义 工业控制中的数据孤岛是指在工业生产过程中,各个生产环节、不同的系统或设备之间的数据相互独立、隔离,无法进行有效的共享和交互,形成了一个个相对封闭的数…...
在 Elasticsearch 中扩展后期交互模型 - 第 2 部分 - 8.18
作者:来自 Elastic Peter Straer 及 Benjamin Trent 本文探讨了如何优化后期交互向量,以适应大规模生产工作负载,例如减少磁盘空间占用和提高计算效率。 在之前关于 ColPali 的博客中,我们探讨了如何使用 Elasticsearch 创建视觉搜…...
开发SAPUI5 Fiori应用并部署到SAP系统
首先新建一个项目文件夹 在VScode中打开 打开SAP Fiori(需要先下载安装,参考上上一篇文章) ,选择已添加的SAP S4 ERP系统 ,点击创建Firoi应用。 如果没有添加系统的,点击添加按钮,添加即可,注意ÿ…...
<C#> 详细介绍.net 三种依赖注入:AddTransient、AddScoped、AddSingleton 的区别
在 .NET 8 里,AddTransient、AddScoped 和 AddSingleton 均为依赖注入容器用于注册服务的方法,不过它们的生命周期管理方式存在差异。下面为你详细介绍这三种方法的区别。 1. AddTransient AddTransient 方法所注册的服务,每次被请求时都会…...
游戏引擎学习第168天
回顾并计划今天的内容 今天我们将进行一些思考工作,回顾一下之前的工作。我们已经在资产处理工具中提取了字体,并展示了如何使用该库。我们有两个版本,一个不使用任何库,适合想要完全不依赖库的用户; 我们今天的任务…...
html5炫酷3D立体文字效果实现详解
炫酷3D立体文字效果实现详解 这里写目录标题 炫酷3D立体文字效果实现详解项目概述技术实现要点1. 基础布局设置2. 动态背景效果3. 文字渐变效果4. 立体阴影效果5. 悬浮动画效果 技术难点及解决方案1. 文字渐变动画2. 立体阴影效果3. 性能优化 浏览器兼容性总结 项目概述 在这个…...
VSCode中搜索插件显示“提取扩展时出错。Failed to fetch”问题解决!
大致的问题如下,在VSCode的插件商店搜索插件时提示如下: 导致的情况有以下几点: 1、代理问题,如果是代理引起的,可以继续使用代理后也能搜索和安装插件。 2、还有可能是你的所连接的网络设置了防火墙,比较…...