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

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制自动化流程

OpenClaw技能开发入门为Phi-3-vision-128k-instruct定制自动化流程1. 为什么需要为Phi-3开发OpenClaw技能去年夏天我接手了一个图像处理自动化项目。当时每天要手动处理数百张产品图用Photoshop调整尺寸、添加水印、生成缩略图。这种重复劳动不仅枯燥还经常因为疲劳导致错误。直到发现OpenClaw可以对接多模态模型才意识到让AI理解图像并自动操作软件才是真正的解决方案。Phi-3-vision-128k-instruct作为支持图文理解的多模态模型与OpenClaw的结合能实现视觉任务自动化截图识别→内容理解→执行操作的全链路自动化复杂流程简化将需要人工判断的视觉任务转化为标准化流程7×24小时值守持续监控屏幕变化并触发预设动作2. 开发环境准备2.1 基础组件安装我的MacBook ProM1芯片macOS Ventura上实测可用的组合# 安装OpenClaw核心框架 curl -fsSL https://openclaw.ai/install.sh | bash # 验证安装 openclaw --version # 预期输出示例openclaw/0.8.2 darwin-arm64 node-v18.16.02.2 Phi-3模型服务对接假设Phi-3-vision-128k-instruct已通过vllm部署在本机http://localhost:8000修改OpenClaw配置// ~/.openclaw/openclaw.json { models: { providers: { phi3-vision: { baseUrl: http://localhost:8000/v1, apiKey: NULL, // vllm默认无需key api: openai-completions, models: [ { id: phi-3-vision-128k-instruct, name: Phi-3 Vision, contextWindow: 131072, supportsVision: true } ] } } } }踩坑记录必须声明supportsVision: true才能启用多模态支持vllm部署时需添加--enable-vision参数首次调用建议先通过curl测试接口可用性curl http://localhost:8000/v1/chat/completions \ -H Content-Type: application/json \ -d { model: phi-3-vision-128k-instruct, messages: [ { role: user, content: [ {type: text, text: 描述这张图片}, {type: image_url, image_url: {url: data:image/png;base64,...}} ] } ] }3. 开发第一个视觉Skill3.1 创建技能脚手架clawhub create screenshot-analyzer cd screenshot-analyzer生成的目录结构screenshot-analyzer/ ├── package.json ├── skill.json # 技能元数据 ├── src/ │ ├── index.ts # 主逻辑 │ └── types.ts # 类型定义 └── test/ └── index.test.ts3.2 核心功能实现修改src/index.ts实现截图分析逻辑import { Skill } from openclaw/core; export default class ScreenshotAnalyzer extends Skill { async execute(params: any) { // 1. 捕获屏幕区域 const screenshot await this.claw.captureScreen({ region: params.region || fullscreen }); // 2. 调用Phi-3分析图像 const visionResponse await this.claw.models.chat({ provider: phi3-vision, model: phi-3-vision-128k-instruct, messages: [ { role: user, content: [ { type: text, text: params.prompt }, { type: image_url, image_url: { url: screenshot.dataURL } } ] } ] }); // 3. 根据结果执行操作 if (visionResponse.includes(点击)) { await this.claw.mouse.click({ x: 100, y: 200 }); } return { analysis: visionResponse }; } }3.3 技能配置skill.json关键配置示例{ name: screenshot-analyzer, description: 屏幕截图分析工具, inputs: { prompt: { type: string, description: 对截图的提问 }, region: { type: string, enum: [fullscreen, window, selection], default: fullscreen } }, outputs: { analysis: { type: string, description: 模型分析结果 } } }4. 实战电商图片审核自动化4.1 场景需求假设需要每天审核电商平台新上传的图片检测是否包含违禁品验证图片尺寸是否符合规范识别水印位置是否正确4.2 技能增强实现在原有技能基础上增加审核逻辑async checkEcommerceImage(params: { imagePath: string; rules: { bannedItems: string[]; minResolution: number[]; watermarkPositions: string[]; }; }) { const imageData await fs.promises.readFile(params.imagePath); const base64Image imageData.toString(base64); const response await this.claw.models.chat({ provider: phi3-vision, model: phi-3-vision-128k-instruct, messages: [ { role: user, content: [ { type: text, text: 请检查图片是否包含${params.rules.bannedItems.join(,)} }, { type: text, text: 验证分辨率是否≥${params.rules.minResolution.join(x)} }, { type: text, text: 水印应出现在${params.rules.watermarkPositions.join(或)} }, { type: image_url, image_url: { url: data:image/png;base64,${base64Image} } } ] } ] }); // 解析模型返回的结构化数据 const result this.parseResponse(response); if (!result.passed) { await this.claw.keyboard.type([审核不通过] ${result.reasons.join(;)}); await this.claw.mouse.click(reject-button); } else { await this.claw.mouse.click(approve-button); } return result; }4.3 错误处理实践多模态任务常见错误处理策略try { // 尝试获取模型响应 const response await this.claw.models.chat({...}); // 处理模型返回空值 if (!response?.choices?.[0]?.message?.content) { throw new Error(模型返回格式异常); } // 处理超时 await Promise.race([ processResponse(response), new Promise((_, reject) setTimeout(() reject(new Error(处理超时)), 30000) ) ]); } catch (error) { // 重试逻辑 if (error instanceof ModelTimeoutError this.retryCount 3) { this.retryCount; return this.execute(params); } // 降级处理 await this.claw.notification.send({ title: 审核任务失败, message: error.message, level: error }); }5. 技能调试与优化5.1 本地测试方法开发阶段推荐使用openclaw test命令openclaw test ./screenshot-analyzer \ --input {prompt:图片中有文字吗,region:window} \ --model phi3-vision5.2 性能优化技巧通过实际测试发现的优化点图像压缩上传前将截图从PNG转为JPEG体积减少70%const compressed await this.claw.image.compress(screenshot, { format: jpeg, quality: 80 });提示词工程给Phi-3的指令需明确结构化要求请按以下JSON格式回复 { contains_banned_item: boolean, resolution_ok: boolean, watermark_position: top-left|top-right|bottom-left|bottom-right }缓存策略相同图片MD5哈希值避免重复分析5.3 技能发布流程打包技能clawhub pack ./screenshot-analyzer发布到ClawHub市场clawhub publish ./screenshot-analyzer --token YOUR_PUBLISH_TOKEN用户安装方式clawhub install screenshot-analyzer获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制自动化流程

