ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

XiaoMate功能介绍: 让桌宠帮你分析你的桌面屏幕

XiaoMate功能介绍: 让桌宠帮你分析你的桌面屏幕 前言这个国庆节哪儿也没去就在家里折腾 XiaoMate 的功能和界面了。前天重整了一个 XiaoMate 的README 介绍改从 XiaoMate 的功能出发重写了一下。然后准备再写一个 XiaoMate 功能相关的系列文章将 XiaoMate 小美同学支持的每个功能都给一一介绍一下。今天是第一个功能screen_capture这个 MCP tool。screen_capture是 XiaoMate小美同学MCP 工具系统中的一个强大功能模块它结合了屏幕截图与视觉 AI 分析两大能力让 AI 助手能够看到你当前的屏幕内容并提供智能化的理解和反馈。这个功能的核心价值在于让语音交互的 AI 助手突破纯文本限制获得视觉感知能力。一、技术架构1. 核心组件用户语音/文本请求 ↓ LLM 判断需要截图分析 ↓ 调用 screen_capture MCP 工具 ↓ ┌─────────────────────────────────┐ │ 1. mss 库截取全屏 │ │ 2. 保存为 PNG 到 media/tmp/ │ │ 3. 转为 base64 编码 │ │ 4. 调用 Vision 模型分析 │ │ 5. 返回结构化分析结果 │ └─────────────────────────────────┘ ↓ AI 用自然语言描述屏幕内容2. 关键技术栈组件技术选型作用截图引擎mssPIL跨平台高性能屏幕捕获视觉模型OpenAI 兼容接口图片理解与内容分析异步处理asynciohttpx非阻塞的 API 调用状态推送Callback 机制实时进度反馈截图→分析→完成配置管理YAML 配置系统灵活切换不同的 Vision 模型3. 代码实现亮点# 1. 异步非阻塞截图capture_resultawaitasyncio.to_thread(self.capture_screen)# 2. 细粒度状态推送status_callback({status:capturing,data:正在截取屏幕...})status_callback({status:analyzing,data:正在调用视觉模型分析截图...})# 3. 灵活的 Vision 模型配置vision_modelconfig_loader.get(chat_models.vision.model,fallback)vision_urlconfig_loader.get(chat_models.vision.url,fallback)二、应用场景下面是一个在 XiaoMate 桌宠中的实际截图分析示例整个过程花了2秒不到速度还是挺快的。除此之外可以畅想一下的场景还有很多就看你的需求是什么。✅ 场景 1网购比价与商品识别用户说“帮我看看这个商品怎么样”系统行为截取当前电商页面Vision 模型识别商品名称、品牌、价格商品图片和规格参数用户评价摘要返回购买建议实际案例用户帮我看下这个手机值不值得买 AI调用截图分析后 我看到你在看一款小米 15 Pro 手机 - 价格¥429912GB256GB - 主要配置骁龙 8 至尊版、5000mAh 电池、徕卡影像 - 用户评分4.8/5.0好评率 97% 建议这个价位配置不错但建议等双十一预计会降到 ¥3999 左右实用价值 网购决策辅助AI 自动提取关键信息 价格历史分析配合其他工具判断是否该入手 真假辨别识别山寨商品的破绽✅ 场景 2快递单号与生活缴费用户说“帮我查一下这个快递到哪了”系统行为截取包含快递单号的页面自动提取单号顺丰、中通、菜鸟等调用物流查询工具返回实时状态典型对话用户查下我的快递 AI[截图识别] 找到快递单号SF1234567890 [查询物流] 您的包裹已从深圳发出预计明天送达扩展用途 多个快递单号批量识别 水电燃气账单金额提取 电影票/火车票信息识别 发票二维码内容解析✅ 场景 3健康报告与体检解读用户说“帮我解读一下这个体检报告”系统行为截取体检报告页面/照片Vision 模型提取各项指标数据对比正常范围标记异常项给出健康建议实际案例用户看下我的体检报告有没有问题 AI截图分析后 我识别到您的体检报告中有 3 项指标异常 ⚠️ 空腹血糖6.8 mmol/L正常 3.9-6.1 ⚠️ 总胆固醇5.9 mmol/L正常 5.2 ✅ 其他指标均在正常范围内 建议 1. 血糖偏高建议减少甜食摄入 2. 胆固醇略高注意饮食清淡 3. 建议 3 个月后复查适用场景 体检报告解读血常规、生化指标等 药品说明书用法用量提取 医生处方内容数字化 食品营养成分分析✅ 场景 4旅游攻略与行程规划用户说“帮我看看这个旅游攻略怎么样”系统行为截取攻略页面小红书、马蜂窝、携程等提取关键信息景点名称、门票价格、开放时间推荐行程路线避坑提示生成个性化建议真实对话用户这个云南旅游攻略靠谱吗 AI截图分析后 这是一篇云南 6 天 5 晚的攻略 行程昆明→大理→丽江→香格里拉 预算约 ¥3500/人不含机票 ✅ 合理之处 - 行程安排松紧适中 - 推荐的民宿性价比高 ⚠️ 注意避坑 - 第 3 天推荐的免费景点实际有隐形消费 - 玉龙雪山索道票需提前 3 天预约 建议可以把大理多留一天洱海环湖很值得扩展用途✈️ 机票/酒店价格对比️ 地图路线规划确认 网红打卡地真实性评估 行李清单检查✅ 场景 5菜谱识别与烹饪指导用户说“这个菜谱怎么做帮我简化一下”系统行为截取菜谱页面或美食博主分享提取食材清单及用量详细步骤烹饪时长和火候根据用户情况调整人数、口味偏好、厨房工具典型对话用户我想做这个红烧肉但只有电饭煲 AI截图分析后 原菜谱需要炒锅炖煮我帮您调整为电饭煲版本 食材2 人份 - 五花肉 500g切块 - 冰糖 3 勺、生抽 2 勺、老抽 1 勺 - 葱姜蒜适量 电饭煲做法 1. 五花肉冷水下锅焯水 3 分钟可用热水壶 2. 所有调料和肉放进电饭煲 3. 加水没过肉按煮饭键 4. 跳闸后再按一次总共煮 40 分钟 ⏰ 总时长50 分钟比原版简单 30 分钟适用场景 美食博主菜谱简化 根据冰箱剩余食材推荐菜谱 烘焙配方换算分量/温度调整️ 口味定制减盐、素食、儿童版✅ 场景 6账单核对与消费分析用户说“帮我看看这个月花了多少钱”系统行为截取账单页面支付宝、微信、银行 APP提取消费明细每笔交易金额、时间、商户分类统计餐饮、交通、购物等分析消费趋势给出理财建议实际案例用户看下我上个月的花销 AI截图分析后 我识别到您的 10 月账单 总支出¥6,842 分类占比 - 餐饮¥2,35034% - 购物¥1,89028% - 交通¥68010% - 娱乐¥1,20017% - 其他¥72211% 分析 - 餐饮支出比上月增加 23%主要是外卖 - 建议自己做饭可节省约 ¥800/月 - 有一笔 ¥450 的重复扣款建议联系客服扩展用途 工资条解读五险一金、个税计算 信用卡账单还款计划 房租/水电费用趋势分析 礼物预算规划节日、生日✅ 场景 7学习资料与笔记整理用户说“帮我总结这篇课文的重点”系统行为截取教材/论文/笔记页面提取核心知识点生成结构化笔记思维导图、提纲、记忆卡片典型对话用户帮我总结这篇英语阅读理解 AI截图分析后 这篇文章的主题是人工智能对未来工作的影响 核心观点 1. AI 将取代 40% 的重复性工作 2. 但会创造新的职业机会 3. 关键是要持续学习 重点词汇 - automation自动化 - displace取代 - adaptability适应力 ❓ 常见考点 - 作者态度客观乐观 - 主旨题选 C技术与人并重适用场景 教科书章节总结 长文章要点提取 论文摘要生成✍️ 手写笔记数字化️ 错题整理与归类✅ 场景 8社交媒体内容创作用户说“帮我为这张照片写个朋友圈文案”系统行为截取照片或页面Vision 模型识别画面内容、氛围、元素生成多风格文案文艺、幽默、商务等真实案例用户这张日落照片配什么文案好 AI截图分析后 我看到一张海边日落的照片 - 橙红色天空海面上有帆船剪影 - 整体氛围宁静、治愈 推荐文案 文艺版 夕阳是天空写给大海的情书 幽默版 今天的晚霞是橘子味的建议搭配冰啤酒食用 商务版 结束一天的忙碌最美的风景在路上 选择哪个我可以帮你调整~扩展用途 小红书种草文案生成 抖音/B 站视频标题优化️ 闲鱼二手商品描述 朋友圈职场动态 节日祝福个性化定制✅ 场景 9合同协议与条款解读用户说“帮我看看这份租房合同有没有坑”系统行为截取合同页面提取关键条款租金、押金、付款方式租期、违约责任维修责任划分标注风险点给出谈判建议实际对话用户这个租房合同能签吗 AI截图分析后 我识别到合同中的关键信息 基本信息 - 月租金¥3,500押一付三 - 租期1 年 - 地址XX 小区 3 栋 1201 ⚠️ 需要注意的条款 1. 第 8 条提前退租需支付 2 个月违约金偏高 2. 第 12 条家电维修由租客承担建议协商 3. 第 15 条房东可随时进入房间侵犯隐私 建议 - 要求修改第 15 条改为需提前 24 小时通知 - 第 8 条违约金协商为 1 个月 - 入住前拍照记录房屋现状适用场景 租房/购房合同审查 劳动合同条款解读 网购平台用户协议 APP 隐私政策摘要✈️ 机票退改签规则✅ 场景 10生活服务与便民查询用户说“帮我看看这个停车费怎么算”系统行为截取停车场收费标准/公告页面提取计费规则根据停车时长计算费用典型对话用户我停 3 小时要多少钱 AI截图分析后 这个停车场的收费规则 - 首小时免费 - 1-3 小时¥5/小时 - 超过 3 小时¥8/小时 - 24 小时封顶¥60 您停 3 小时的费用 ¥0首小时 ¥5×2 ¥10 提示 - 周末全天封顶 ¥40 - 商场消费满 ¥200 可免 2 小时扩展用途 公交/地铁线路规划确认 医院挂号流程指导 快递寄送价格对比 电影排期与选座建议️ 餐厅菜单翻译与推荐三、高级用法1. 自定义分析问题通过传递question参数可以精确控制分析方向# 示例 1专注安全性审查question这段代码中是否有 SQL 注入风险# 示例 2性能分析question这个前端页面的加载性能如何有哪些优化建议# 示例 3设计评审question这个 UI 设计的配色和布局是否符合无障碍标准# 示例 4数据提取question提取表格中的所有数据输出为 JSON 格式2. 多轮对话结合截图分析可以融入连续对话用户截图看看 AI[完成截图分析] 屏幕显示 VS Code 编辑器... 用户第 32 行那个函数是做什么的 AI[基于上下文] 那是 validate_user_input 函数 用于验证用户提交的表单数据... 用户帮我重构一下 AI[调用代码生成工具] ...四、技术细节1. 截图流程defcapture_screen(self)-Dict[str,Any]:# 1. 创建保存目录tmp_dirPath(media/tmp)# 2. 使用 mss 截取全屏支持多显示器withmss.MSS()assct:monitorsct.monitors[0]# 所有屏幕合并screenshotsct.grab(monitor)# 3. 转换为 PIL Image 并保存为 PNGimgImage.frombytes(RGB,screenshot.size,screenshot.bgra,raw,BGRX)img.save(str(image_path),PNG)# 4. 返回本地路径和 URLreturn{success:True,image_path:str(image_path),image_url:f/media/tmp/{filename}}2. Vision 分析流程asyncdefanalyze_image_with_vision(self,image_path,question):# 1. 图片转 base64image_base64base64.b64encode(image_bytes).decode(utf-8)# 2. 读取 Vision 模型配置支持热切换vision_modelconfig_loader.get(chat_models.vision.model)vision_urlconfig_loader.get(chat_models.vision.url)# 3. 构建 OpenAI 兼容的 Vision API 请求payload{model:vision_model,messages:[{role:user,content:[{type:text,text:question},{type:image_url,image_url:{url:fdata:image/png;base64,{image_base64}}}]}],max_tokens:2048}# 4. 异步调用 APIasyncwithhttpx.AsyncClient(timeout60.0)asclient:responseawaitclient.post(vision_url,headersheaders,jsonpayload)3. 状态推送机制asyncdefcapture_and_analyze(self,question,status_callbackNone):# 阶段 1截图ifstatus_callback:status_callback({status:capturing,data:正在截取屏幕...})capture_resultawaitasyncio.to_thread(self.capture_screen)# 阶段 2截图完成ifstatus_callback:status_callback({status:capture_completed,data:截图完成开始分析...,image_url:capture_result.get(image_url)})# 阶段 3分析ifstatus_callback:status_callback({status:analyzing,data:正在调用视觉模型...})analysis_resultawaitself.analyze_image_with_vision(...)五、配置指南1. 设置 Vision 模型在config.yaml中配置chat_models:vision:model:gpt-4-vision-preview# 或兼容的开源模型url:https://api.openai.com/v1/chat/completionsapi_key:your-api-key2. 初始化工具# 在 Django shell 中执行python manage.py shellmcps/screen_capture/init_screen_capture_tool.py这会创建 MCP 工具配置包括工具名称和描述触发场景关键词参数定义question、user_id3. 测试功能frommcps.screen_captureimportsingleton_screen_captureimportasyncio# 简单截图resultsingleton_screen_capture.capture_screen()print(result[image_url])# 截图 分析asyncdeftest():resultawaitsingleton_screen_capture.capture_and_analyze(question屏幕上打开了几个应用)print(result[analysis])asyncio.run(test())六、性能与限制1. 优势✅跨平台基于mss支持 Windows/macOS/Linux✅多显示器自动合并所有屏幕✅异步非阻塞不阻塞主线程适合高并发✅模型可替换兼容任何 OpenAI 兼容的 Vision API2. 当前限制⚠️全屏截图暂不支持指定区域截图⚠️分辨率依赖Vision 模型的识别精度受截图分辨率影响⚠️隐私安全截图包含屏幕所有信息需注意敏感数据⚠️API 成本每次调用消耗 Vision 模型的 token3. 优化建议缩小截图范围后续可添加monitor_id参数支持单屏截图图片压缩在 base64 编码前降低分辨率缓存机制相同场景的截图可复用分析结果隐私保护添加自动打码功能银行卡号、密码等七、未来扩展方向 短期规划支持指定窗口/区域截图多显示器独立截图截图历史管理敏感信息自动过滤 中期规划实时屏幕监控持续截图 变化检测交互式标注用户在截图上画圈AI 重点分析多模态对话连续截图构建上下文类似 GPT-4o 的屏幕共享 长期愿景AR 辅助结合摄像头实现看屏幕到看实物的过渡自动化操作AI 识别按钮位置 → 自动点击RPA 集成协作审查多人共享屏幕截图 AI 标注八、总结screen_captureMCP 工具通过截图 视觉 AI的组合为 XiaoMate 增加了看见用户屏幕的能力。它不仅是简单的 OCR而是具备语义理解、上下文推理、问题诊断的智能分析系统。1. 核心价值主张“从网购比价到合同解读让 AI 看懂你的生活”2. 典型用户画像‍‍家庭用户账单管理、菜谱指导、体检报告解读网购达人商品比价、快递查询、优惠攻略✈️旅行爱好者旅游攻略、行程规划、票据识别‍学生党学习资料整理、笔记总结、错题归纳职场新人合同审查、社交文案、消费分析社交媒体用户朋友圈文案、种草笔记、内容创作九、参考资源源码位置mcps/screen_capture/screen_capture.py测试脚本mcps/screen_capture/test_screen_capture.py配置示例config.yaml中的chat_models.vision节点MCP 协议文档docs/MCP_NOTIFICATION_COMPLETE_UNIFICATION.md本文档基于 XiaoMate v2.3.2 版本编写技术细节可能随版本迭代更新。
返回列表