当前位置: 首页 > article >正文

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制截图分析模块

OpenClaw技能开发入门为Phi-3-vision-128k-instruct定制截图分析模块1. 为什么需要定制截图分析技能上周我在整理产品文档时遇到一个典型场景需要从上百张软件界面截图中提取关键UI元素的文字描述和功能说明。手动操作不仅耗时还容易遗漏细节。这让我开始思考——能否让OpenClaw帮我自动完成这个枯燥的任务经过验证现有OpenClaw基础技能库中的screen-capture模块只能实现简单的截图保存缺乏与多模态模型的深度集成。而Phi-3-vision-128k-instruct这个支持128k上下文的多模态模型恰好能完美解决图文理解的需求。于是决定动手开发一个专属技能插件。这个定制模块需要实现三个核心能力精准捕获屏幕指定区域调用Phi-3视觉API进行图文分析将模型输出结构化存储为Markdown报告2. 开发环境准备2.1 基础依赖安装首先确保本地已部署OpenClaw核心框架我用的v0.8.3版本。新建技能项目前需要安装必要的Python包pip install pillow opencv-python httpx python-dotenv特别提醒如果使用MacOS系统需要额外授权屏幕录制权限。我在第一次运行时忽略了这点导致截图始终是黑屏。解决方法很简单进入系统设置 隐私与安全性在屏幕录制中勾选终端应用如iTerm或Terminal2.2 Phi-3模型服务配置假设已在本地通过vllm部署Phi-3-vision-128k-instruct模型服务默认端口为5000。我们需要在OpenClaw配置文件中添加模型端点// ~/.openclaw/openclaw.json { models: { providers: { phi3-vision: { baseUrl: http://localhost:5000/v1, apiKey: your-api-key, api: openai-completions, models: [ { id: phi-3-vision-128k-instruct, name: Phi-3 Vision, contextWindow: 131072 } ] } } } }配置完成后记得重启网关服务openclaw gateway restart3. 技能核心逻辑实现3.1 项目结构设计采用OpenClaw推荐的技能项目结构phi3-screenshot-analyzer/ ├── __init__.py ├── manifest.json ├── requirements.txt ├── assets/ │ └── icon.png └── src/ ├── screenshot.py ├── phi3_client.py └── report_generator.py其中manifest.json是技能的核心声明文件{ name: phi3-screenshot-analyzer, version: 0.1.0, description: Screenshot analysis with Phi-3-vision model, author: Your Name, skills: [ { name: analyze_screenshot, description: Capture and analyze screen region with Phi-3-vision, parameters: { region: { type: string, description: Screen region in x,y,width,height format }, prompt: { type: string, description: Analysis instruction for the model } } } ] }3.2 截图捕获实现在screenshot.py中实现区域捕获功能。这里我踩过一个坑直接使用PIL的ImageGrab在跨平台时表现不一致。最终采用opencvpyautogui组合方案import cv2 import numpy as np import pyautogui def capture_region(region_str): try: x, y, w, h map(int, region_str.split(,)) screenshot pyautogui.screenshot(region(x, y, w, h)) img cv2.cvtColor(np.array(screenshot), cv2.COLOR_RGB2BGR) # 临时保存截图供调试 temp_path /tmp/claw_screenshot.png cv2.imwrite(temp_path, img) return temp_path except Exception as e: raise ValueError(f截图失败: {str(e)})3.3 模型调用封装phi3_client.py中实现对Phi-3视觉API的调用。这里需要注意多模态API的特殊传参方式import base64 import httpx def analyze_image(image_path, prompt): with open(image_path, rb) as image_file: encoded_image base64.b64encode(image_file.read()).decode(utf-8) messages [ { role: user, content: [ {type: text, text: prompt}, {type: image_url, image_url: fdata:image/png;base64,{encoded_image}} ] } ] try: response httpx.post( http://localhost:5000/v1/chat/completions, json{ model: phi-3-vision-128k-instruct, messages: messages, max_tokens: 4096 }, timeout30.0 ) return response.json()[choices][0][message][content] except Exception as e: return f模型调用失败: {str(e)}4. 功能集成与测试4.1 主技能类实现在__init__.py中集成各个模块from .src.screenshot import capture_region from .src.phi3_client import analyze_image from .src.report_generator import generate_markdown from pathlib import Path import datetime class Phi3ScreenshotAnalyzer: def __init__(self, workspace/tmp/openclaw_workspace): self.workspace Path(workspace) self.workspace.mkdir(exist_okTrue) async def analyze_screenshot(self, region, prompt): try: # 1. 捕获截图 image_path capture_region(region) # 2. 调用模型分析 analysis_result analyze_image(image_path, prompt) # 3. 生成结构化报告 report_path self.workspace / freport_{datetime.datetime.now().strftime(%Y%m%d_%H%M%S)}.md generate_markdown( image_pathimage_path, analysisanalysis_result, output_pathstr(report_path) ) return { status: success, report_path: str(report_path), analysis: analysis_result } except Exception as e: return { status: error, message: str(e) }4.2 测试验证通过OpenClaw CLI进行功能测试openclaw skills test phi3-screenshot-analyzer analyze_screenshot \ --region 100,100,800,600 \ --prompt 请描述截图中的主要UI元素及其功能成功执行后会返回类似结果{ status: success, report_path: /tmp/openclaw_workspace/report_20240615_143022.md, analysis: 截图显示的是一个代码编辑器界面...模型分析结果 }5. 实际应用案例最近我用这个技能自动生成了产品文档的UI说明部分。典型工作流如下编写批处理脚本遍历所有截图文件对每张截图执行分析results [] for img in screenshot_files: result analyzer.analyze_screenshot( region0,0,1920,1080, prompt提取图中所有按钮文字和工具提示 ) results.append(result)将生成的Markdown报告整合到文档系统相比手动操作效率提升了约8倍从6小时压缩到45分钟。更重要的是模型能发现一些容易被人类忽略的细节比如界面中不一致的颜色编码。6. 开发经验总结通过这个项目我总结了几个OpenClaw技能开发的关键要点关于性能优化初期直接传输原始截图导致API响应缓慢。后来改为先压缩到720p分辨率再转JPEG格式质量80%使传输数据量减少90%而不影响识别精度。关于错误处理需要特别注意模型超时情况。我的解决方案是加入重试机制并在连续失败时自动降低图片分辨率。在phi3_client.py中增加了如下逻辑MAX_RETRIES 3 INITIAL_TIMEOUT 30.0 for attempt in range(MAX_RETRIES): try: response httpx.post( # ...其他参数不变 timeoutINITIAL_TIMEOUT * (attempt 1) ) return process_response(response) except httpx.ReadTimeout: if attempt MAX_RETRIES - 1: raise compress_image(image_path, quality80 - attempt*20)关于模型提示词发现Phi-3-vision对具体明确的指令响应更好。例如差提示描述这张图片好提示列出图中所有交互元素用表格形式展示包含1) 元素类型 2) 位置(x,y) 3) 文字内容这个技能现在已成为我的日常开发利器从界面走查到文档生成都能发挥作用。它的价值不仅在于节省时间更在于提供了一种人机协作的新范式——由AI处理重复的视觉解析工作让人可以专注于更高层次的决策。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制截图分析模块

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制截图分析模块 1. 为什么需要定制截图分析技能 上周我在整理产品文档时遇到一个典型场景:需要从上百张软件界面截图中提取关键UI元素的文字描述和功能说明。手动操作不仅耗时,还容易遗…...