OpenClaw技能开发入门:为Phi-3-vision-128k-instruct定制自动化流程 1. 为什么需要为Phi-3开发OpenClaw技能? 去年夏天,我接手了一个图像处理自动化项目。当时每天要手动处理数百张产品图,用Photoshop调整尺寸、添加水印、生成缩…...

别再说AI懂你了!先搞清楚AI中的Context到底是什么(上篇)

你有没有遇到过这种情况——跟ChatGPT聊了五句话,第四句你说了“那个方案不行”,第五句它问“哪个方案?”。或者你让AI写一篇关于“苹果”的文章,它给你写了一整页水果种植技术,而你想说的是苹果公司。这就是AI中的Con…...

避坑指南:用SwinUnet跑通Synapse医学图像分割,我踩过的那些环境与数据坑

SwinUnet医学图像分割实战避坑指南:从环境配置到模型测试的完整解决方案 第一次接触SwinUnet进行医学图像分割时,我像大多数初学者一样,满怀信心地克隆了GitHub仓库,准备大展身手。然而现实很快给了我一记重击——从Python版本冲突…...

某音抓包翻车实录:从Hook失败到稳定替换so的踩坑与修复指南

移动端安全测试进阶:Hook失效后的SO文件修改实战解析 当我们在移动端安全测试或逆向分析过程中遇到常规Hook方法失效时,往往需要深入底层寻找解决方案。本文将分享一个典型的案例:当Frida动态注入无法达到预期效果时,如何通过静态…...

网站页面加载速度对SEO有什么影响_什么是外链建设_外链对SEO有什么影响

网站页面加载速度对SEO有什么影响 在当今数字化时代,网站的加载速度已经成为影响搜索引擎优化(SEO)的一个关键因素。快速的页面加载速度不仅能够提升用户体验,还能够在搜索引擎中获得更高的排名。那么具体来说,网站页…...

KL46Z电容触摸驱动库:TSI传感器适配与抗干扰实践

1. TSI传感器驱动库技术解析与工程实践1.1 项目背景与定位TSI(Touch Sensing Interface)是NXP Kinetis系列MCU内置的电容式触摸感应外设模块,专为低功耗、高抗噪性的人机交互应用设计。tsi_sensor是一个轻量级、可移植的固件库,面…...

