为AI助手赋能:基于MCP协议的智能网页抓取工具部署与实战

news2026/5/3 7:03:23
1. 项目概述与核心价值如果你正在使用 Claude、Cursor 这类 AI 助手并且经常需要它们帮你从网上抓取信息、分析网页内容那么你很可能遇到过这样的困境AI 助手本身无法直接访问互联网你需要手动复制粘贴网址内容或者依赖一些功能有限、配置复杂的第三方插件。这个痛点正是mult-fetch-mcp-server这个项目诞生的初衷。它是一个基于 Model Context Protocol (MCP) 标准构建的服务器专门为 AI 助手提供强大、灵活且智能的网页抓取能力。简单来说它就像给你的 AI 助手装上了一双“网络之眼”和一双“灵巧之手”。通过它Claude 或 Cursor 可以直接理解你的指令比如“帮我抓取这个技术博客的最新文章并总结”然后自动完成从访问网页、处理反爬机制、提取核心内容到整理格式的全过程。我之所以花时间深入研究和部署这个工具是因为在技术调研、竞品分析和内容创作中手动处理网页信息的效率瓶颈实在太明显了。这个工具将我从重复的“复制-粘贴-清理”工作中解放了出来。它的核心价值在于三个“智能”智能模式切换自动在标准请求和浏览器模拟间选择以绕过反爬、智能内容提取利用算法过滤广告和导航栏只抓取文章主体以及智能内容分块将超长内容自动切割完美适配 AI 模型的上下文长度限制。接下来我将带你从零开始彻底搞懂如何部署、配置并深度使用这个工具分享我在实战中积累的所有配置技巧和避坑经验。2. 核心架构与设计思路拆解要真正用好mult-fetch-mcp-server不能只停留在“安装即用”的层面。理解其背后的设计哲学和架构能帮助你在遇到复杂场景时做出最合适的配置选择。整个项目的设计围绕 MCP 协议展开这是一种让 AI 助手与外部工具安全、标准化通信的桥梁。2.1 基于 MCP 协议的通信模型MCP 协议的核心是定义了客户端AI助手与服务器我们的抓取工具之间的通信方式。mult-fetch-mcp-server采用的是Stdio标准输入/输出传输模式。你可以把它想象成 AI 助手在后台默默地启动了这个服务器进程然后两者通过“管道”stdin/stdout传递 JSON 格式的指令和结果。这种设计的好处是隔离性好、启动快且不依赖网络端口非常适合本地集成。在架构上项目分为了清晰的三层传输层处理与 Claude Desktop 等客户端的原始 JSON-RPC 消息解析与封装。服务层核心逻辑所在包括工具注册、资源管理、提示词模板等。你调用的每一个fetch_*工具都在这里被定义和处理。抓取引擎层这是项目的“肌肉”包含了NodeFetcher基于node-fetch的快速请求和BrowserFetcher基于 Puppeteer 的完整浏览器模拟两套实现。服务层会根据策略自动选择或切换引擎。2.2 双引擎抓取策略为何与何时切换这是项目最精妙的设计之一。很多简单的爬虫工具只提供一种抓取方式遇到需要执行 JavaScript 才能渲染内容的单页应用SPA或者设置了严格反爬机制的网站时就束手无策了。Node.js 抓取引擎这是默认且首选的模式。它使用轻量级的 HTTP 客户端直接请求速度快、资源消耗小。适用于绝大多数静态网页或简单的动态网页API 返回数据。它的工作方式类似于你在终端里用curl命令。浏览器抓取引擎这是“重型武器”。它通过启动一个无头 Chrome 浏览器实例完整地加载页面、执行所有 JS、渲染 DOM。当你遇到返回 403 Forbidden 错误或者页面内容需要滚动、点击交互后才能出现时就需要切换到该模式。项目的“智能模式切换”功能autoDetectMode: true让这一切自动化。当 Node 引擎请求失败特别是遇到 403 状态码系统会自动重试浏览器引擎而你无需任何干预。当然你也可以通过参数useBrowser: true来强制指定比如你知道目标网站一定需要 JS 执行。2.3 内容处理流水线从原始 HTML 到可用文本抓取到原始 HTML 只是第一步。一堆夹杂着广告、导航、侧边栏的 HTML 代码对 AI 来说信息噪音太大。项目的处理流水线堪称一条精炼的“内容萃取”流水线原始获取根据模式拿到原始 HTML 或 JSON 数据。智能提取可选这是核心价值点。当设置extractContent: true时会调用 Mozilla 的 Readability 算法。这个算法会像人眼一样分析页面的 DOM 结构、标签密度、样式类名识别出哪一块是文章正文主体然后干净利落地剔除页眉、页脚、广告栏、评论区域等无关内容。我实测下来对新闻、博客、文档类页面的提取准确率超过 90%。格式转换根据你调用的工具fetch_markdown,fetch_plaintext将 HTML 转换为更纯净的 Markdown 或纯文本格式。这一步移除了所有标签只保留结构和文字内容。分块管理AI 模型有上下文长度限制例如 Claude 3.5 Sonnet 的 200K Token。如果一篇长论文或报告超过限制直接塞给 AI 会失败。ContentSizeManager和ChunkManager模块会按字节数默认约 5 万个字符将内容切割成块并为每块生成索引。AI 可以先处理第一块然后根据需要使用返回的chunkId和startCursor参数精准请求下一块实现对大文件的“流式”处理。理解这个流水线你就能明白为什么有时候需要调整contentSizeLimit参数或者为什么开启extractContent后得到的内容如此干净。3. 从零开始的完整部署与配置指南理论清晰后我们进入实战。我会以最常用的 Claude Desktop 为例展示从安装到配置的全过程并附上我验证过的、针对不同操作系统的最佳实践。3.1 环境准备与项目安装首先确保你的系统已经安装了Node.js (版本 18 或以上)和npm/pnpm。我个人推荐使用pnpm因为它在处理依赖时更快、更节省磁盘空间。安装方式有三种我推荐第一种全局安装推荐最方便这样你可以在任何地方直接运行这个工具。pnpm add -g lmcc-dev/mult-fetch-mcp-server安装完成后可以运行mult-fetch-mcp-server --help或npx lmcc-dev/mult-fetch-mcp-server --help测试是否成功。通过 Smithery 一键安装针对 Claude Desktop 用户最省心Smithery 是一个 MCP 服务器仓库。如果你只想给 Claude 用这是最快捷的方式。npx -y smithery/cli install lmcc-dev/mult-fetch-mcp-server --client claude这个命令会自动下载服务器并修改 Claude Desktop 的配置文件。完成后重启 Claude 即可。本地克隆开发适合开发者或需要修改源码git clone https://github.com/lmcc-dev/mult-fetch-mcp-server.git cd mult-fetch-mcp-server pnpm install pnpm run build3.2 配置 Claude Desktop 实现集成这是最关键的一步。Claude Desktop 通过一个 JSON 配置文件来声明它需要连接哪些 MCP 服务器。配置文件位置macOS:~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:%APPDATA%\Claude\claude_desktop_config.jsonLinux:~/.config/Claude/claude_desktop_config.json配置内容强烈推荐使用 npx 方式 打开或创建上述配置文件填入以下内容。npx方式无需关心全局安装路径最为灵活。{ mcpServers: { mult-fetch: { command: npx, args: [lmcc-dev/mult-fetch-mcp-server], env: { MCP_LANG: zh // 可选设置服务器语言为中文en 为英文 } } } }重要提示mult-fetch这个键名可以自定义它就是你在 Claude 对话中看到的工具分类名称。我习惯用简短明了的名字。配置详解与备选方案command: 执行命令。npx会临时下载并运行包无需永久安装。args: 命令参数即要运行的包名。env: 环境变量。MCP_LANG用于控制服务器返回信息的语言。备选方案指定绝对路径如果你将项目克隆到了本地或者全局安装后想指定特定版本可以使用以下格式。你需要找到node可执行文件和编译后的index.js的绝对路径。{ mcpServers: { mult-fetch: { command: /usr/local/bin/node, // 你的 node 路径 args: [/path/to/your/mult-fetch-mcp-server/dist/index.js], env: { MCP_LANG: zh } } } }配置完成后务必完全关闭并重新启动 Claude Desktop 应用程序以使配置生效。3.3 验证与初步测试重启 Claude 后打开一个新对话。如果你看到输入框下方或侧边栏出现了新的工具图标通常是一个螺丝刀或插件图标点击它你应该能看到一个名为mult-fetch或你自定义的名字的分类下面列出了fetch_html,fetch_markdown等工具。进行一个简单测试直接在对话中输入“请用 fetch_markdown 工具获取一下 GitHub 首页的内容。”Claude 应该会理解你的意图并在后台调用工具返回 GitHub 首页的 Markdown 格式内容。如果出现错误请检查 Claude 桌面应用的日志通常在~/.cache/Claude/logs或应用内的设置中可找到查看是否有服务器启动失败的错误信息。4. 核心工具参数详解与实战技巧工具配置好了但要用得好必须深入了解每个参数的含义。这里我结合大量实战案例为你拆解最核心、最常用的参数组合。4.1 基础抓取快速获取内容最基本的用法就是获取一个网页的原始内容。根据你需要的内容格式选择不同的工具fetch_html: 获取原始 HTML。适合需要分析页面结构或提取特定元素的场景。// Claude 调用时的参数示例 { url: https://example.com, timeout: 10000 // 10秒超时 }fetch_json: 获取 JSON 数据。常用于抓取 API 接口数据返回的就是解析好的 JSON 对象AI 可以直接分析。{ url: https://api.example.com/data, headers: { User-Agent: My-Custom-Agent/1.0 // 自定义请求头模拟特定客户端 } }fetch_markdown/fetch_plaintext: 我最常使用的两个工具。它们会先获取 HTML然后将其转换为更纯净的文本格式。markdown会保留一些基础格式如标题、链接plaintext则更彻底地去除所有标签。{ url: https://news.example.com/article, extractContent: true, // 关键开启智能提取只拿文章正文 includeMetadata: true // 同时包含标题、作者等元信息 }4.2 高级模式应对反爬与复杂页面当基础抓取失败尤其是返回 403 错误时就需要启用高级模式。强制浏览器模式对于严重依赖 JavaScript 的网站如 React/Vue 构建的单页应用或使用了反爬虫验证的站点。{ url: https://app.example.com/dashboard, useBrowser: true, // 强制使用无头浏览器 waitForSelector: .main-content, // 等待特定元素加载完成再抓取 waitForTimeout: 10000, // 最多等10秒 scrollToBottom: true // 模拟滚动到底部触发懒加载内容 }实战心得waitForSelector非常有用。你可以打开目标网页的开发者工具使用元素选择器找到那个代表内容加载完成的元素比如一个特定的 class 或 id填在这里。这能确保抓取时页面已完全渲染。智能模式切换默认开启这是“省心模式”。你不需要判断用哪种模式工具会先尝试快速的 Node 模式如果失败如 403自动重试浏览器模式。{ url: https://target-site.com, autoDetectMode: true // 默认就是 true通常无需显式设置 }4.3 内容分块与大数据量处理处理长文档、电子书或大型报告时分块功能是救星。启用分块与调整块大小{ url: https://example.com/long-document.pdf?formathtml, enableContentSplitting: true, // 启用分块 contentSizeLimit: 30000 // 将块大小从默认的50000调整为30000字符更适合某些模型的上下文 }调用后返回的会是一个“分块响应”。它不会包含全部内容而是会告诉你内容已被分割并给出chunkId和总大小。AI 助手如 Claude可以理解这个结构并自动地、一块一块地请求和处理所有内容。手动控制分块请求用于调试或自定义客户端 如果你自己在写客户端程序可以这样手动控制// 第一次请求获取第一块 { url: ..., startCursor: 0 } // 服务器返回{ content: “第一块文本”, chunkId: “abc123”, totalSize: 150000 } // 第二次请求获取从第50000字节开始的内容即第二块 { url: ..., chunkId: “abc123”, “startCursor”: 50000 }4.4 网络代理配置全攻略在某些网络环境下直接访问外部网站可能需要配置代理。项目提供了多层级的代理配置优先级从高到低如下请求参数指定最直接在每次请求的 JSON 参数中设置。{ url: https://external-site.com, proxy: http://127.0.0.1:7890, // 你的代理服务器地址 useSystemProxy: false // 明确禁用系统代理避免冲突 }环境变量会话级在启动 Claude Desktop 前设置系统环境变量。macOS/Linux:export HTTP_PROXYhttp://127.0.0.1:7890 export HTTPS_PROXYhttp://127.0.0.1:7890 # 然后正常启动 Claude DesktopWindows (PowerShell):$env:HTTP_PROXYhttp://127.0.0.1:7890 $env:HTTPS_PROXYhttp://127.0.0.1:7890系统代理设置如果你在系统设置或网络设置中配置了全局代理且useSystemProxy为true默认工具会尝试自动检测并使用。踩坑记录代理冲突是常见问题。如果配置了参数proxy工具会自动将useSystemProxy设为false。但如果没配proxy而useSystemProxy为true工具会去读环境变量如果环境变量也不对就会失败。我的建议是如果需要代理直接在请求参数里写死最清晰可靠。对于浏览器模式代理配置同样生效但注意无头 Chrome 可能需要额外的启动参数来应用系统代理在复杂情况下参数指定依然是首选。4.5 调试与日志查看当抓取失败或行为不符合预期时开启调试模式是定位问题的第一步。启用调试输出{ url: https://example.com, debug: true }开启后详细的日志会输出到标准错误流 (stderr)。对于 Claude Desktop 用户这些日志通常可以在其应用日志中找到位置如前所述。日志会清晰标记[NODE-FETCH]、[BROWSER-FETCH]、[CONTENT-EXTRACTOR]等模块让你一眼看出请求走到了哪一步在哪一步失败。查看持久化日志文件工具还会在~/.mult-fetch-mcp-server/debug.log文件中记录日志。你可以直接查看这个文件或者通过 Claude 请求一个特殊的“资源”来读取它如果服务器实现了该资源端点。5. 常见问题排查与实战解决方案即使配置无误在实际使用中也会遇到各种“妖魔鬼怪”。下面是我总结的典型问题及其解决方案。5.1 服务器启动失败或 Claude 无法识别工具症状Claude 重启后看不到新工具图标或者提示 MCP 服务器连接错误。排查步骤检查配置文件语法JSON 文件必须严格符合格式最后一个条目后不能有逗号。可以使用在线 JSON 校验工具检查。检查命令路径如果使用绝对路径配置确保node和index.js的路径完全正确并且当前用户有执行权限。最简单的方法是在终端中手动运行一下那个命令看是否成功。查看 Claude 日志这是最直接的错误信息来源。在日志中搜索mcp、mult-fetch或error关键词。手动测试服务器打开终端直接运行npx lmcc-dev/mult-fetch-mcp-server。如果服务器能启动并停留在等待输入的状态而不是立即报错退出说明服务器本身是好的。这时按CtrlC退出问题很可能出在 Claude 的配置或通信上。5.2 抓取返回 403 Forbidden 或空白内容症状工具执行了但返回状态码是 403或者 HTML 内容为空只有基本的框架。原因与解决这是最典型的反爬虫机制。网站通过检查User-Agent、请求头、访问频率或 JavaScript 挑战来屏蔽简单爬虫。首选方案启用useBrowser: true。浏览器模式能完美模拟真人操作通过所有前端检测。进阶调整在浏览器模式下尝试增加waitForTimeout或设置更精确的waitForSelector如等待文章标题.article-title出现确保动态内容加载完毕。添加请求头即使使用 Node 模式也可以尝试伪装成普通浏览器。{ url: ..., headers: { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/webp,*/*;q0.8 } }5.3 浏览器模式启动慢或内存占用高症状使用useBrowser: true时第一次请求特别慢或者电脑风扇狂转。原因启动无头 Chrome 浏览器实例是一个重操作需要时间和内存。优化策略利用浏览器复用注意closeBrowser参数默认为false。这意味着完成一次抓取后浏览器实例会保持打开供后续请求复用。不要每次请求都关闭浏览器除非你确定短时间内不会有下一次请求。按需使用不要对所有网站都启用浏览器模式。对于简单的静态站用默认的 Node 模式即可。仅对确实需要 JS 或反爬严重的站点启用。手动管理生命周期如果你进行一系列抓取任务可以在最后一个任务中设置closeBrowser: true来清理资源。或者服务器本身也有超时机制会自动关闭闲置的浏览器实例。5.4 内容提取不准确或遗漏症状开启了extractContent: true但提取出的正文包含了太多无关内容或者漏掉了部分正文。原因Readability 算法并非 100% 准确对于结构非标准或过于复杂的页面可能判断失误。解决方案关闭提取手动处理如果算法效果不好可以设置extractContent: false获取完整 HTML然后指示 AI 根据特定的 CSS 选择器如article .content来提取内容。这需要你对目标页面的结构有一定了解。使用fallbackToOriginal设置extractContent: true, fallbackToOriginal: true。这样当提取失败或结果太短时会自动回退到原始 HTML 内容保证至少能拿到数据。结合分块对于超长页面即使提取算法准确也可能因为内容太长而触发分块。确保你理解分块响应格式让 AI 有能力拼接和处理多个块。5.5 处理超时与网络不稳定症状请求长时间无响应最终超时失败。调整参数{ url: ..., timeout: 60000, // 将超时时间从默认的30秒提高到60秒 useBrowser: true, // 慢速网站可能也需要浏览器模式来等待资源 waitForTimeout: 30000 // 浏览器模式下给页面加载更长的等待时间 }网络层面检查代理配置是否正确网络连接是否稳定。可以先用curl或浏览器手动访问目标网址测试连通性。6. 进阶应用场景与集成思路掌握了基础用法和问题排查后我们可以看看如何将这个工具融入更自动化的工作流。6.1 与 AI 工作流自动化结合mult-fetch-mcp-server的核心价值是作为 AI 的“手和眼”。你可以设计这样的自动化流程信息收集与摘要让 AI 定时抓取指定新闻源、博客或论坛并自动生成每日摘要。竞品监控抓取竞品网站的更新日志、价格页面或帮助文档由 AI 分析变化并提醒。研究辅助给定一个研究主题让 AI 自主搜索通过其他工具、抓取相关学术页面或文档并整理成文献综述。内容重制抓取一篇优质长文由 AI 提取核心观点并改写成适合不同平台如微博、知乎、公众号的短文。关键在于你不再需要手动“搬运”内容。你只需要给 AI 一个目标和几个种子链接它就能调用fetch工具链自主地获取、分析和产出。6.2 构建自定义监控或聚合服务虽然项目主要面向 MCP 协议与 AI 助手交互但其底层的抓取引擎src/lib/fetchers/是高度模块化的。你可以将其作为一个独立的 Node.js 库集成到你自己的后端服务中。例如你可以创建一个简单的 Express 服务暴露一个/fetch接口内部调用这个库来抓取并提取内容。结合定时任务如node-cron构建一个网站内容变更监控服务。利用其强大的浏览器自动化能力Puppeteer来做一些简单的网页自动化测试或截图。6.3 性能优化与规模化考量如果你计划高频次、大规模地使用这个工具需要注意以下几点资源消耗浏览器实例是内存消耗大户。在高并发场景下需要考虑池化浏览器实例避免为每个请求都启动一个新浏览器。请求间隔工具内置了随机延迟 (noDelay: false默认) 以避免触发目标站点的速率限制。在编写自动化脚本时也应主动在请求间添加合理的间隔如 2-5 秒体现良好的“爬虫礼仪”。错误处理与重试网络请求天生不稳定。在你的客户端逻辑中应该对抓取失败实现重试机制特别是对于浏览器模式可以重试 1-2 次。缓存策略对于不常变动的页面如文档、文章可以考虑在客户端实现简单的缓存层将抓取结果缓存一段时间如 1 小时避免重复抓取减轻对方服务器压力和提升响应速度。7. 安全、合规与最佳实践最后也是最重要的一部分负责任地使用网络抓取工具。尊重robots.txt这个工具本身不自动检查robots.txt。你有责任在抓取前手动检查目标网站的robots.txt文件通常位于https://example.com/robots.txt并遵守其中关于爬虫的规则避免抓取被明确禁止的页面。控制请求频率避免在短时间内对同一网站发起海量请求这会对对方服务器造成压力也可能导致你的 IP 被封锁。合理设置延迟模拟人类浏览速度。识别个人信息抓取到的内容可能包含他人个人信息。在存储、处理或分享这些数据时务必遵守相关法律法规如 GDPR、个人信息保护法进行必要的脱敏处理。版权意识抓取内容用于个人学习、研究或摘要生成通常是合理的。但如果将抓取的大量内容用于商业出版、重新分发或训练商业模型则可能涉及版权问题。务必厘清使用边界。明确使用目的仅将工具用于合法的、符合道德规范的目的。不要尝试抓取登录后才能访问的非公开数据或进行其他可能违反网站服务条款的操作。在我自己的使用中我主要将其用于技术文档阅读、行业资讯聚合和个人知识管理。明确、克制的使用目的配合工具强大的能力才能让它长久、稳定地成为你的得力助手而不是麻烦的来源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2577503.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…