双模型协作实战:OpenClaw路由Kimi-VL-A3B-Thinking与Whisper处理音图文混合输入

双模型协作实战:OpenClaw路由Kimi-VL-A3B-Thinking与Whisper处理音图文混合输入 1. 需求场景与技术选型 上周我需要整理一场技术研讨会的录音和幻灯片。现场拍摄的照片包含PPT内容,同时手机录音记录了讲解语音——这种音图文混合素材的传统处理方式需要…...

ROS2开发效率翻倍:我私藏的这10个VSCode插件,你可能漏装了

ROS2开发效率翻倍:我私藏的这10个VSCode插件,你可能漏装了 在ROS2开发中,选择合适的工具可以显著提升工作效率。VSCode作为一款轻量级但功能强大的代码编辑器,通过插件的扩展可以完美适配ROS2开发的各种需求。本文将分享10个可能被…...

从‘瑞士军刀’到‘乐高积木’:实战解析Agent工具生态的模块化设计哲学

从‘瑞士军刀’到‘乐高积木’:实战解析Agent工具生态的模块化设计哲学 在数字世界的工具箱里,Agent技术正经历着从"万能工具"到"组合积木"的范式转移。就像乐高积木通过标准化接口实现无限创意组合,现代Agent工具生态通…...

OpenClaw自动化测试:用SecGPT-14B批量验证Web漏洞真实性

