为AI智能体赋能视觉:zeuxis本地截图服务器的MCP协议实践

news2026/5/8 9:31:29
1. 项目概述为AI智能体装上“眼睛”的本地截图服务器如果你正在开发或使用基于MCPModel Context Protocol的AI智能体并且希望它能“看见”你屏幕上的内容那么zeuxis这个工具绝对值得你深入了解。简单来说zeuxis是一个本地的、只读的MCP截图服务器。它的核心价值在于让AI智能体能够自主、按需地捕获屏幕图像而无需你手动截图、保存、再上传。想象一下你正在和AI讨论一个复杂的UI布局问题或者调试一个只在特定状态下出现的视觉Bug你只需要告诉AI“看看我的屏幕”它就能通过zeuxis直接获取当前屏幕的截图并基于图像内容进行下一步的分析和推理。这极大地缩短了“人机协作”的反馈循环将视觉信息无缝集成到了AI的工作流中。我最初接触这类需求是在尝试用AI辅助前端开发时经常需要向AI描述一个组件的样式或一个报错弹窗的内容过程繁琐且容易产生歧义。zeuxis的出现相当于为AI智能体安装了一双“本地眼睛”它运行在你的机器上通过标准的MCP协议与AI客户端通信安全且高效。它支持多种捕获模式全屏、活动窗口、光标所在窗口、光标区域、指定矩形区域等几乎覆盖了所有你可能需要的截图场景。返回的结果不仅是一个本地的file://图片链接还附带了丰富的元数据如捕获模式、尺寸、哈希值等方便AI进行后续处理。2. 核心设计思路安全、高效、协议优先的本地服务zeuxis的设计哲学非常清晰主要体现在三个“第一”上CLI-first、MCP-first和Safety-first。这决定了它的使用体验和可靠性。2.1 CLI-first极简部署与集成“CLI-first”意味着它被设计成一个单一的可执行二进制文件默认使用stdio标准输入输出作为MCP传输方式。这种设计带来了巨大的便利性。你不需要配置复杂的网络端口不用担心防火墙规则更无需搭建额外的服务端。安装后直接运行zeuxis命令它就开始在后台通过标准输入输出流与MCP客户端如Claude Desktop、Cursor等进行通信。这种基于进程间通信IPC的方式使得集成变得异常简单。在你的MCP客户端配置文件中通常只需要指定zeuxis这个命令即可无需任何网络地址参数。这种极简的集成方式降低了使用门槛也符合现代开发工具的设计趋势。2.2 MCP-first标准化与工具发现“MCP-first”是zeuxis能无缝接入AI工作流的关键。MCP协议定义了AI模型与外部工具和数据进行交互的标准方式。zeuxis严格遵循这一协议对外提供一组明确定义的工具Tools。AI客户端在连接时会获取到这些工具的完整JSON Schema描述包括工具名称、参数、返回值格式等。这意味着AI智能体可以“理解”如何使用zeuxis就像它理解如何调用一个计算器函数一样。例如capture_screen工具需要哪些可选参数返回的图片链接是什么格式错误码有哪些都有明确的规范。这种显式的工具定义保证了交互的稳定性和可预测性避免了临时性的、容易出错的adhoc指令拼接。2.3 Safety-first运行时安全与资源管控在本地运行一个能随时截取屏幕内容的服务安全性是首要考虑。zeuxis在这一点上做得相当周全。它不是简单地调用系统截图API而是构建了一套完整的安全边界严格的输入验证所有来自客户端的参数如坐标、尺寸、延迟时间都会经过严格校验防止非法值导致程序崩溃或意外行为。有界的并发控制通过信号量Semaphore限制同时进行的捕获任务数量默认最多2个。这防止了因AI智能体快速、连续发起大量截图请求而耗尽系统资源。资源隔离与超时控制每个截图任务都在一个独立的子进程worker中执行。父进程会严格监控任务执行时间如果超时默认15秒会先尝试温和终止必要时强制杀死该子进程。这确保了即使某个截图操作卡住也不会拖垮整个zeuxis服务。临时文件管理生成的截图文件被妥善管理在临时目录并设有数量默认最多64个和总大小默认512MB的上限。每次成功写入新文件后会尝试清理旧文件避免磁盘空间被无意占满。这种“安全第一”的设计让你可以放心地将zeuxis集成到自动化流程中而不必担心它成为系统的不稳定因素。3. 安装与配置详解跨平台部署指南zeuxis的安装方式多样可以适应不同用户的使用习惯和操作系统环境。3.1 安装方式选择对于Rust开发者最直接的方式是通过Cargo安装cargo install zeuxis这会将最新的稳定版编译并安装到你的Cargo二进制目录通常是~/.cargo/bin。对于macOS用户使用Homebrew是更便捷的选择brew install bnomei/zeuxis/zeuxisHomebrew会自动处理依赖和路径配置。如果你不想安装编译环境或者需要特定版本可以直接从GitHub Releases页面下载预编译好的二进制压缩包解压后将zeuxis可执行文件放到你的系统PATH路径下即可。对于开发者或想体验最新功能的用户可以从源码编译git clone https://github.com/bnomei/zeuxis.git cd zeuxis cargo build --release编译完成后可执行文件位于target/release/zeuxis。3.2 权限配置要点在不同的操作系统上截图功能需要相应的系统权限。macOS这是zeuxis支持最好的平台。它会在每次捕获操作前自动检查“屏幕录制”权限。如果未授权它会通过系统API尝试触发授权对话框并立即返回一个permission_denied错误。这里有一个关键细节授权请求和本次工具调用是分离的。也就是说当AI第一次调用截图失败并提示权限不足时你需要手动去“系统设置 隐私与安全性 屏幕录制”中勾选你的终端或AI客户端应用取决于zeuxis的运行环境。授权完成后需要让AI再次调用同一个工具才能成功截图。此外依赖于光标位置的工具如capture_cursor_region可能还需要“辅助功能”权限来读取全局光标坐标。Linux在v1版本中zeuxis没有实现统一的权限预检机制。截图能力高度依赖于你的桌面环境GNOME, KDE等、显示服务器X11或Wayland以及底层使用的截图后端库如grim、slurp用于Wayland。在Wayland下由于安全模型更严格截图通常需要更多配置甚至可能无法直接捕获其他窗口。如果你的光标相关工具失败建议首先运行get_runtime_diagnostics工具来查看运行环境诊断信息这能帮你快速定位是权限问题还是后端不支持。3.3 客户端集成配置zeuxis需要通过MCP客户端来使用。配置方式因客户端而异但核心都是告诉客户端如何启动zeuxis服务。一个通用的MCP服务器配置JSON示例如下{ mcpServers: { zeuxis: { command: zeuxis, args: [] } } }你需要将这个配置片段放入你所用的AI客户端对应的配置文件中。例如在Claude Desktop中配置文件通常位于~/Library/Application Support/Claude/claude_desktop_config.json。一些命令行工具提供了更便捷的添加方式Codex CLI:codex mcp add zeuxis -- zeuxisAmp CLI:amp mcp add zeuxis -- zeuxis添加后可以使用list命令确认zeuxis已成功注册。当AI客户端启动时它会自动运行zeuxis命令并建立连接。4. 核心工具解析从全屏到像素级精准捕获zeuxis提供了一套丰富的截图工具每种工具都针对特定场景设计。理解它们的区别和适用场景能让你和你的AI助手更高效地获取所需的视觉信息。4.1 环境探查与诊断工具在开始截图前了解当前屏幕环境至关重要。zeuxis提供了几个探查工具list_monitors: 列出所有可用的显示器及其ID。在多显示器 setups 中你可以用这个ID来指定捕获哪个显示器。返回的信息通常包括显示器的名称、尺寸和位置。list_windows: 列出当前所有窗口。这个工具功能强大提供了丰富的过滤参数focused_only: 仅列出当前获得焦点的窗口。include_system_windows: 是否包含系统级窗口如任务栏、菜单。app_contains/title_contains: 根据应用程序名或窗口标题进行模糊过滤。 它返回的每个窗口都有一个snapshot_id和window_id。这里有一个重要机制list_windows调用瞬间的窗口列表会被视为一个“快照”snapshot。后续如果你想捕获这个快照中的某个特定窗口必须使用capture_window工具并传入本次调用返回的snapshot_id和window_id。这是因为窗口ID在系统层面可能动态变化而快照ID确保了操作的确定性。get_runtime_diagnostics: 这是你的第一道故障排查防线。它会报告运行时的捕获就绪状态包括必要的权限是否已授予、是否成功探测到显示器、光标功能是否可用等。如果在Linux上截图失败首先运行这个工具能帮你快速缩小问题范围。4.2 主要截图工具详解所有capture_*工具都共享一组公共参数用于控制捕获行为delay_ms/delay_seconds: 延迟捕获。这在需要捕捉一个短暂出现的状态时非常有用比如弹出一个菜单后再截图。两者选一即可最大值被限制在30秒防止误操作导致长时间等待。play_sound: 捕获完成后是否播放系统默认的快门声。这提供了音频反馈让你知道截图已成功完成。output: 输出设置。可以是一个预设字符串analysis,exact,compact也可以是一个详细的对象。analysis模式可能会进行一些优化如适当压缩适合AI分析exact追求像素级原样保存compact则在文件大小和精度间平衡。下面是各个核心截图工具的对比与使用场景工具名称关键参数核心用途与场景capture_screenmonitor_id?默认的上下文获取工具。捕获整个显示器不指定monitor_id则捕获主显示器。当你需要向AI展示整个桌面状态、多窗口布局或全屏应用时使用。capture_active_window无最高频的窗口捕获工具。捕获当前拥有焦点的窗口。适合当你正在某个应用如代码编辑器、浏览器中操作并需要AI查看该应用内容时。capture_cursor_windowinclude_system_windows?精准的鼠标指向捕获。捕获当前光标下方的窗口。默认排除系统窗口适合快速获取你正在查看或悬停的窗口内容而无需先切换焦点。capture_windowsnapshot_id,window_id确定性窗口捕获。基于list_windows返回的快照ID和窗口ID来捕获一个特定窗口。即使该窗口后来被最小化或改变了Z-order只要快照有效就能捕获到。适用于自动化脚本中对特定应用程序窗口进行可靠截图。capture_cursor_regionsize局部细节放大。捕获一个以光标为中心的正方形区域。参数size是区域的边长逻辑点。非常适合需要AI查看屏幕上某个微小元素如图标、按钮、文本的细节时使用。capture_rectx,y,width,height全局坐标精确框选。捕获屏幕上任意一个精确的矩形区域。坐标(x, y)是矩形左上角相对于整个桌面坐标系逻辑点的位置。适合需要捕获跨窗口的特定区域或者已知精确坐标的自动化测试。capture_monitor_regionmonitor_id,x,y,width,height多显示器工作流的利器。与capture_rect类似但坐标(x, y)是相对于指定显示器monitor_id的左上角。这简化了在多显示器环境下计算坐标的复杂度。重要提示坐标与像素的区分所有工具接受的坐标和尺寸参数如x,y,width,height单位都是“逻辑点”logical points。这与操作系统UI布局使用的单位一致会受显示缩放比例的影响。而最终生成的图片尺寸单位是“物理像素”source pixels。zeuxis会在元数据中返回source_scale_factor来源缩放因子帮助你进行换算。例如在200%缩放的4K显示器上指定一个100x100逻辑点的区域最终图片对应区域可能是200x200物理像素。4.3 会话管理与历史工具zeuxis还维护了一个简单的会话内历史记录方便你追溯和管理截图get_latest_capture: 获取当前会话中最近一次成功捕获的结果包括文件链接和元数据而无需拍摄新截图。适合在AI多步推理中重复使用同一张截图。list_session_artifacts: 列出当前会话创建的所有截图文件每个文件都标记了是否为最新is_latest。clear_session_artifacts: 删除当前会话的所有截图文件并重置最新捕获状态。用于清理磁盘空间或开始一个新的、独立的任务序列。5. 高级配置与性能调优虽然zeuxis开箱即用但通过环境变量或命令行参数进行配置可以更好地适应你的工作负载和系统环境。配置的优先级是命令行参数 环境变量 默认值。5.1 核心性能与资源限制配置下表列出了最关键的几个配置项及其影响配置项 (CLI Flag / Env Var)默认值取值范围作用与调优建议--max-concurrent-capturesZEUXIS_MAX_CONCURRENT_CAPTURES21..16控制并行截图任务数。如果你的AI智能体倾向于快速发起一连串截图请求例如快速扫描多个窗口适当调高此值如4可以提升吞吐量。但设置过高会增加CPU和内存瞬时压力也可能触发系统的安全限制。对于大多数交互式场景默认值2是平衡的选择。--blocking-task-timeout-msZEUXIS_BLOCKING_TASK_TIMEOUT_MS15000(15秒)100..300000截图任务的超时时间。如果一次截图操作超过此时长父进程会终止对应的worker子进程。如果你的屏幕内容非常复杂例如一个巨大的3D渲染窗口或者系统负载很高导致截图缓慢可以适当增加这个超时时间。--worker-kill-grace-msZEUXIS_WORKER_KILL_GRACE_MS25010..30000终止worker的宽限期。当父进程决定终止一个超时或异常的worker时会先发送终止信号等待这个宽限期如果worker仍未退出则强制杀死。通常不需要修改除非你发现worker进程无法被正常终止。--max-artifactsZEUXIS_MAX_ARTIFACTS641..10000保留的临时截图文件最大数量。每次成功写入新文件后会清理最旧的文件以维持数量上限。如果你进行的是一次长时间的、包含大量截图步骤的AI会话可以调高此值避免有用的中间截图被过早清理。--max-artifact-bytesZEUXIS_MAX_ARTIFACT_BYTES536870912(512 MB)1KB..10GB保留的临时截图文件总大小上限。这是防止磁盘空间被意外占用的第二道防线。结合文件数量限制共同作用。根据你截图的分辨率和频率调整。--artifact-dirZEUXIS_ARTIFACT_DIR系统临时目录任意有效路径截图文件的存储目录。默认存在系统临时目录如/tmp或%TEMP%系统重启可能会清理。如果你需要持久化保存AI会话中的截图以供后续分析可以将其设置到一个自定义的、不会被自动清理的目录。5.2 安全与功能增强配置ZEUXIS_ARTIFACT_HMAC_KEY这是一个可选的环境变量。如果设置了此变量值为一个密钥字符串zeuxis会在每次捕获结果的元数据中计算并包含一个artifact_hmac_sha256字段。这是该截图文件内容的HMAC-SHA256哈希值使用你提供的密钥计算。这有什么用在高级工作流中如果你需要将截图文件传递给其他受信任的服务进行进一步处理这个HMAC值可以作为一个完整性校验凭证确保文件在传输过程中未被篡改。--capture-sound-file/ZEUXIS_CAPTURE_SOUND_FILE允许你自定义截图完成时播放的声音文件路径当play_soundtrue时。默认使用系统快门声。你可以将其指向一个自定义的.wav或.mp3文件提供个性化的反馈。RUST_LOG标准的Rust日志环境变量。当遇到疑难杂症时可以通过设置RUST_LOGzeuxisdebug来运行zeuxis它会在标准错误输出中打印详细的调试日志帮助你了解内部执行过程便于排查问题。6. 实战应用场景与避坑指南理解了工具和配置我们来看看如何在实际项目中应用zeuxis以及我踩过的一些坑。6.1 场景一AI辅助GUI自动化测试假设你正在编写一个Web应用的自动化测试脚本并希望AI能基于当前页面状态做出判断。你可以这样设计流程使用list_windows找到浏览器窗口的snapshot_id和window_id。在测试的关键步骤如表单提交后、弹窗出现时使用capture_window并传入之前获取的ID对浏览器窗口进行确定性截图。将截图的文件链接和元数据传递给AI让它分析页面元素如“提交按钮是否变灰”、“成功提示信息是否出现”。AI根据分析结果决定下一步测试操作如点击确认、验证文本。避坑点窗口ID可能会因为窗口打开/关闭而失效。因此对于长时间运行的自动化任务最好在每次需要截图前重新调用list_windows获取最新的快照和ID或者使用capture_active_window如果测试脚本能确保窗口焦点。此外截图操作本身有延迟即使delay_ms0在测试快速变化的UI时需要考虑这个微小的时间差。6.2 场景二交互式代码调试与问题解答当你向AI如Claude、ChatGPT询问一个复杂的编程问题而问题与具体的UI、错误信息或数据结构可视化相关时直接告诉AI“请使用zeuxis的capture_cursor_region工具查看我光标所在的这个错误弹窗。”AI会调用该工具可能需要你指定size例如200获取区域截图。AI基于截图中的错误代码和描述给出更精准的解决方案。避坑点capture_cursor_region捕获的是正方形区域。如果你需要捕获一个长方形的区域比如一整行代码capture_rect是更合适的选择但你需要计算坐标。一个技巧是可以先使用capture_cursor_region捕获一个小区域从返回的元数据中得到光标所在位置的精确坐标再以此为基础计算矩形坐标进行第二次capture_rect调用。6.3 场景三文档生成与工作流记录你可以创建一个AI工作流让它记录你完成某个任务如软件配置的所有步骤每进行一步操作如打开设置面板让AI调用capture_active_window。AI将截图文件链接和你的操作描述一起整理成结构化的Markdown文档。最终生成一份图文并茂的教程或工作报告。避坑点注意临时文件的清理。这种场景下截图数量可能很多。确保--max-artifacts和--max-artifact-bytes设置得足够大或者将--artifact-dir指向一个专用目录并在工作流结束后手动清理。另外考虑使用output: compact模式来平衡图片质量和文件大小节省磁盘空间。6.4 平台特异性问题与排查macOS权限弹窗不出现有时系统可能不会自动弹出权限请求窗口。如果get_runtime_diagnostics显示权限被拒绝你可以手动打开“系统设置 隐私与安全性 屏幕录制”检查并添加相应的应用终端或AI客户端。添加后必须完全退出并重启该应用权限才会生效。Linux Wayland下窗口捕获失败这是最常见的问题。首先运行get_runtime_diagnostics。如果提示缺少权限或后端不支持你可能需要查找你的桌面环境或Wayland合成器如sway、river关于截图权限的配置。可能需要安装特定的截图后端如grim截图和slurp区域选择并确保zeuxis编译时支持了相应的特性。作为备选方案回退到使用capture_screen全屏或capture_rect指定坐标这些方式在Wayland下通常限制较少。截图内容为黑屏或空白这通常发生在捕获硬件加速渲染的窗口如游戏、视频播放器、某些GPU加速的图形应用时。这是由于这些窗口的渲染方式导致的。可以尝试将应用切换到“窗口化”或“无边框窗口化”模式而不是“全屏独占”模式。在macOS上某些应用在“缩放”显示模式下也可能出现问题尝试切换到“默认”分辨率。作为最后手段使用capture_screen捕获整个显示器虽然会包含无关内容但通常能成功。7. 开发与贡献指南zeuxis项目本身也欢迎贡献。项目代码质量很高采用了标准的Rust开发工作流。7.1 本地开发环境搭建克隆仓库后你可以使用以下命令进行开发cargo check: 快速检查代码语法。cargo fmt --all --check: 检查代码格式是否符合规范。cargo clippy --all-targets --all-features: 运行Clippy linter捕捉代码中的常见问题和不佳实践。cargo test --all-targets: 运行所有测试。cargo audit: 检查依赖项是否存在已知的安全漏洞。项目使用了prek工具进行本地提交前检查。安装prek后运行prek install可以安装Git钩子确保每次提交前自动运行代码格式化和Clippy检查保持代码库整洁。7.2 架构理解与扩展方向zeuxis的核心架构清晰主进程Parent Process负责MCP协议通信、解析客户端请求、参数验证、任务调度通过信号量控制并发、超时管理以及worker进程的生命周期管理。Worker子进程每个截图任务都在一个独立的子进程中执行。这种设计将不稳定的、可能阻塞的截图操作与稳定的主服务隔离。即使某个截图操作卡死主进程也能通过超时机制将其终止而不影响其他请求。平台抽象层针对macOS和Linux使用了不同的底层系统API进行截图和光标位置获取。这部分的代码是平台相关的也是未来扩展支持Windows或其他平台时需要主要修改的地方。如果你想为zeuxis添加新功能比如支持一种新的截图模式如捕获特定形状区域主要的修改点在于在src/tools.rs中定义新的工具Schema。在src/handler.rs中实现该工具的参数处理和路由逻辑。在平台相关的实现层如src/platform/macos.rs添加具体的捕获函数。编写相应的单元测试和集成测试。zeuxis通过将复杂的系统交互封装成简单的MCP工具为AI智能体打开了感知本地视觉信息的大门。它的设计在易用性、安全性和性能之间取得了很好的平衡。无论是用于增强日常的人机交互效率还是构建复杂的自动化视觉工作流它都是一个强大而可靠的基础组件。在实际使用中从简单的capture_active_window开始逐步尝试更精准的capture_cursor_region再到利用list_windows和capture_window实现确定性自动化你会逐渐体会到这种“可编程的视觉”带来的巨大便利。

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