STM32分散加载机制与内存管理详解

1. STM32程序分散加载机制解析在嵌入式系统开发中,程序如何从存储介质加载到内存并正确执行是一个关键问题。STM32微控制器采用的分散加载机制(Scatter Loading)正是解决这一问题的核心技术。作为从事嵌入式开发多年的工程师,我经…...

PWM技术详解:从基础原理到电机控制实践

1. PWM技术基础解析PWM(脉冲宽度调制)作为现代电力电子领域最基础也最核心的技术之一,其重要性怎么强调都不为过。记得我第一次在电机控制项目中实际应用PWM时,那种从理论到实践的跨越感至今难忘。今天,我就以一个过来…...

Python新手必看:从安装到第一个GUI程序的全流程指南(含IDLE使用技巧)

Python新手必看:从安装到第一个GUI程序的全流程指南(含IDLE使用技巧) 引言 对于刚接触编程的新手来说,Python无疑是最友好的入门语言之一。它简洁的语法、丰富的库支持以及活跃的社区,都让学习过程变得轻松愉快。本文将…...

风光负荷不同鲁棒性对系统总成本的影响研究(考虑上下备用容量)(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

从API调用到完整应用:手把手教你用Dashscope和Streamlit搭建一个多模态聊天机器人

从API调用到完整应用:手把手教你用Dashscope和Streamlit搭建多模态聊天机器人 在AI技术快速落地的今天,将强大的API能力转化为直观可用的产品已成为开发者的核心技能。想象一下,你只需要200行Python代码,就能构建一个能"看懂…...

IDToolsPico:Pico平台轻量级UUID与MAC生成库

1. IDToolsPico 库深度解析:面向嵌入式系统的 UUID 与 MAC 地址生成器 1.1 库定位与工程价值 IDToolsPico 是专为 Raspberry Pi Pico 平台设计的轻量级标识符生成库,核心目标是为资源受限的微控制器提供符合标准的、可重复使用的唯一设备标识能力。在物…...

OpenClaw宠物健康监测:Qwen2.5-VL-7B分析宠物照片发现异常

OpenClaw宠物健康监测:Qwen2.5-VL-7B分析宠物照片发现异常 1. 为什么需要AI宠物健康监测 作为一名养了三年猫的铲屎官,我经常担心错过宠物健康问题的早期信号。去年冬天,我家橘猫"橘子"突然食欲不振,带去医院才发现是…...

OpenClaw效率对比:Qwen2.5-VL-7B与传统OCR工具在文档处理中的表现

OpenClaw效率对比:Qwen2.5-VL-7B与传统OCR工具在文档处理中的表现 1. 测试背景与动机 最近在整理公司历史项目文档时,遇到了一个棘手的问题:大量扫描版PDF和图片格式的技术文档需要数字化处理。这些文档包含代码片段、手写注释和复杂表格&a…...

联邦蒸馏技术解析:从知识共享到隐私保护的实践路径

1. 联邦蒸馏技术:当知识共享遇上隐私保护 第一次听说"联邦蒸馏"这个词时,我正和团队在做一个医疗AI项目。医院的数据就像被锁在保险箱里的珍宝,谁都想要,但谁都拿不到。传统联邦学习虽然解决了数据不出本地的问题&#…...

OpenClaw环境隔离方案:安全运行不受信SecGPT-14B技能

OpenClaw环境隔离方案:安全运行不受信SecGPT-14B技能 1. 为什么需要环境隔离 上周我在测试一个从社区下载的SecGPT-14B技能包时,差点酿成一场小灾难。这个技能声称可以自动分析网络安全日志,但在运行时突然尝试删除我的工作目录文件。幸亏我…...

GitHub Copilot 深入实战:从配置到效率翻倍

第一章:GitHub Copilot 入门 1.1 什么是 GitHub Copilot GitHub Copilot 是由 GitHub 与 OpenAI 合作开发的 AI 编程助手,于 2021 年 6 月正式发布。它基于 OpenAI 的 Codex 模型(GPT-4 的专门针对编程任务优化的版本)构建,能够在开发者编写代码时实时提供智能建议和自动…...

OpenClaw批量处理:用SecGPT-14B同时分析百个可疑文件

OpenClaw批量处理:用SecGPT-14B同时分析百个可疑文件 1. 为什么需要批量安全分析 去年处理一个恶意软件分析项目时,我遇到了一个典型困境:手头有237个待分析样本,每个都需要执行基础静态分析、行为特征提取和威胁评分。如果手动…...

OpenClaw自动化测试:Qwen3-4B驱动接口回归验证

OpenClaw自动化测试:Qwen3-4B驱动接口回归验证 1. 为什么选择OpenClaw做自动化测试? 去年接手一个个人项目时,我遇到了一个典型问题:每次修改代码后,都要手动执行十几个接口测试用例。这种重复劳动不仅耗时&#xff…...

多智能体工程实践升级版:基于 Spring AI Alibaba 构建可扩展、高并发、生产级方案策划系统

多智能体工程实践升级版:基于 Spring AI Alibaba 构建可扩展、高并发、生产级方案策划系统 1. 引言 当业务问题从“问答”升级到“方案生成、任务拆解、跨角色协同、执行闭环”时,单一智能体往往很快碰到能力边界。 原因并不复杂: 单 Agent 擅长基于统一上下文做推理,但…...

面试-Linear Attention的学习

Linear Attention 学习笔记 0. Linear Attention 的目的与背景 0.1 标准 Attention 的瓶颈 在 Transformer 的标准 Self-Attention 机制中,注意力分数的计算方式如下: Attention(Q,K,V)=softmax(QKTd)V \text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqr…...

SEO标题优化与内容营销的关系是什么

SEO标题优化与内容营销的关系:深度解析与实践指南 在数字营销的世界里,SEO标题优化与内容营销之间的关系日益紧密,两者共同塑造了网站的可见性和用户参与度。究竟SEO标题优化与内容营销的关系是什么呢?本文将深入解析这一关系&am…...

SecGPT-14B API保护:防止OpenClaw任务过度消耗模型资源

SecGPT-14B API保护:防止OpenClaw任务过度消耗模型资源 1. 为什么需要API保护机制 上周我在本地部署了SecGPT-14B模型,并尝试通过OpenClaw实现自动化安全报告生成。凌晨3点突然收到服务器告警——模型服务因资源耗尽崩溃了。检查日志发现,O…...

Blender模型导入Unity材质丢失?5步搞定FBX材质完美迁移

Blender模型导入Unity材质丢失?5步搞定FBX材质完美迁移 当你花了数小时在Blender中精心雕琢模型材质,导出FBX到Unity后却发现材质全部丢失——这种崩溃感每个3D开发者都深有体会。材质丢失问题看似简单,实则涉及Blender与Unity两套完全不同的…...

ARM单片机位带操作原理与应用详解

1. ARM单片机位带操作基础回顾在嵌入式开发中,位带操作(Bit-Banding)是Cortex-M系列处理器提供的一个非常实用的功能特性。简单来说,它允许开发者通过访问特定内存地址的方式,直接操作某个寄存器的单个比特位,而无需进行传统的&qu…...

OpenClaw硬件优化:Qwen2.5-VL-7B在低配设备上的运行技巧

OpenClaw硬件优化:Qwen2.5-VL-7B在低配设备上的运行技巧 1. 为什么要在低配设备上运行OpenClaw? 去年夏天,我在一台2018款MacBook Air(8GB内存)上第一次尝试部署OpenClaw时,系统几乎瞬间卡死。这让我意识…...

2007 Text 1

2007 Text 1...

文心一言搜索优化,做好这件事就赢了一半

如果你在文心一言上铺了几百篇内容,但品牌词一问,AI还是引用别人——你缺的不是数量,是质量锚点。文心一言的算法有一套对“优质可信内容”的隐形成交系统,没通过质检的内容,发再多也是无效库存。去年我们实测过一个案…...

OpenClaw+千问3.5-9B自动化写作:技术博客大纲与初稿生成

OpenClaw千问3.5-9B自动化写作:技术博客大纲与初稿生成 1. 为什么需要自动化写作助手 作为一个技术博主,我经常面临这样的困境:明明对某个技术点有深刻理解,却卡在如何组织文章结构上。有时候花在列大纲上的时间比实际写作还长&…...

C语言宏定义封装函数参数的工程实践

1. 宏定义封装函数参数的核心价值在嵌入式开发中,我们经常遇到需要传递大量固定参数的场景。以NXP RT1052 SDK中的GPIO配置为例,每个引脚复用配置需要传递6个参数,其中5个都是固定值。这种场景下,宏定义封装技术能显著提升代码的可…...