OpenClaw自动化测试:用SecGPT-14B批量验证Web漏洞真实性 1. 从扫描报告到真实漏洞的困境 每次拿到Web漏洞扫描器的报告时,我都会陷入一种矛盾——报告里动辄上百条"漏洞"中,真正能利用的往往不到20%。上周某次渗透测试中&#xf…...

从课堂到职场:数字电路面试官最爱问的5个FPGA/HDL实战问题深度解析

从课堂到职场:数字电路面试官最爱问的5个FPGA/HDL实战问题深度解析 在数字电路设计的职业道路上,从校园知识到实际工程应用往往存在一道隐形的鸿沟。许多应届生在面试时能够流畅背诵教科书定义,却在面对具体设计问题时束手无策。本文精选了五…...

避坑指南:ERA5数据GRIB转Hysplit/MeteInfo格式,这些细节错了白算一周

ERA5气象数据格式转换实战:从GRIB到Hysplit/MeteInfo的高效避坑手册 当你在深夜盯着屏幕前运行了72小时的后向轨迹计算突然报错终止,或是发现转换后的数据维度与模型要求完全不匹配时,那种绝望感每个气象科研人员都深有体会。本文源自三个实验…...

在 openSUSE Tumbleweed 上为 Canon LBP2900 配置网络打印:从驱动安装到 CUPS 调试

1. 准备工作:驱动下载与依赖安装 Canon LBP2900 虽然是一款经典机型,但官方对 Linux 的支持一直比较保守。我去年在给公司部署办公环境时就遇到过这个坑,当时花了两天时间才搞明白驱动安装的门道。首先需要从佳能官网下载专用驱动包&#xff…...

芯片测试实战:Tessent EDT的External Flow与Internal Flow到底怎么选?

芯片测试实战:Tessent EDT的External Flow与Internal Flow到底怎么选? 在芯片设计领域,测试覆盖率与效率直接影响产品良率和上市时间。作为DFT(可测试性设计)工程师,我们常常面临一个关键决策:如…...

ADXL345嵌入式驱动设计:mbed平台C++封装与中断+FIFO优化

1. ADXL345嵌入式驱动库深度解析:面向mbed平台的C封装设计与工程实践ADXL345是Analog Devices公司推出的超低功耗、高分辨率(13位)三轴数字加速度计,采用IC和SPI双接口设计,支持2g/4g/8g/16g四档可编程量程&#xff0c…...

OpenClaw学术助手搭建:gemma-3-12b-it自动生成论文阅读报告

OpenClaw学术助手搭建:gemma-3-12b-it自动生成论文阅读报告 1. 为什么需要自动化论文阅读助手 作为一名计算机视觉方向的研究生,我每天需要跟踪至少3-5篇arXiv最新论文。传统的手动阅读方式效率低下:下载PDF、跳读摘要、标记重点、整理笔记…...

