OpenWebUI新突破,MCPO框架解锁MCP工具新玩法
大家好,Open WebUI 迎来重要更新,现已正式支持 MCP 工具服务器,但 MCP 工具服务器需由兼容 OpenAPI 的代理作为前端。mcpo 是一款实用代理,经测试,它能让开发者使用 MCP 服务器命令和标准 OpenAPI 服务器工具,轻松连接工具与大语言模型(LLM)智能体及应用程序。本文将详细介绍 mcpo 工作机制,创建、部署新的 MCP 服务器,并集成到 Open WebUI 中,挖掘 MCP 工具服务器潜力,拓展应用场景。
1.MCPO架构
MCPO架构
MCPO 通过标准输入 / 输出(stdio)传输直接与 MCP 服务器进行交互。随后,在和 Open WebUI 交互时,所有 MCP 通信都会转化为 RESTful API。
2.前提条件
本地未安装 Ollama 的,请下载并安装,下载地址:https://ollama.com/download 。
若本地未安装Open WebUI,请下载并安装,下载地址:https://github.com/open-webui/open-webui 。
安装NodeJS和Python 3.11(Open WebUI所需)/pip,或使用uv(运行命令:curl -LsSf https://astral.sh/uv/install.sh | sh) 。安装VS Code + Roo Code + Google Gemini 2.5 Pro(用于生成新MCP服务器代码)。
3.配置MCPO服务器
创建新的Python虚拟环境:
python -m venv.venv
source.venv/bin/activate
安装MCPO服务器:
pip install mcpo
安装MCP服务器:
从这里选择服务器:https://github.com/modelcontextprotocol/servers 。尝试安装以下3个服务器:time、memory和fetch。
# 1.time mcp服务器
pip install mcp-server-time
# 2.memory mcp服务器
npm install @modelcontextprotocol/server-memory
# 3.fetch mcp服务器
pip install mcp-server-fetch
接下来,创建一个config.json
文件,这样就可以通过单个MCPO服务器连接多个Minecraft服务器实例。
❯ cat config.json
{"mcpServers": {"memory": {"command": "npx","args": ["-y", "@modelcontextprotocol/server-memory"]},"time": {"command": "uvx","args": ["mcp-server-time", "--local-timezone=America/New_York"]},"fetch": {"command": "uvx","args": ["mcp-server-fetch"]}}
}
运行MCPO服务器:
$ uvx mcpo --config config.json --port 8001
结果日志:
❯ uvx mcpo --config config.json --port 8001
Starting MCP OpenAPI Proxy with config file: config.json
INFO: Started server process [1190222]
INFO: Waiting for application startup.
Knowledge Graph MCP Server running on stdio
此时完成MCPO服务器的设置。使用MCPO生成的文档链接验证MCP服务器:
MCPO 为 MCP 工具生成的 API 文档
MCP服务器已启动并运行,其中一个工具调用fetch
也正常可用。
4.配置Open WebUI工具
接下来,要将MCPO端点作为工具添加到Open WebUI中,点击“设置”>“工具”>“+”。然后,输入MCPO工具的URL并点击“保存”。
在 Open WebUI 中添加工具
要验证工具是否已启用,可以点击输入聊天窗口中[麦克风]图标旁边的[工具]图标。
5.在Open WebUI中测试工具调用
尝试使用fetch工具,通过提问从URL检索内容:
看到一个“Tool_endpoint_fetch_post”日志,这表明响应是通过工具调用功能生成的,确认Open WebUI对MCP工具的支持,在使用MCPO作为代理时是可行的。
接下来,进行另一项实验:创建一个新的MCP服务器,并将其添加到MCPO中,看看会发生什么。
6.创建新MCP服务器:关税新闻反应
这个新MCP服务器的目的是在互联网上搜索对最近宣布的关税的最新反应。为简单起见,使用DuckDuckGo作为新闻搜索引擎。
新的关税新闻反应 MCP 服务器流程
为节省时间,使用“VS Code + Roo Code + Gemini 2.5 Pro”工具组合,通过一个需求提示快速生成MCP服务器代码和配置。
7.生成关税新闻反应MCP服务器代码
在Roo Code的代码模式聊天窗口中输入以下需求提示:
**项目目标:**创建一个基于Python的MCP服务器,提供一个工具,用于搜索有关2025年4月宣布的美国关税的国际反应的近期新闻文章,同时支持stdio和SSE传输。**1. 业务需求:**- 服务器应允许用户(或人工智能智能体)查询关于不同国家对指定美国关税反应的新闻文章。- 重点应放在检索过去一周内发布的相关新闻上。- 服务器应进行打包,以便使用pip轻松分发和安装。**2. 技术需求:**- **MCP服务器实现:**- 使用`mcp` Python软件开发工具包(包名:`mcp`)进行实现。- 支持标准输入/输出(`stdio`)和服务器发送事件(`sse`)传输机制,可通过`--transport`命令行参数选择。- 使用`mcp.server.lowlevel.Server`提供的基于装饰器的API(`@mcp_server.list_tools`,`@mcp_server.call_tool`)。- 使用`click`进行命令行参数解析(`--transport`,`--port`)。- 使用`starlette`和`uvicorn`处理SSE传输的Web服务器组件。- **核心工具(`get_tariff_reaction_news`):**- **功能:** 使用DuckDuckGo搜索引擎(`duckduckgo-search`库)在互联网上搜索与关税反应相关的新闻文章。- **搜索查询构建:**- 基本查询:“reactions to US tariffs April 2025”- 如果提供了`country`输入:“reactions from [Country Name] to US tariffs April 2025”- 如果提供了`additional_keywords`,则追加。- **筛选:** 将搜索结果限制为过去一周内发布的新闻(在`duckduckgo-search`中使用`timelimit='w'`)。- **排名:** 默认使用DuckDuckGo的相关性/排名。- **工具模式(使用Pydantic):**- **输入(`GetTariffReactionNewsInput`):**- `country`:`Optional[str]` - 搜索重点关注的特定国家。- `additional_keywords`:`Optional[str]` - 添加到查询中的额外术语。- **内部输出模型:**- `SearchResultItem`:定义单个结果的结构(`title`、`url`、`snippet`、`source`、`published_date`)。- `SearchSuccessOutput`:成功时包含`list[SearchResultItem]`。- `SearchErrorOutput`:失败时包含`error: str`字段。- **MCP工具返回类型:** 用`@mcp_server.call_tool`装饰的函数将返回`list[mcp.types.TextContent]`。`SearchSuccessOutput`或`SearchErrorOutput`模型将被序列化为`TextContent`块的`text`字段。工具执行错误应作为标准Python异常(例如`ValueError`、`Exception`)抛出,`mcp`库会将其格式化为MCP错误响应。- **依赖项:**- `mcp[cli]>=1.6.0`:用于MCP服务器/工具实现和类型定义。- `duckduckgo-search>=2025.4.1`:用于执行网络搜索。- `pydantic>=2.11`:用于定义输入/输出模式和验证。- `anyio>=4.0`:`mcp`库通过stdio运行异步服务器所需。- `click>=8.0`:用于命令行参数解析。- `starlette>=0.27`:用于SSE传输的Web框架。- `uvicorn[standard]>=0.23`:用于运行Starlette应用程序。- `requests>=2.25`:(已包含但未直接使用)。- **开发环境:**- 使用Python虚拟环境(例如`venv`)管理依赖项。- 包含一个`requirements.txt`文件(通过`pip freeze`生成)。- **打包:**- 使用带有`setuptools`构建后端的`pyproject.toml`文件,使服务器可通过`pip`安装。- 包含一个控制台脚本入口点(`tariff-news-server`),用于运行主CLI函数(`main_cli`)。- **代码结构:**- 按逻辑组织代码(例如,在`src/tariff_news_server`包中包含`schemas.py`、`tool.py`、`server.py`)。- **执行:**- **Stdio(默认):** 通过`python -m tariff_news_server.server`或`tariff-news-server`(如果已安装)运行。在MCP设置中使用`python -m...`命令进行配置。- **SSE:** 通过`tariff-news-server --transport sse [--port <port>]`运行。在MCP设置中使用控制台脚本命令和参数进行配置,或作为指向正确URL的远程SSE服务器(例如`http://localhost:8000/mcp/sse`)。**3. 有用资源(原始链接):**- Python MCP SDK(`mcp`包):https://github.com/modelcontextprotocol/python-sdk- 示例MCP服务器:https://github.com/modelcontextprotocol/python-sdk/tree/main/examples/servers (特别是`simple-tool`提供了相关模式)。**4. 文档:**- 生成关税新闻MCP服务器的解决方案图。- 生成源代码文档。
在VS Code的Roo Code扩展聊天窗口中输入需求提示:
成功完成后,将生成新的关税新闻反应MCP服务器工作代码,并生成更新后的配置,以便在Roo Code中进行测试。
8.在Roo Code中测试MCP服务器
可以在Roo Code的MCP服务器选项卡中验证关税新闻MCP服务器是否已启用:
通过提问“mexico latest reaction on tariff?”来测试工具调用是否有效:
查看最终响应:
基于使用关税新闻服务器检索到的近期新闻文章,墨西哥未受到2025年4月宣布的最新一轮美国关税的影响。以下是对此反应的总结:- 宽慰与庆祝:墨西哥为避开这些针对许多其他美国贸易伙伴的新关税而庆祝。- 自由贸易延续:这一豁免表明,美国和墨西哥之间现有的自由贸易关系可能在这一轮关税实施中得以存续。- 对更广泛影响的认识:尽管墨西哥直接避开了关税,但该国认识到,这些广泛的关税所造成的全球经济不确定性仍可能对其经济产生负面影响。从本质上讲,墨西哥对避免了关税的直接影响感到宽慰,但对全球贸易不稳定带来的间接后果仍持谨慎态度。
9.将新MCP服务器添加到MCPO中
使用以下命令将新的MCP服务器安装到MCPO服务器的Python环境中:
$ git clone https://github.com/minyang-chen/AI-powered-Development.git
$ cd tariff-news-server
$ pip install -e.
通过添加关税新闻反应MCP服务器来更新MCP settings.json:
{"mcpServers": {"memory": {"command": "npx","args": ["-y", "@modelcontextprotocol/server-memory"]},"time": {"command": "uvx","args": ["mcp-server-time", "--local-timezone=America/New_York"]},"fetch": {"command": "uvx","args": ["mcp-server-fetch"]},"tariff": {"command": "python3","args": ["-m","tariff_news_server.server"]}}
}
启动MCP服务器:
$ uvx mcpo --config./config.json --port 8001
检查MCP服务器API文档是否已启动:
现在完成了MCPO服务器的更新,接下来更新Open WebUI。
10.将关税新闻MCP服务器添加到Open WebUI中
转到“设置”/“工具”,然后点击“+”按钮:
在聊天窗口中检查关税新闻反应服务器是否已启用:
为测试该工具进行提问,例如可以问:“What is Canada's latest reaction to tariffs?”
测试结果成功,得到了积极响应并启动了工具调用,也可以在日志文件中验证MCPO服务器的工具调用。
## MCPO服务器日志INFO: 127.0.0.1:33694 - "OPTIONS /tariff/get_tariff_reaction_news HTTP/1.1" 200 OK
Calling get_tariff_reaction_news with arguments: {'country': 'Canada'}
2025-04-03 20:06:39,935 - mcp.server.lowlevel.server - INFO - Processing request of type CallToolRequest
2025-04-03 20:06:39,935 - __main__ - INFO - Received call_tool request for tool: get_tariff_reaction_news
2025-04-03 20:06:39,935 - __main__ - INFO - Parsed tool input: country='Canada' additional_keywords=None
2025-04-03 20:06:39,935 - tariff_news_server.tool - INFO - Executing search with query: 'reactions from Canada to US tariffs'
2025-04-03 20:06:40,189 - primp - INFO - response: https://duckduckgo.com/?q=reactions+from+Canada+to+US+tariffs 200
2025-04-03 20:06:41,407 - primp - INFO - response: https://duckduckgo.com/news.js?l=wt-wt&o=json&noamp=1&q=reactions+from+Canada+to+US+tariffs&vqd=4-290943568794945560942460956578934889745&p=-2&df=w 200
2025-04-03 20:06:41,408 - tariff_news_server.tool - INFO - Found 10 results.
2025-04-03 20:06:41,408 - __main__ - INFO - Tool execution result type: <class 'tariff_news_server.schemas.SearchSuccessOutput'>
2025-04-03 20:06:41,408 - __main__ - INFO - Tool succeeded, returning 10 results.
INFO: 127.0.0.1:33694 - "POST /tariff/get_tariff_reaction_news HTTP/1.1" 200 OK
相关文章:
OpenWebUI新突破,MCPO框架解锁MCP工具新玩法
大家好,Open WebUI 迎来重要更新,现已正式支持 MCP 工具服务器,但 MCP 工具服务器需由兼容 OpenAPI 的代理作为前端。mcpo 是一款实用代理,经测试,它能让开发者使用 MCP 服务器命令和标准 OpenAPI 服务器工具ÿ…...
【Day28】
总结: Python 通过缩进来定义代码块的结构。当解释器遇到像 def, class, if, for 这样的语句,并且后面跟着冒号 : 时,它就期望接下来会有一个或多个缩进的语句来构成这个代码块。如果它没有找到任何缩进的语句(即代码块是空的&am…...
STM32 | FreeRTOS 消息队列
01 一、概述 队列又称消息队列,是一种常用于任务间通信的数据结构,队列可以在任务与任务间、中断和任务间传递信息,实现了任务接收来自其他任务或中断的不固定长度的消息,任务能够从队列里面读取消息,当队列中的消…...
Vue-事件修饰符
事件修饰符 prevent (阻止默认事件) 超链接 点击事件 代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><title>事件修饰符</title><!-- 引入Vue --><script …...
c++函数调用运算符及类型转换运算符重载
author: hjjdebug date: 2025年 05月 17日 星期六 14:44:48 CST descrip: c函数调用运算符及类型转换运算符重载 文章目录 0. 前言. 运算符包括以下运算符.1. 运算符重载语句一般格式:2. 函数调用运算符:3. 类型转换运算符: 例如 int(); double(); bool(…...
如何在 Windows 10 或 11 中安装 PowerShellGet 模块?
PowerShell 是微软在其 Windows 操作系统上提供的强大脚本语言,可用于通过命令行界面自动化各种任务,适用于 Windows 桌面或服务器环境。而 PowerShellGet 是 PowerShell 中的一个模块,提供了用于从各种来源发现、安装、更新和发布模块的 cmdlet。 本文将介绍如何在 PowerS…...
84.评论日记
原链接 这个视频我发了四五条评论。评论内容甚至和下面这个视频内的其他评论一样。 找了另外的账号也发了。 发现,无论是我这个账号,还是其他的账号,评论都无法看到。 我大胆猜测有一种机制,某些官号会被设置成一种高检测的等…...
一周学会Pandas2 Python数据处理与分析-Pandas2数据添加修改删除操作
锋哥原创的Pandas2 Python数据处理与分析 视频教程: 2025版 Pandas2 Python数据处理与分析 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 对数据的修改、增加和删除在数据整理过程中时常发生。修改的情况一般是修改错误,还有一种情况是格式转换…...
荷兰国旗问题 之 指针划分区间问题
文章目录 首先介绍一下什么是荷兰国旗问题?问题描述为:给定一个由红色、白色和蓝色三种颜色组成的无序数组,将数组元素按颜色排序,使得所有红色元素在前,白色元素居中,蓝色元素在后。这里的 “颜色” 通常用…...
冒泡排序-java
public class BubbleSort{ public static void bubbleSort(int[] arr) { int n arr.length; boolean swapped; // 外层循环控制遍历的轮数 for (int i 0; i < n - 1; i) { swapped false; for (int j 0; …...
进阶-数据结构部分:2、常用排序算法
飞书文档https://x509p6c8to.feishu.cn/wiki/FfpIwIPtviMMb4kAn3Sc40ABnUh 常用排序算法 这几种算法都是常见的排序算法,它们的优劣和适用场景如下: 冒泡排序(Bubble Sort):简单易懂,时间复杂度较高&…...
人工智能-自然语言与语音产品实现
一、语义相似度 (一)、文本向量化 1、文本向量化(Text Vectorization) 是自然语言处理(NLP)中的核心预处理步骤,旨在将人类语言的文本转换为计算机可处理的数值向量(数学表达&…...
阿里巴巴开源移动端多模态LLM工具——MNN
MNN 是一个高效且轻量级的深度学习框架。它支持深度学习模型的推理和训练,并在设备端的推理和训练方面具有行业领先的性能。目前,MNN 已集成到阿里巴巴集团的 30 多个应用中,如淘宝、天猫、优酷、钉钉、闲鱼等,覆盖了直播、短视频…...
SpringBootAdmin:全方位监控与管理SpringBoot应用
监控的意义 1. 监控服务状态是否宕机 2. 监控服务运行指标 (内存,虚拟机,线程,请求等) 3. 监控日志 4. 管理服务 (服务下线) 可视化监控平台 Spring Boot Admin, 开源社区项目, 用于管理和监控SpringBoot应用程序. 客户端注册到服务端, 通过HTTP请求方式, 服务端定期从客…...
SAP HCM 0008数据存储逻辑
0008信息类型:0008信息类型是存储员工基本薪酬的地方,因为很多企业都会都薪酬带宽,都会按岗定薪,所以在上线前为体现工资体系的标准化,都会在配置对应的薪酬关系,HCM叫间接评估,今天我们就分析下…...
【springcloud学习(dalston.sr1)】Config配置中心-ConfigServer端与Git通信(含源代码)(十三)
该系列项目整体介绍及源代码请参照前面写的一篇文章【springcloud学习(dalston.sr1)】项目整体介绍(含源代码)(一) springcloud学习(dalston.sr1)系统文章汇总如下: 【springcloud学习(dalston…...
2020CCPC河南省赛题解
A. 班委竞选 签到题,模拟。 #include <bits/stdc.h> #define x first #define y second #define int long long //#define double long doubleusing namespace std; typedef unsigned long long ULL ; typedef pair<int,int> PII ; typedef pair<d…...
C语言输入函数对比解析
目录 C语言输入函数全家福(和它们的秘密)fgetsgetsscanfgetcharfscanf函数对比表灵魂总结 哈哈,看来你正在和C语言的输入函数们玩“大家来找茬”!放心,我会用最接地气的方式给你讲明白,保证比看《甄嬛传》还…...
python四则运算计算器
python四则运算计算器 是谁说,python不好写计算器的,我亲自写个无ui的计算器功能,证明这是谣言 step1:C:\Users\wangrusheng\Downloads\num.txt 15 - 4 * 3 10 / 2(5 3) * 2 6 / 31/2 * 8 3/4 * 4 - 0.52.5 * (4 1.6) - 9 / 3-6 12 * (…...
BUUCTF——Nmap
BUUCTF——Nmap 进入靶场 类似于一个nmap的网站 尝试一下功能 没什么用 看看数据包 既然跟IP相关 伪造一个XXF看看 拼接了一下没什么用 果然没这么简单 尝试一下命令注入 构造payload 127.0.0.1 | ls 应该有过滤 加了个\ 直接构造个php木马上传试试 127.0.0.1 | <?…...
【Changer解码头详解及融入neck层数据的实验设计】
Changer解码头详解 ChangerEx中的 Changer 解码头(定义在 [changer.py](file://opencd\models\decode_heads\changer.py))是基于双时相输入的,用于遥感变化检测任务。下面我将详细解释: 🎯 一、解码头输入数据来源 输…...
深度学习推理引擎---OpenVINO
OpenVINO(Open Visual Inference & Neural Network Optimization Toolkit)是英特尔开发的开源工具套件,旨在优化和加速深度学习模型在英特尔硬件(CPU、GPU、VPU、FPGA等)上的推理性能,同时支持从训练到…...
JavaScript splice() 方法
1. JavaScript splice() 方法 1.1. 定义和用法 splice() 方法用于添加或删除数组中的元素。 注意:这种方法会改变原始数组。 返回值:如果删除一个元素,则返回一个元素的数组。 如果未删除任何元素,则返回空数组。 1.2. …...
数据库故障排查指南:解决常见问题,保障数据安全与稳定
数据库故障排查指南:解决常见问题,保障数据安全与稳定 📖 前言 数据库作为现代应用的核心组件,其稳定性直接影响业务连续性。本文总结六大常见数据库故障场景,提供快速排查思路与解决方案,助你化身"…...
gem5-gpu教程 第十章 关于topology 的Mesh network
问题一、L1和L2缓存之间的VI_hammer_fusion中指定了互连延迟,如何更改这些数字吗? 我已经实现了一个网格拓扑来连接cpu内核和GPU SM,并对VI_hammer*和网格文件进行了所有必要的更改。我的问题是: 1. There is interconnect latency specified in VI_hammer_fusion betwee…...
【C/C++】C++返回值优化:RVO与NRVO全解析
文章目录 C返回值优化:RVO与NRVO全解析1 简介2 RVO vs NRVO3 触发条件4 底层机制5 应用场景6 验证与限制7 性能影响8 补充说明9 总结 C返回值优化:RVO与NRVO全解析 返回值优化(Return Value Optimization, RVO)是编译器通过消除临…...
使用 Kaniko来构建镜像
使用 Kaniko来构建镜像 Kaniko 是一种专注于容器镜像构建的开源工具,其核心设计理念与 Docker 存在显著差异。以下从功能定位、技术实现和适用场景三方面进行对比分析: 一、Kaniko 的核心特性 无需 Docker 守护进程 Kaniko 直接在容器或 Kubernetes 集…...
2025.05.17淘天机考笔试真题第三题
📌 点击直达笔试专栏 👉《大厂笔试突围》 💻 春秋招笔试突围在线OJ 👉 笔试突围OJ 03. 奇偶平衡树分割问题 问题描述 K小姐是一位园林设计师,她设计了一个由多个花坛组成的树形公园。每个花坛中种植了不同数量的花…...
history模式:让URL更美观
🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》、《前端求职突破计划》 🍚 蓝桥云课签约作者、…...
算法:分治法
实验内容 在一个2kⅹ2k个方格组成的棋盘中,若恰有一个方格与其他方格不同,则称该方格为特殊方格,且称该棋盘为一特殊棋盘。 显然,特殊方格出现的位置有4k 种情况,即k>0,有4k 种不同的特殊棋盘 棋盘覆盖:…...
豆粕ETF投资逻辑整理归纳-20250511
目录 一、什么是豆粕 基本概念 豆粕上游生产国 豆粕下游消耗方 二、豆粕ETF 概念 策略 展期操作 超额收益 行情波动 豆粕资产的低相关性 三、展期收益 Contango升水结构和Backwardation贴水结构 豆粕的贴水逻辑 还有哪些品种拥有长期的展期收益 四、其他相关信…...
使用 Python 连接 Oracle 23ai 数据库完整指南
方法一:使用 oracledb 官方驱动(推荐) Oracle 官方维护的 oracledb 驱动(原 cx_Oracle)是最新推荐方案,支持 Thin/Thick 两种模式。 1. 环境准备 pip install oracledb2. 完整示例代码 import oracledb import getpass from typing import Unionclass Oracle23aiConn…...
构建集成差异化灵巧手和先进机器人控制技术的自动化系统
介绍程序 1.流程分析 通过流程分析审查应用机器人自动化的可行性。 2.系统设计 选择合适的机器人(机械臂、夹持器、视觉系统等),并通过详细的任务分析设计最佳系统。 3.内部测试 建立内部测试平台并解决任何问题。 4.现场测试 现场设…...
题单:汉诺塔问题
题目描述 如下图所示,设有 nn 个大小不等的中空圆盘,按照从小到大的顺序叠套在立柱 A 上,另有两根立柱 B 和 C 。 现在要求把全部圆盘从 A 柱(称为源柱)移到 C 柱(称为目标柱),移动…...
Unable to get end effector tips from jmg
这个错误信息表明在使用MoveIt2时,moveit_visual_tools无法从关节模型组(Joint Model Group,简称JMG)中获取末端执行器(End Effector,简称EE)的尖端信息。这通常是因为配置文件中缺少相关信息&a…...
flutter flutter run 运行项目卡在Running Gradle task ‘assembleDebug‘...
flutter run --verbose在运行flutter run 可以看到是卡在哪一步 最重要的就是自己查看日志,具体哪一步有问题flutter run --verbose使用这个,运行了项目会将错误信息放在控制台 可能原因 静态资源问题如果:图片、字体文件等没有在pubspec.yam…...
STM32烧录程序正常,但是运行异常
一、硬件配置问题 BOOT引脚设置错误 STM32的启动模式由BOOT0和BOOT1引脚决定。若设置为从RAM启动(BOOT01,BOOT10),程序在掉电后无法保存,导致复位后无法正常运行。应确保BOOT00(从Flash启动)15。…...
TTS:F5-TTS 带有 ConvNeXt V2 的扩散变换器
1,项目简介 F5-TTS 于英文生成领域表现卓越,发音标准程度在本次评测软件中独占鳌头。再者,官方预设的多角色生成模式独具匠心,能够配置多个角色,一次性为多角色、多情绪生成对话式语音,别出心裁。 最低配置…...
ecmascript 第6版特性 ECMA-262 ES6
https://blog.csdn.net/zlpzlpzyd/article/details/146125018 在之前写的文章基础上,ES6在export和import的基础外,还有如下特性 特性说明let/const块级作用域变量声明>箭头函数Promise异步编程...
2024 山东省ccpc省赛
目录 I(签到) 题目简述: 思路: 代码: A(二分答案) 题目简述: 思路: 代码: K(构造) 题目: 思路: 代…...
角点特征:从传统算法到深度学习算法演进
1 概述 图像特征是用来描述和分析图像内容的关键属性,通常包括颜色、纹理和形状等信息。颜色特征能够反映图像中不同颜色的分布,常通过 RGB 值或色彩直方图表示。纹理特征则关注图像表面的结构和细节,例如通过灰度共生矩阵或局部二值模式&…...
免费代理IP服务有哪些隐患?如何安全使用?
代理IP已经成为互联网众多用户日常在线活动中不可或缺的一部分。无论是为了保护个人隐私、突破地理限制,还是用于数据抓取、广告投放等商业用途,代理IP都扮演着关键角色。然而,市场上存在大量的免费代理IP服务,尽管它们看起来颇具…...
深入了解 VPC 端点类型 – 网关与接口
什么是VPC 端点 VPC 端点(VPC Endpoint)是 Amazon Web Services (AWS) 提供的一种服务,允许用户在 Virtual Private Cloud (VPC) 内部安全地访问 AWS 服务,而无需通过公共互联网。VPC 端点通过私有连接将 VPC 与 AWS 服务直接连接…...
Android屏幕采集编码打包推送RTMP技术详解:从开发到优化与应用
在现代移动应用中,屏幕采集已成为一个广泛使用的功能,尤其是在实时直播、视频会议、远程教育、游戏录制等场景中,屏幕采集技术的需求不断增长。Android 平台为开发者提供了 MediaProjection API,这使得屏幕录制和采集变得更加简单…...
信息系统项目管理师高级-软考高项案例分析备考指南(2023年案例分析)
个人笔记整理---仅供参考 计算题 案例分析里的计算题就是进度、挣值分析、预测技术。主要考査的知识点有:找关键路径、求总工期、自由时差、总时差、进度压缩资源平滑、挣值计算、预测计算。计算题是一定要拿下的,做计算题要保持头脑清晰,认真读题把PV、…...
全栈项目搭建指南:Nuxt.js + Node.js + MongoDB
全栈项目搭建指南:Nuxt.js Node.js MongoDB 一、项目概述 我们将构建一个完整的全栈应用,包含: 前端:Nuxt.js (SSR渲染)后端:Node.js (Express/Koa框架)数据库:MongoDB后台管理系统:集成在同…...
Linux:基础IO
一:理解文件 1-1 狭义理解 文件存储在磁盘中,由于磁盘是永久性存储介质,因此文件在磁盘上的存储是永久性的;磁盘也是外设,因此磁盘上对文件的所有操作本质是对外设的输入和输出 1-2 广义理解 Linux下一切皆文件&am…...
MySQL 索引优化以及慢查询优化
在数据库性能优化中,索引优化和慢查询优化是两个关键环节。合理使用索引可以显著提高查询效率,而识别和优化慢查询则能提升整体数据库性能。本文将详细介绍MySQL索引优化和慢查询优化的方法和最佳实践。 一、MySQL 索引优化 1.1 索引的基本概念 索引是…...
Leaflet使用SVG创建动态Legend
接前一篇文章,前一篇文章我们使用 SVG 创建了带有动态文字的图标,今天再看看怎样在地图上根据动态图标生成相关的legend,当然这里也还是使用了 SVG 来生成相关颜色的 legend。 看下面的代码,生成了一个 svg 节点,其中…...
使用 Vue Tour 封装一个统一的页面引导组件
项目开发过程中需要实现用户引导功能,经过调研发现一个好用的 Vue 插件 vue-tour,今天就来分享一下我是如何基于 vue-tour 封装一个统一的引导组件,方便后续在多个页面复用的。 📦 第一步:安装 vue-tour 插件 首先安装…...