基于OpenClaw的微信个人号本地集成开发指南

news2026/5/10 10:33:05
1. 项目概述与核心价值如果你正在寻找一个能让你在本地开发环境中像调用一个普通API一样轻松、安全地集成微信个人号能力比如收发消息、管理联系人、获取朋友圈信息的方案那么Wscats/wechat-claw这个项目绝对值得你花时间研究。它不是一个独立的机器人框架而是一个基于OpenClaw生态的微信集成插件项目。简单来说它把微信这个复杂的“黑盒”通过 OpenClaw 的标准化通道变成了一个你可以在代码里直接操作的“服务”。为什么说这个方案有吸引力传统的微信机器人方案无论是基于 Web 协议还是桌面协议都绕不开几个老大难问题协议稳定性差动不动就被封、开发环境复杂需要模拟客户端、以及难以与现有开发流集成。wechat-claw的思路很巧妙它依托于腾讯官方出品的tencent-weixin/openclaw-weixin插件相当于拿到了一个“官方合作”的入口。这个插件运行在 OpenClaw Gateway 中负责处理与微信客户端的真实通信和协议适配。而wechat-claw项目本身则提供了一个极简的脚手架和清晰的指引让你能快速把这个“官方通道”搭建起来并集成到你自己的 Node.js 应用里。所以这个项目适合谁首先是那些需要在自动化流程中接入微信通知或交互的开发者比如监控告警、客服机器人雏形、数据同步工具等。其次是希望以更稳定、可维护的方式研究微信接口能力的极客。它不适合需要大规模、高并发运营的营销场景但对于个人或小团队的技术集成与效率工具开发提供了一个非常优雅的起点。接下来我将带你从零开始完整走一遍部署、配置和初步使用的全过程并分享一些官方文档里不会写的实操细节和避坑经验。2. 环境准备与 OpenClaw 基础搭建在开始微信集成之前我们必须先打好地基——也就是 OpenClaw 本身。很多朋友在这一步会感到困惑因为 OpenClaw 是一个相对较新的开源项目其定位是“本地集成通道网关”。你可以把它理解为一个运行在你电脑上的“集成总线”或“API 网关”专门用于安全、标准化地连接各种本地应用和服务比如微信、钉钉、邮件客户端等。2.1 系统与 Node.js 环境检查首先确保你的开发环境符合要求。项目明确要求 Node.js 18 和 npm 9。我强烈建议使用 Node.js 的 LTS长期支持版本比如当前的 20.x它在稳定性和新特性支持上取得了很好的平衡。你可以通过以下命令检查node --version npm --version如果你的版本过低可以使用nvm(Node Version Manager) 来轻松管理和切换 Node.js 版本。这是避免后续各种兼容性问题的关键一步。注意虽然项目说明里提到了“或兼容的包管理器”比如yarn或pnpm但在安装官方 CLI 工具时使用npx随 npm 安装是最稳妥、最不容易出错的方式。我尝试过用pnpm dlx来执行安装命令有时会因全局缓存或权限问题导致插件路径异常。因此在核心安装步骤上请暂时回归最基础的npx。2.2 OpenClaw 的安装与初始化这是整个流程中最关键也最容易出问题的一环。wechat-claw的 README 假设你已经“已安装并配置好 OpenClaw”但具体怎么做却没细说。根据我的经验你需要按照以下步骤操作全局安装 OpenClaw CLI这是管理 OpenClaw 网关和扩展的核心工具。npm install -g openclaw/cli安装成功后执行openclaw --version应能显示版本号。初始化 OpenClaw 网关OpenClaw 需要一个本地运行的服务端Gateway。通常第一次安装 CLI 后运行任何openclaw命令如openclaw gateway start都会引导你完成初始化。但为了更可控我建议显式初始化openclaw init这个命令会在用户目录下如~/.openclaw创建配置目录。下载并启动核心的 Gateway 服务进程。生成基本的配置文件。验证网关状态安装并初始化后务必检查网关是否正常运行。openclaw gateway status如果显示running说明地基已经打稳。如果未运行使用openclaw gateway start启动它。实操心得在 macOS 或 Linux 上Gateway 进程通常以后台服务形式运行。在 Windows 上可能会打开一个命令行窗口。请确保不要关闭这个窗口或者将其配置为系统服务。一个常见的“坑”是防火墙或安全软件可能会拦截 Gateway 的本地通信通常使用http://localhost:port。如果后续步骤中连接失败请先检查防火墙设置暂时允许相关端口的本地连接。3. 微信插件的安装与授权详解地基稳固后我们就可以开始安装“微信功能模块”了。这一步是通过腾讯官方提供的 CLI 工具来完成的。3.1 执行安装命令的深层解析运行项目文档中给出的命令npx -y tencent-weixin/openclaw-weixin-clilatest install这个简单的命令背后发生了好几件事理解它们有助于排查问题npx -ynpx用于临时下载并执行 npm 包中的命令。-y参数表示自动回答所有提示为“是”这对于自动化脚本很重要避免了安装过程中因交互提问而卡住。tencent-weixin/openclaw-weixin-clilatest指定了要执行的工具包及其最新版本。这个包是腾讯官方发布的专门用于管理 OpenClaw 下的微信插件。install是这个 CLI 工具的一个子命令其内部逻辑如下下载插件包它会从 npm 仓库拉取tencent-weixin/openclaw-weixin这个插件包版本 1.0.2。放置到扩展目录将插件安装到 OpenClaw 的标准扩展目录~/.openclaw/extensions/下并创建名为openclaw-weixin的文件夹。所有 OpenClaw 的扩展插件都按此规范存放便于网关统一发现和加载。重启网关自动调用openclaw gateway restart让网关重新扫描扩展目录并加载新插件。这是插件生效的必要步骤。触发登录流程插件加载后CLI 工具会自动触发微信的登录认证流程在终端中打印出一个二维码。3.2 扫码登录的关键步骤与安全提示当终端出现二维码时使用你希望作为“机器人”或“集成终端”的微信个人账号扫码。请注意以下几点使用备用号或小号强烈建议不要使用你的主力生活微信账号。虽然这是官方插件但其行为模式可能与正常客户端有差异存在一定的风险。用一个专门用于开发的账号是最佳实践。扫码后的确认扫码后手机微信上会提示“OpenClaw 微信插件请求登录”。请仔细阅读授权页面上的信息确认无误后再点击“登录”。这代表你授权该插件在你的电脑上模拟微信客户端。网络环境确保你的电脑和手机处在相同的、稳定的网络环境下。特别是如果电脑使用了某些特殊的网络配置如公司代理、双网卡可能导致手机扫码后无法完成认证。遇到这种情况可以尝试将电脑和手机连接到同一个手机热点下进行登录。终端显示问题如果二维码显示为乱码说明你的终端不支持渲染 Unicode 块状字符。可以尝试以下方案更换终端如 Windows Terminal, iTerm2, Hyper 等现代终端。在命令前添加FORCE_COLOR3环境变量尝试强制色彩和图形支持。极少数情况下CLI 工具可能会提供一个链接你可以复制链接到浏览器中显示二维码。登录成功后终端会显示“Login successful”或类似的提示。这意味着微信插件已经成功连接到了你的微信账号并准备接收来自 OpenClaw Gateway 的指令了。3.3 安装验证与多账号管理安装完成后按照文档验证openclaw extensions list你应该能看到一个表格其中包含openclaw-weixin并且状态是enabled。如果需要切换微信账号或者当前登录的账号掉线token过期就需要重新登录。文档给出的命令是openclaw channels login --channel openclaw-weixin这里需要理解两个概念Extension (扩展/插件)是提供能力的模块比如openclaw-weixin。Channel (通道)是插件对外提供服务的具体接口或实例。一个插件可以提供一个或多个通道。在这里openclaw-weixin插件提供了一个同名的通道来处理微信连接。所以这条命令的意思是向名为openclaw-weixin的通道发起登录请求。执行后会再次出现二维码重复扫码流程即可。注意事项重新登录可能会使之前的会话失效。如果你的应用正在运行并保持着长连接可能需要重启你的应用来重建连接。建议在计划维护时段进行重新登录操作。4. 项目集成与基础 API 调用实战现在OpenClaw 网关和微信插件都已就绪相当于我们有了一个“微信服务”。接下来我们要看看如何在自己的项目里使用这个服务。wechat-claw项目本身的结构非常简洁它更像是一个使用示例和依赖声明。4.1 理解项目依赖与文件结构查看项目的package.json你会发现它只声明了一个开发依赖devDependency{ devDependencies: { tencent-weixin/openclaw-weixin-cli: ^1.0.2 } }这个依赖仅仅是为了方便你通过npm run之类的脚本快速执行安装命令。它并不是你的应用运行时需要引用的库。你的应用真正需要交互的是运行在后台的 OpenClaw Gateway。文件结构也非常清晰wechat-claw/ ├── package.json ├── package-lock.json ├── LICENSE └── README.md这意味着你可以直接克隆或下载这个项目作为起点或者更简单只参考它的README.md步骤在你自己的现有项目中操作。你不需要引入任何特定的 npm 包来调用微信功能。4.2 与 OpenClaw Gateway 通信REST API 基础OpenClaw Gateway 启动后会暴露一个 HTTP REST API 接口。我们的应用通过向这个接口发送请求来间接驱动微信插件。这是整个集成模式的核心。首先你需要知道 Gateway 的地址。默认情况下它运行在http://localhost:7474。你可以通过以下命令确认openclaw gateway info在输出中查找apiEndpoint或类似字段。接下来我们就可以使用任何能发送 HTTP 请求的工具或库来调用它了。这里以 Node.js 环境下的axios库为例。安装 axios(如果你还没有的话):npm install axios发送第一条消息获取登录用户信息。 在调用任何功能前最好先确认通道状态。我们可以查询openclaw-weixin通道的信息。// getWechatInfo.js const axios require(axios); // OpenClaw Gateway 的地址 const OPENCLAW_BASE_URL http://localhost:7474; async function getWeChatChannelInfo() { try { const response await axios.get(${OPENCLAW_BASE_URL}/api/v1/channels/openclaw-weixin); console.log(微信通道信息:, response.data); // 通常 response.data 会包含通道状态、是否已登录、登录用户等信息 if (response.data.status connected) { console.log(微信已登录当前用户:, response.data.user?.nickname); } else { console.log(微信未登录或连接异常); } } catch (error) { console.error(获取通道信息失败:, error.response?.data || error.message); } } getWeChatChannelInfo();运行这个脚本如果返回成功并显示已登录的用户信息恭喜你你的应用已经成功连接到了微信服务4.3 实现核心功能发送与接收消息与微信交互最核心的功能莫过于收发消息。OpenClaw 的微信插件通过通道的actions来提供各种功能。4.3.1 发送文本消息假设我们要向一个微信好友发送消息我们需要知道他的wxid微信内部标识。如何获取wxid我们稍后讨论。先看发送动作// sendMessage.js const axios require(axios); const OPENCLAW_BASE_URL http://localhost:7474; async function sendTextMessage(toWxid, text) { try { const response await axios.post( ${OPENCLAW_BASE_URL}/api/v1/channels/openclaw-weixin/actions, { name: send_message, // 动作名称 params: { to: toWxid, // 接收者wxid type: text, // 消息类型 content: text // 消息内容 } } ); console.log(消息发送结果:, response.data); // 成功响应通常包含 messageId 等信息 } catch (error) { console.error(发送消息失败:, error.response?.data || error.message); } } // 示例发送一条消息 (需要替换为真实的 wxid) sendTextMessage(wxid_xxxxxxxxxxxxxx, 你好这是通过 OpenClaw 发送的测试消息);4.3.2 获取联系人列表以拿到 wxid我们通常不知道好友的wxid。可以通过调用获取联系人的动作来拿到列表。// getContacts.js const axios require(axios); const OPENCLAW_BASE_URL http://localhost:7474; async function getContactList() { try { const response await axios.post( ${OPENCLAW_BASE_URL}/api/v1/channels/openclaw-weixin/actions, { name: get_contacts, // 动作名称 params: { // 可能支持过滤参数如 type: friend 仅获取好友 } } ); console.log(联系人列表:, JSON.stringify(response.data, null, 2)); // 遍历 response.data.result里面通常包含 nickname, wxid, alias 等字段 const friends response.data.result || []; friends.forEach(friend { console.log(昵称: ${friend.nickname}, wxid: ${friend.wxid}); }); } catch (error) { console.error(获取联系人失败:, error.response?.data || error.message); } } getContactList();运行这个脚本你就能看到登录微信账号的所有联系人和他们的wxid。请妥善保管这些信息避免泄露隐私。4.3.3 接收消息使用 Webhook 或轮询发送消息是主动调用那如何接收别人发来的消息呢OpenClaw Gateway 支持Webhook机制。当微信插件收到新消息时Gateway 可以向一个你预设的 URL你的应用服务器地址发送一个 POST 请求其中包含消息详情。配置 Webhook 你需要告诉 Gateway当openclaw-weixin通道有事件如收到消息时通知到哪里。openclaw webhooks create \ --channel openclaw-weixin \ --event message_received \ --url http://your-server.com:port/webhook/wechat这条命令会在 OpenClaw 中创建一个 Webhook 订阅监听openclaw-weixin通道的message_received事件并推送到指定的 URL。在你的应用中处理 Webhook 你需要在http://your-server.com:port/webhook/wechat这个地址上启动一个 HTTP 服务比如用 Express.js来接收 POST 请求。// webhookServer.js const express require(express); const bodyParser require(body-parser); const app express(); app.use(bodyParser.json()); app.post(/webhook/wechat, (req, res) { const event req.body; console.log(收到微信事件:, JSON.stringify(event, null, 2)); if (event.type message_received) { const msg event.data; console.log(来自 [${msg.from}] 的消息: ${msg.content}); // 这里可以编写你的自动回复逻辑 // autoReply(msg.from, msg.content); } res.status(200).send(OK); // 必须返回成功响应 }); const PORT 3000; app.listen(PORT, () { console.log(Webhook 服务器监听在 http://localhost:${PORT}); console.log(请确保 OpenClaw Webhook 配置指向此地址。); });实操心得Webhook 是生产环境推荐的方式因为它实时、高效。但在开发初期或者没有公网服务器的情况下可以使用轮询作为替代方案。即定期调用“获取最新消息”的动作。但轮询会增加 Gateway 负担且不及时仅适合测试。另外配置 Webhook 时确保你的服务器地址能被 Gateway 访问到如果是本地开发可能需要使用内网穿透工具将 localhost 暴露为一个公网 URL。5. 高级应用场景与性能调优掌握了基础 API 调用后我们可以探索一些更实用的场景并讨论如何让整个集成更稳定、高效。5.1 实现一个简单的自动回复机器人结合发送消息和接收消息的 Webhook我们可以轻松打造一个自动回复机器人。以下是一个增强版的 Webhook 处理示例增加了简单的关键词回复和防刷逻辑。// autoReplyBot.js const express require(express); const axios require(axios); const app express(); app.use(express.json()); const OPENCLAW_BASE_URL http://localhost:7474; // 简单的内存缓存用于控制回复频率生产环境请用Redis等 const lastReplyTime new Map(); const REPLY_COOLDOWN 5000; // 5秒内不对同一用户重复回复 async function sendMessage(toWxid, content) { // 复用之前的发送消息函数这里省略具体实现 // ... } app.post(/webhook/wechat, async (req, res) { const event req.body; console.log(收到事件 [${event.type}]); if (event.type message_received event.data) { const msg event.data; const fromUser msg.from; const now Date.now(); // 基础防刷检查冷却时间 if (lastReplyTime.has(fromUser) (now - lastReplyTime.get(fromUser)) REPLY_COOLDOWN) { console.log(用户 ${fromUser} 处于冷却期忽略消息。); return res.send(OK); } // 关键词自动回复 const userMessage msg.content?.toLowerCase() || ; let replyText null; if (userMessage.includes(你好) || userMessage.includes(在吗)) { replyText 你好我是自动助理正在使用 OpenClaw 运行。; } else if (userMessage.includes(时间)) { replyText 现在是北京时间${new Date().toLocaleString(zh-CN)}; } else if (userMessage.includes(帮助)) { replyText 支持的关键词你好、时间、帮助。; } if (replyText) { try { await sendMessage(fromUser, replyText); lastReplyTime.set(fromUser, now); // 更新回复时间 console.log(已向 ${fromUser} 发送自动回复。); } catch (error) { console.error(自动回复发送失败:, error); } } else { console.log(消息未匹配关键词内容: ${userMessage}); } } res.status(200).send(OK); }); const PORT 3000; app.listen(PORT, () console.log(自动回复机器人运行在端口 ${PORT}));5.2 文件与媒体消息的处理微信沟通不仅仅是文字。插件很可能也支持发送图片、文件等。虽然具体动作名称和参数需要查阅插件文档但模式是相似的。例如发送图片可能需要先上传媒体文件到微信服务器或使用本地路径然后使用返回的 mediaId 进行发送。// 假设存在 upload_media 和 send_image 动作 async function sendImage(toWxid, imageLocalPath) { // 1. 上传图片获取 mediaId const uploadRes await axios.post(${OPENCLAW_BASE_URL}/api/v1/channels/openclaw-weixin/actions, { name: upload_media, params: { type: image, path: imageLocalPath } }); const mediaId uploadRes.data.mediaId; // 2. 发送图片消息 const sendRes await axios.post(${OPENCLAW_BASE_URL}/api/v1/channels/openclaw-weixin/actions, { name: send_message, params: { to: toWxid, type: image, mediaId: mediaId } }); console.log(图片发送结果:, sendRes.data); }注意媒体文件处理对路径格式、大小、类型通常有限制并且上传过程可能耗时。在正式使用前务必进行充分的测试。5.3 性能、稳定性与最佳实践错误处理与重试网络请求总有可能失败。在你的 HTTP 客户端如 axios设置合理的超时时间并对可重试的错误如网络超时、5xx 状态码实现指数退避重试机制。const axiosInstance axios.create({ baseURL: OPENCLAW_BASE_URL, timeout: 10000, // 10秒超时 }); // 可以添加拦截器实现重试逻辑异步与队列如果你的应用需要高频发送消息直接循环调用 API 可能导致请求堆积或失败。建议引入一个消息队列如bull、p-queue将发送任务排队控制并发数并持久化失败任务。const PQueue require(p-queue); const messageQueue new PQueue({ concurrency: 2 }); // 最多同时发送2条 messageQueue.add(() sendTextMessage(wxid, 排队发送的消息));监控与日志记录所有发送和接收消息的日志包括成功和失败的情况。监控 OpenClaw Gateway 的健康状态定期调用/health端点和微信通道的连接状态。一旦发现通道断开如微信在别处登录导致踢下线应有告警和自动重连机制重新触发扫码登录流程但这需要人工干预或安全的自动化方案。资源清理在应用关闭时优雅地处理未完成的消息发送任务。虽然 Gateway 是独立进程但你的应用应该做好自己的清理工作。遵守平台规范最重要的一点使用此类集成工具必须严格遵守微信的使用规范。避免发送垃圾信息、营销内容或进行任何违规操作。高频、规律性的消息发送极易被风控系统检测并导致账号功能受限甚至封禁。将自动化用于合理的、低频率的提醒或交互场景。6. 常见问题排查与深度调试指南即使按照步骤操作也难免会遇到问题。这里我整理了一份从简单到复杂的排查清单覆盖了从安装到运行的大部分常见坑点。6.1 安装与启动阶段问题问题1执行npx install命令时报错提示找不到openclaw命令或 Gateway 未运行。排查这说明 OpenClaw CLI 未正确安装或 Gateway 未启动。解决确认已全局安装openclaw/clinpm list -g openclaw/cli。如果已安装尝试运行openclaw gateway start手动启动网关。观察输出是否有错误。检查~/.openclaw目录是否存在权限是否正确。问题2二维码无法显示或扫码后长时间无反应。排查终端兼容性或网络问题。解决终端问题换用更现代的终端如 Windows Terminal 或 iTerm2。确保终端编码设置为 UTF-8。网络问题这是最常见的原因。确保电脑网络通畅并且手机和电脑在同一局域网下。尝试关闭电脑的 VPN 或代理软件。用手机开热点给电脑连接是最直接的测试方法。账号问题尝试更换一个微信账号扫码。某些账号如新注册号、海外号可能受限。问题3插件安装成功但在openclaw extensions list中看不到openclaw-weixin或者状态不是enabled。排查插件未正确安装或加载失败。解决检查目录~/.openclaw/extensions/openclaw-weixin/是否存在里面是否有package.json等文件。手动重启网关openclaw gateway restart然后再次查看列表。查看网关日志openclaw gateway logs寻找加载插件时的错误信息。6.2 API 调用阶段问题问题4调用 Gateway API (http://localhost:7474) 返回Connection refused或超时。排查Gateway 服务未运行或端口被占用。解决openclaw gateway status确认状态。如果未运行尝试openclaw gateway start。如果启动失败查看日志openclaw gateway logs。可能是默认端口7474被其他程序占用。可以尝试修改 Gateway 配置通常位于~/.openclaw/config.json中的端口号然后重启。问题5调用通道动作如send_message返回错误例如channel not found或action not found。排查通道名称错误或动作不支持。解决确认通道名称是openclaw-weixin通过openclaw channels list核对。查询该通道支持哪些动作openclaw channels describe openclaw-weixin。这会列出所有可用的actions和它们的参数格式。这是最重要的调试步骤不同版本的插件动作名称和参数可能有差异。严格按照describe命令返回的格式构造请求体。问题6发送消息成功但对方收不到或者 Webhook 收不到消息。排查微信客户端状态或 Webhook 配置问题。解决确认扫码登录的微信 PC 客户端或手机客户端处于在线状态。如果手机微信被杀后台或断网可能导致消息同步失败。对于 Webhook 收不到消息首先在 Gateway 中检查 Webhook 配置是否正确且启用openclaw webhooks list。测试你的 Webhook 服务器是否真的能从公网访问。可以使用ngrok或localtunnel临时暴露本地端口并将生成的 HTTPS URL 配置到 Webhook 中。Gateway 可能无法向纯http://localhost地址回调。在 Gateway 日志中搜索与 Webhook 发送相关的错误openclaw gateway logs | grep -i webhook。6.3 高级调试技巧当上述常规方法无法解决问题时需要更深入的调试开启详细日志OpenClaw Gateway 和插件可能有不同级别的日志。查看 CLI 和插件文档看是否有环境变量可以开启 Debug 模式。例如尝试在启动 Gateway 前设置DEBUGopenclaw:*。export DEBUGopenclaw:* openclaw gateway restart然后观察日志输出会非常详细有助于定位问题根源。直接检查进程使用系统命令查看 OpenClaw 相关进程是否正常运行。# Linux/macOS ps aux | grep openclaw # 或查看端口占用 lsof -i :7474 # Windows netstat -ano | findstr :7474 tasklist | findstr openclaw降级版本如果最新版本的插件或 CLI 存在兼容性问题可以尝试安装稍早的稳定版本。在安装时指定版本号npx -y tencent-weixin/openclaw-weixin-cli1.0.2 install社区与源码前往 OpenClaw 和tencent-weixin/openclaw-weixin插件的 GitHub 仓库在 Issues 中搜索是否有类似问题。如果具备能力可以阅读插件源码来理解其动作的具体实现和参数要求。整个wechat-claw项目为我们提供了一个极其便捷的桥梁让我们能够以开发者的方式与微信交互。它的优势在于架构清晰、依赖简单、与 OpenClaw 生态无缝集成。然而其稳定性和功能完整性高度依赖于底层的腾讯官方插件。在实际项目中务必做好错误隔离和降级方案并且始终将合规性与账号安全放在首位。从简单的通知机器人到复杂的自动化流程这个工具链为你打开了新的可能性但如何稳健、负责任地使用它则完全取决于你的设计与实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2600242.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…