ColorControl终极指南:专业级NVIDIA显卡与LG电视显示调校完全手册

ColorControl终极指南:专业级NVIDIA显卡与LG电视显示调校完全手册 【免费下载链接】ColorControl Easily change NVIDIA display settings and/or control LG TVs 项目地址: https://gitcode.com/gh_mirrors/co/ColorControl ColorControl是一款功能强大的开…...

告别CAD模型:手把手教你用COLMAP为任意物体创建Gen6D训练/测试集

零基础构建Gen6D训练集:从实物拍摄到坐标系定义的完整指南 当我们需要让AI系统理解一个物体在三维空间中的精确位置和方向时,传统方法通常依赖物体的CAD模型。但现实情况是,许多独特物体(如古董艺术品、定制工业零件或生物标本&a…...

让Kindle电子书封面重获新生:开源工具Fix-Kindle-Ebook-Cover使用指南

让Kindle电子书封面重获新生:开源工具Fix-Kindle-Ebook-Cover使用指南 【免费下载链接】Fix-Kindle-Ebook-Cover A tool to fix damaged cover of Kindle ebook. 项目地址: https://gitcode.com/gh_mirrors/fi/Fix-Kindle-Ebook-Cover 深夜的阅读时光本该是惬…...

保姆级教程:用Matlab处理WIFI CSI数据(含read_bf_file函数详解)

从零开始掌握WIFI CSI数据处理:Matlab实战指南 实验室里那台老旧的路由器突然成了香饽饽——当研究团队发现普通WIFI信号中隐藏的CSI(Channel State Information)数据能用于人体动作识别时,这个被忽视的技术细节瞬间变成了科研宝藏…...

RStudio Server配置避坑指南:解决常见安装与启动问题(含conda环境配置)

RStudio Server配置避坑指南:解决常见安装与启动问题(含conda环境配置) 在数据科学和统计分析领域,RStudio Server作为一款强大的集成开发环境,为团队协作和远程工作提供了极大便利。然而,当我们将RStudio …...

搬运机器人结构设计【机电plc】【cad图纸和设计说明书】

搬运机器人作为自动化物流系统的核心设备,其结构设计需兼顾机械强度、运动精度与电气控制协同性。机械部分以框架、驱动模块、末端执行器为核心,采用高强度铝合金或碳钢材料构建主体框架,确保承载能力的同时控制整体重量。驱动模块通常集成步…...

ROS2 Humble + MoveIt2 + Gazebo 保姆级教程:从零搭建一个六轴机械臂仿真环境

ROS2 Humble MoveIt2 Gazebo 六轴机械臂仿真环境搭建全解析 第一次接触机器人仿真时,我被各种专业术语和复杂的配置流程搞得晕头转向。直到亲手搭建起第一个机械臂仿真环境,看到虚拟机械臂在Gazebo中流畅运动的那一刻,才真正理解了ROS2生态…...

别再死磕Transformer了!用Python复现SimpleTM:一个轻量级的时间序列预测新思路

用Python复现SimpleTM:轻量级时间序列预测的实战指南 当Transformer架构在时间序列预测领域大行其道时,威斯康星大学团队在ICLR 2025提出的SimpleTM模型却以教科书级的信号处理思路,实现了"轻量级击败重量级"的逆袭。本文将带您深入…...

Sterpi饱和渗透试验及非饱和潜蚀试验模型 [1]模型简介:使用数值模拟软件COMSOL

Sterpi饱和渗透试验及非饱和潜蚀试验模型 [1]模型简介:使用数值模拟软件COMSOL,复现一区TOP论文(Yang J ,Yin Z ,Laouafa F , et al.Modeling coupled erosion and filtration of fine particles in granular media[J].Acta Geotechnica,2019,14(6):1615…...

Comsol三维耦合冲头温度及传热与应力模型参考案例

Comsol三维耦合冲头温度,固体和流体传热,压铸传热与应力模型 可直接联系,此模型为参考案例车间里的压铸机轰鸣声不断,模具表面温度计指针疯狂跳动——这场景熟悉吧?压铸工艺里温度场和应力场就像一对相爱相杀的CP&…...

车间老司机手记】折腾S7-200那点事儿:当电子秤遇上搅拌机

74#基于西门子S7-200PLC的物料自动称量控制系统称重配料物料混合程序组态设计组态设计组态王设计plc程序设计去年车间里那套老掉牙的称重设备终于退休了,新接的活是要用S7-200搞个自动配料系统。摸着良心说,这PLC虽说是爷爷辈的型号,但架不住…...

ESP32-S3物联网开发实战:从零搭建AI语音交互设备(附完整代码)

ESP32-S3物联网开发实战:从零搭建AI语音交互设备 1. 硬件选型与开发环境搭建 在开始ESP32-S3的AI语音交互设备开发前,选择合适的硬件组件和搭建高效的开发环境至关重要。ESP32-S3作为乐鑫推出的高性能Wi-Fi/蓝牙双模芯片,凭借其出色的计算能力…...

OpenClaw对接千问3.5-27B实战:本地部署与接口调用完整指南

OpenClaw对接千问3.5-27B实战:本地部署与接口调用完整指南 1. 为什么选择OpenClaw千问3.5-27B组合? 去年我在尝试自动化办公流程时,发现市面上的RPA工具要么功能臃肿,要么无法灵活调用本地AI模型。直到遇到OpenClaw这个开源框架…...

从零到一:基于UTS与原生插件融合的UniApp安卓桌面小部件开发实践

1. 为什么UniApp开发者需要关注安卓桌面小部件? 作为一名长期使用UniApp的开发者,我最近在项目中遇到了一个有趣的需求:为安卓用户开发桌面小部件。你可能和我当初一样,觉得这个小功能可有可无。但当我真正在手机上使用了几款优秀…...

uniapp H5项目自定义favicon图标实战指南

1. 为什么需要自定义favicon图标 当你用uniapp开发H5项目时,有没有注意到浏览器标签页上那个默认的灰色地球图标?这个不起眼的小图标其实有个专业名称叫favicon,它就像是你网站的"身份证照片"。想象一下,用户同时打开十…...

IMX6ULL开发环境搭建:用静态IP打通Ubuntu虚拟机与开发板的任督二脉(NFS/SFTP前置步骤详解)

IMX6ULL开发环境搭建:用静态IP打通Ubuntu虚拟机与开发板的任督二脉(NFS/SFTP前置步骤详解) 在嵌入式开发中,一个稳定的网络环境往往是提高工作效率的关键。想象一下这样的场景:你刚刚在Ubuntu虚拟机上编译好最新的驱动…...

如何实施企业SEO网站推广

如何实施企业SEO网站推广 在当今数字化时代,企业的网站推广已经不能忽视搜索引擎优化(SEO)。SEO不仅是提高网站在搜索结果中排名的关键手段,更是吸引潜在客户、转化流量成交的有效途径。如何实施企业SEO网站推广,以达…...

2026年药学论文降AI工具推荐:药理研究和临床试验部分怎么处理

2026年药学论文降AI工具推荐:药理研究和临床试验部分怎么处理 同学群里有人问药学论文降AI工具推荐,我发现自己每次回答都差不多——嘎嘎降AI。干脆写一篇详细的推荐文章,省得每次重复。 直接结论:嘎嘎降AI(www.aigc…...

2026年维普AI率检测超标反复怎么办:根本原因和彻底解决方法

2026年维普AI率检测超标反复怎么办:根本原因和彻底解决方法 花了300多块试了7款工具,最后总结出来其实5块钱就能搞定。 维普AI率超标这件事,我走了很多弯路。这篇文章把我的经验教训都整理出来,帮你省钱省时间。核心推荐嘎嘎降A…...