报障截图里有一段文本被用户拖蓝,模型描述界面时把这块蓝色区域当成可点击按钮,还编了一个界面上不存在的按钮名。
真正麻烦的地方在于,几个原因的现象几乎一样。选区高亮被当成 UI 组件;光标闪烁在截图里留下竖线被当成输入框;截图缩放产生摩尔纹被读成边框;没有告诉模型哪些是人工标注。
裁掉选区只留界面区域
magick shot.png -crop 1200x800+0+0 +repage clean.png
接着在提示里说明截图为原图无标注
python vision.py --image clean.png --prompt "这是未标注的原始截图,只描述界面上真实存在的元素"
然后用可交互元素的坐标做交叉验证
curl -s http://127.0.0.1:9222/json | jq -r '.[] | select(.type=="page") | .id'
末了把结果与 DOM 里的按钮文本比对
python compare_ui.py --json ui.json --dom dom.html
恢复的判定其实很直接。模型输出的元素列表与 DOM 里的按钮文本一一对应,不再出现虚构按钮,描述里也不提蓝色区域。
提醒一点。截图里的选中态、光标、水印都会被当成界面元素,送模型前先裁干净或者明确告知哪些是标注。报错文案容易误导,真正的原因往往在相邻那一层的日志里。
