picturereader 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,96 +1,119 @@
1
- ---
2
- name: image-reading
3
- description: Read and understand images like a multimodal model using the picturereader tools (image_scan / image_ocr / image_sample). Applies a verified 5-step workflow (global tone → find subjects → verify text → judge material → synthesize) guided by grounded principles and cross-image insights. Use whenever you need to look at an image.
4
- ---
5
-
6
- # 读图方法论(image-reading)
7
-
8
- 目标:**像多模态模型一样"看"图并输出连贯描述**,每个结论可追溯、可验证。
9
- 本 skill 由 experience / skill / principle / insight 四层知识构成(按
10
- Gogomoe 知识框架分类,教训均来自对真实图片的实测复盘)。
11
-
12
- ## 操作流程(skill)
13
-
14
- ### 1. 全局定调(第一轮扫描)
15
-
16
- 用默认参数(size=40)全图扫描,读四个字段:
17
- - **`hue families`(最高优先级)**:按纯色相分族的真实占比。暗调/低饱和场景的
18
- 真实颜色只在这里——`colors by area` 灰白占比高不代表画面灰白。
19
- - **`structure`**:平行条带/对称性(解读见 insights)。
20
- - **`texture`**:rough 高=写实照片;smooth 高=扁平或水面/天空/雾(见 insights)。
21
- - **`regions`**:大结构的位置/大小/颜色。
22
-
23
- ### 2. 找主体(全局→局部,主动验证)
24
-
25
- - 对**颜色异常区、深色大块、相邻竖长色块、小色块密集区**用 `px_per_cell` 定向放大
26
- (值越小越细:8-12 看轮廓,4-6 看结构,2-3 看细节;区域不够小时工具会提示实际密度,缩小 focus/region 重试)。
27
- - 放大后按**形状**解读:头+肩+躯干=人物;弧线+对称明暗=圆柱/球/装置;
28
- 竖直细长结构=石柱/塔/杆;交替细条=面板/栅格。
29
- - **主体可能与背景低对比而"隐形"**(见 insights 4)——怀疑处必须放大确认,不能因 regions 未单列就跳过。
30
-
31
- ### 3. 文字验证
32
-
33
- - 疑似文字/标识/UI → `image_ocr`(region/focus 限定)。
34
- - Windows 引擎读不出但怀疑有字 → `engine="paddle"` 重试(发光/弯曲/游戏渲染文字)。
35
- - **OCR 结果优先于模型描述**(见 insights 3)。
36
-
37
- ### 4. 材质判断
38
-
39
- `image_sample` 对小块区域 8×8 取样,看 RGB 分布与 contrast 统计
40
- (平滑渐变=天空/皮肤/水面;高对比条纹=金属/木纹;暗绿 G>R>B=植物/涂装)。
41
-
42
- ### 5. 综合描述
43
-
44
- 输出连贯描述(场景/主体/环境光线/细节),**每个结论标注证据等级**:
45
- 实锤(有像素/OCR/取样数据)vs 推断(基于结构推测,用"看起来像")。
46
- 优先引用具体数字;不确定就说不确定,绝不编造。
47
-
48
- ## 行为准则(principles)
49
-
50
- 1. **证据分级**:任何结论标注"实测"或"推断";推断必须说明依据。
51
- 2. **数字优先**:用具体指标("蓝色调 74%""对称 80%""OCR 读出 1.00")支撑描述,不用模糊形容词代替。
52
- 3. **先全局后局部**:第一轮定调,第二轮定向放大验证,不跳步。
53
- 4. **怀疑即验证**:对任何"可能漏掉的主体",用放大/取样/OCR 验证后再下结论。
54
- 5. **不编造**:不确定就说明;模型(含多模态)的描述不可直接当作事实(见 insights 3)。
55
-
56
- ## 规律性洞察(insights,跨图归纳)
57
-
58
- 1. **暗调场景的真实颜色只在 hue families 里**:低饱和/暗色调(暮色、雾中、夜景)
59
- 会被 14 色色板压成灰黑,`colors` 的灰白占比是假象——hue families 按纯色相分族不受影响。
60
- 2. **高对称 ≠ 一定人造物**:水面倒影/镜像构图也高度对称。区分看:平滑大面积
61
- (水面/天空 smooth 高)+ 水天分界线(上亮下暗、上下镜像)+ 竖直细长结构(石柱)
62
- = 湖泊/自然镜像;纹理复杂、颜色单调、几何硬边 = 人造建筑/装置。
63
- 3. **小模型读小字不可靠**:多模态小模型对低分辨率文字会幻觉(全图"读出"内容、
64
- 裁剪后承认没有);发光/弯曲/艺术字 Windows OCR 也失效——**文字一律以 OCR 实读为准**。
65
- 4. **低对比主体"隐形"**:暗色物体(如深色服装人物)在暗背景中融入背景黑块,
66
- 粗网格和 regions 都不会标出——对深色区域主动放大是唯一可靠发现方式。
67
- 5. **平滑大面积 ≠ 扁平简笔画**:水面、天空、雾气、墙面都平滑(smooth 高),
68
- 需结合色调/结构/场景判断,不能仅凭 smooth 判定"扁平"。
69
- 6. **"像什么"和"是什么"要分开**:结构证据(对称/形状/色调)支撑"像什么";
70
- "是什么"需要 OCR/取样/更强证据,不满足时保持推断。
71
- 7. **hue families 是场景类型指纹**(34 张图训练归纳):
72
- - cyan 高(>60%)= 水/雾/湖泊/晨雾场景(东方水景、浓雾遗址)
73
- - green 高(>40%)= 森林/竹林/草地/苔藓
74
- - orange 或 red 高 = 红披风/暖色服饰人物、火光、晚霞
75
- - blue 高(>70%)= 夜晚/冷色科幻场景
76
- - achromatic 高 + rough 高 = 废墟/岩石/暗环境
77
- - green + yellow 双高 = 翠绿能量带/发光植被/浮空仙境
78
- - 对称高 + 中央竖直结构 = 中央主体(瀑布/树/大门)居中构图
79
- 8. **多模态模型的颜色描述对"发光/能量"不可靠**(训练中反复出现):把实测为
80
- cyan/blue/green 的冷色发光(屏幕光、能量屏障、雾中光柱)系统性说成"粉红/紫色"。
81
- 发光元素的颜色一律以 hue 实测为准。
82
- 9. **人物识别信号**:orange/red 主调 + 局部暖色小块 + 对称 = 人物服饰候选;
83
- 游戏角色常穿红/橙(红披风、红发、暖色战斗服),识别到暖色主调时应主动放大找人物。
84
- 10. **品牌/游戏名/标题文字**:多模态模型会猜错("原神""崩坏3"实际是明日方舟终末地),
85
- 必须 PaddleOCR 实读(游戏 HUD 底部常带游戏名/参数/水印)。
86
-
87
- ## 案例参考(experience,简短)
88
-
89
- - 湖泊仙侠图:对称 97% 被误判为"人造立面",实为水面倒影+湖中石柱+粉紫雾气
90
- → 教训沉淀为 insight 2。
91
- - 游戏发光标语图:Windows OCR 12 格全空、多模态幻觉"问问答写",
92
- PaddleOCR 一次读出「勇于探索叩问苍穹」→ 教训沉淀为 insight 3。
93
- - 暗背景人物图:黑服人物融入背景被漏检,px_per_cell=3 放大后头肩躯干清晰
94
- → 教训沉淀为 insight 4。
95
-
96
- (新增经验会持续按以上分类沉淀进本 skill。)
1
+ ---
2
+ name: image-reading
3
+ description: Read and understand images like a multimodal model using the picturereader tools (image_scan / image_ocr / image_sample). Applies a verified 5-step workflow (global tone → find subjects → verify text → judge material → synthesize) guided by grounded principles and cross-image insights. Use whenever you need to look at an image.
4
+ ---
5
+
6
+ # 读图方法论(image-reading)
7
+
8
+ 目标:**像多模态模型一样"看"图并输出连贯描述**,每个结论可追溯、可验证。
9
+ 本 skill 由 experience / skill / principle / insight 四层知识构成(按
10
+ Gogomoe 知识框架分类,教训均来自对真实图片的实测复盘)。
11
+
12
+ ## 操作流程(skill)
13
+
14
+ ### 1. 全局定调(第一轮扫描)
15
+
16
+ 用默认参数(size=40)全图扫描,读四个字段:
17
+ - **`hue families`(最高优先级)**:按纯色相分族的真实占比。暗调/低饱和场景的
18
+ 真实颜色只在这里——`colors by area` 灰白占比高不代表画面灰白。
19
+ - **`structure`**:平行条带/对称性(解读见 insights)。
20
+ - **`texture`**:rough 高=写实照片;smooth 高=扁平或水面/天空/雾(见 insights)。
21
+ - **`regions`**:大结构的位置/大小/颜色。
22
+
23
+ ### 2. 找主体(全局→局部,主动验证)
24
+
25
+ - 对**颜色异常区、深色大块、相邻竖长色块、小色块密集区**用 `px_per_cell` 定向放大
26
+ (值越小越细:8-12 看轮廓,4-6 看结构,2-3 看细节;区域不够小时工具会提示实际密度,缩小 focus/region 重试)。
27
+ - 放大后按**形状**解读:头+肩+躯干=人物;弧线+对称明暗=圆柱/球/装置;
28
+ 竖直细长结构=石柱/塔/杆;交替细条=面板/栅格。
29
+ - **主体可能与背景低对比而"隐形"**(见 insights 4)——怀疑处必须放大确认,不能因 regions 未单列就跳过。
30
+
31
+ ### 3. 文字验证
32
+
33
+ - 疑似文字/标识/UI → `image_ocr`(region/focus 限定)。
34
+ - Windows 引擎读不出但怀疑有字 → `engine="paddle"` 重试(发光/弯曲/游戏渲染文字)。
35
+ - **OCR 结果优先于模型描述**(见 insights 3)。
36
+
37
+ ### 4. 材质判断
38
+
39
+ `image_sample` 对小块区域 8×8 取样,看 RGB 分布与 contrast 统计
40
+ (平滑渐变=天空/皮肤/水面;高对比条纹=金属/木纹;暗绿 G>R>B=植物/涂装)。
41
+
42
+ ### 5. 综合描述
43
+
44
+ 输出连贯描述(场景/主体/环境光线/细节),**每个结论标注证据等级**:
45
+ 实锤(有像素/OCR/取样数据)vs 推断(基于结构推测,用"看起来像")。
46
+ 优先引用具体数字;不确定就说不确定,绝不编造。
47
+
48
+ ## 行为准则(principles)
49
+
50
+ 1. **证据分级**:任何结论标注"实测"或"推断";推断必须说明依据。
51
+ 2. **数字优先**:用具体指标("蓝色调 74%""对称 80%""OCR 读出 1.00")支撑描述,不用模糊形容词代替。
52
+ 3. **先全局后局部**:第一轮定调,第二轮定向放大验证,不跳步。
53
+ 4. **怀疑即验证**:对任何"可能漏掉的主体",用放大/取样/OCR 验证后再下结论。
54
+ 5. **不编造**:不确定就说明;模型(含多模态)的描述不可直接当作事实(见 insights 3)。
55
+
56
+ ## 规律性洞察(insights,跨图归纳)
57
+
58
+ 1. **暗调场景的真实颜色只在 hue families 里**:低饱和/暗色调(暮色、雾中、夜景)
59
+ 会被 14 色色板压成灰黑,`colors` 的灰白占比是假象——hue families 按纯色相分族不受影响。
60
+ 2. **高对称 ≠ 一定人造物**:水面倒影/镜像构图也高度对称。区分看:平滑大面积
61
+ (水面/天空 smooth 高)+ 水天分界线(上亮下暗、上下镜像)+ 竖直细长结构(石柱)
62
+ = 湖泊/自然镜像;纹理复杂、颜色单调、几何硬边 = 人造建筑/装置。
63
+ 3. **小模型读小字不可靠**:多模态小模型对低分辨率文字会幻觉(全图"读出"内容、
64
+ 裁剪后承认没有);发光/弯曲/艺术字 Windows OCR 也失效——**文字一律以 OCR 实读为准**。
65
+ 4. **低对比主体"隐形"**:暗色物体(如深色服装人物)在暗背景中融入背景黑块,
66
+ 粗网格和 regions 都不会标出——对深色区域主动放大是唯一可靠发现方式。
67
+ 5. **平滑大面积 ≠ 扁平简笔画**:水面、天空、雾气、墙面都平滑(smooth 高),
68
+ 需结合色调/结构/场景判断,不能仅凭 smooth 判定"扁平"。
69
+ 6. **"像什么"和"是什么"要分开**:结构证据(对称/形状/色调)支撑"像什么";
70
+ "是什么"需要 OCR/取样/更强证据,不满足时保持推断。
71
+ 7. **hue families 是场景类型指纹**(34 张图训练归纳):
72
+ - cyan 高(>60%)= 水/雾/湖泊/晨雾场景(东方水景、浓雾遗址)
73
+ - green 高(>40%)= 森林/竹林/草地/苔藓
74
+ - orange 或 red 高 = 红披风/暖色服饰人物、火光、晚霞
75
+ - blue 高(>70%)= 夜晚/冷色科幻场景
76
+ - achromatic 高 + rough 高 = 废墟/岩石/暗环境
77
+ - green + yellow 双高 = 翠绿能量带/发光植被/浮空仙境
78
+ - 对称高 + 中央竖直结构 = 中央主体(瀑布/树/大门)居中构图
79
+ 8. **多模态模型的颜色描述对"发光/能量"不可靠**(训练中反复出现):把实测为
80
+ cyan/blue/green 的冷色发光(屏幕光、能量屏障、雾中光柱)系统性说成"粉红/紫色"。
81
+ 发光元素的颜色一律以 hue 实测为准。
82
+ 9. **人物识别信号**:orange/red 主调 + 局部暖色小块 + 对称 = 人物服饰候选;
83
+ 游戏角色常穿红/橙(红披风、红发、暖色战斗服),识别到暖色主调时应主动放大找人物。
84
+ 10. **品牌/游戏名/标题文字**:多模态模型会猜错("原神""崩坏3"实际是明日方舟终末地),
85
+ 必须 PaddleOCR 实读(游戏 HUD 底部常带游戏名/参数/水印)。
86
+
87
+ ## 案例参考(experience,简短)
88
+
89
+ - 湖泊仙侠图:对称 97% 被误判为"人造立面",实为水面倒影+湖中石柱+粉紫雾气
90
+ → 教训沉淀为 insight 2。
91
+ - 游戏发光标语图:Windows OCR 12 格全空、多模态幻觉"问问答写",
92
+ PaddleOCR 一次读出「勇于探索叩问苍穹」→ 教训沉淀为 insight 3。
93
+ - 暗背景人物图:黑服人物融入背景被漏检,px_per_cell=3 放大后头肩躯干清晰
94
+ → 教训沉淀为 insight 4。
95
+
96
+ (新增经验会持续按以上分类沉淀进本 skill。)
97
+
98
+ ## vision_analyze 统一工具
99
+
100
+ 当需要一次性获取多种证据时,使用 `vision_analyze`:
101
+ - 自动检测空白/简单图片(低信息量拦截)
102
+ - 可选像素扫描(include_scan)
103
+ - 可选 OCR 文字识别(include_ocr)
104
+ - 可选 VLM 语义描述(include_vlm,需配置 SEE_BASE)
105
+ - 所有证据以文本形式返回,供主模型推理
106
+
107
+ ### 推荐的工作流程
108
+
109
+ 建议先用 `image_scan` 自己看,了解图片内容后再决定是否需要调用 VLM。简单图片用像素扫描就够了,复杂场景可以调用 VLM。
110
+
111
+ ### 多次提问
112
+
113
+ 对同一张图可以进行多次不同角度的提问,获取更全面的理解。
114
+
115
+ ### 交叉验证
116
+
117
+ VLM 描述与像素/OCR 证据冲突时,以实测为准。
118
+
119
+ 详细用法见 `skills/vision-analyze.md`。
@@ -0,0 +1,256 @@
1
+ ---
2
+ name: vision-analyze
3
+ description: Unified image understanding tool that combines pixel scan, OCR, and optional VLM for complete image analysis. Use when you need one call to both verify what is in the image and get a natural-language interpretation.
4
+ whenToUse: 需要一次性获取图片的多种证据(像素扫描 + OCR + VLM 描述)时使用。
5
+ ---
6
+
7
+ # vision_analyze 统一识图工具
8
+
9
+ ## 工具概述
10
+
11
+ `vision_analyze` 是 picturereader 的统一识图入口,一次调用可获取:
12
+ - **像素扫描证据**(image_scan)
13
+ - **OCR 文字识别**(image_ocr)
14
+ - **VLM 语义描述**(可选,需配置 SEE_BASE)
15
+
16
+ ## 核心特性
17
+
18
+ ### 1. 低信息量拦截
19
+ 自动检测空白/简单图片,防止 VLM 幻觉:
20
+ - 颜色种类太少(≤8 种)
21
+ - 单一颜色占比过高(≥90%)
22
+ - 主导颜色且边缘稀少
23
+ - 亮度方差太小
24
+
25
+ ### 2. 证据交叉验证
26
+ - VLM 描述与像素/OCR 冲突时,以像素/OCR 实测为准
27
+ - 所有证据以文本形式返回,供主模型推理
28
+
29
+ ### 3. VLM 可选配置
30
+ - 默认不配置 VLM,只返回像素扫描和 OCR 证据
31
+ - 需要 VLM 时,设置 `SEE_BASE` 环境变量
32
+
33
+ ### 4. 智能调用策略
34
+ - **简单图片**:不调用外部 API,使用像素扫描 + OCR 即可
35
+ - **复杂/精密图片**:调用外部 API 获取语义理解
36
+ - **多次提问**:支持对同一张图进行多次不同角度的提问
37
+
38
+ ## 使用建议
39
+
40
+ ### 推荐的工作流程
41
+
42
+ 建议先用 `image_scan` 自己看,了解图片内容后再决定是否需要调用 VLM:
43
+
44
+ ```
45
+ # 先看图片内容
46
+ image_scan(file_path="C:/shot.png", size=32)
47
+
48
+ # 根据结果决定下一步
49
+ # - 简单图片 → 直接描述,不需要 VLM
50
+ # - 需要文字 → image_ocr
51
+ # - 复杂场景 → vision_analyze(含 VLM)
52
+ ```
53
+
54
+ ### 何时调用 VLM
55
+
56
+ 简单图片用像素扫描就够了,复杂场景可以调用 VLM 获取语义理解。具体由你根据图片内容判断。
57
+
58
+ ### 交叉验证
59
+
60
+ 主模型需要对 VLM 结果进行交叉验证:
61
+
62
+ 1. **像素证据优先**:VLM 描述与像素扫描冲突时,以像素证据为准
63
+ 2. **OCR 优先**:VLM 识别的文字与 OCR 冲突时,以 OCR 为准
64
+ 3. **逻辑验证**:VLM 描述不符合逻辑时(如"天空是绿色的"),标记为幻觉
65
+ 4. **多次提问验证**:对同一张图进行多次不同角度的提问,验证一致性
66
+
67
+ ### 多次提问策略
68
+
69
+ 对同一张图可以进行多次不同角度的提问,以获取更全面的理解:
70
+
71
+ ```
72
+ # 第一次:整体描述
73
+ vision_analyze(
74
+ file_path="C:/shot.png",
75
+ prompt="描述这个图片的整体内容",
76
+ include_scan=true,
77
+ include_ocr=true,
78
+ include_vlm=true
79
+ )
80
+
81
+ # 第二次:细节询问
82
+ vision_analyze(
83
+ file_path="C:/shot.png",
84
+ prompt="图片中有哪些文字?请详细列出",
85
+ include_scan=false,
86
+ include_ocr=false,
87
+ include_vlm=true
88
+ )
89
+
90
+ # 第三次:推理判断
91
+ vision_analyze(
92
+ file_path="C:/shot.png",
93
+ prompt="这个界面设计是否合理?有哪些问题?",
94
+ include_scan=false,
95
+ include_ocr=false,
96
+ include_vlm=true
97
+ )
98
+ ```
99
+
100
+ ## 使用方法
101
+
102
+ ### 基本用法(无 VLM)
103
+ ```
104
+ vision_analyze(
105
+ file_path="C:/shot.png",
106
+ include_scan=true,
107
+ include_ocr=false,
108
+ include_vlm=false
109
+ )
110
+ ```
111
+
112
+ ### 完整用法(含 VLM)
113
+ ```
114
+ vision_analyze(
115
+ file_path="C:/shot.png",
116
+ prompt="描述这个界面,有哪些元素?布局是否正常?",
117
+ include_scan=true,
118
+ include_ocr=true,
119
+ include_vlm=true,
120
+ allow_low_info=false,
121
+ stop_after=false
122
+ )
123
+ ```
124
+
125
+ ### 多次提问用法
126
+ ```
127
+ # 对同一张图进行多次不同角度的提问
128
+ vision_analyze(file_path="C:/shot.png", prompt="整体描述", include_vlm=true)
129
+ vision_analyze(file_path="C:/shot.png", prompt="有哪些文字?", include_vlm=true)
130
+ vision_analyze(file_path="C:/shot.png", prompt="设计是否合理?", include_vlm=true)
131
+ ```
132
+
133
+ ## 参数说明
134
+
135
+ | 参数 | 类型 | 默认值 | 说明 |
136
+ |------|------|--------|------|
137
+ | `file_path` | string | 必需 | 图片路径(PNG/JPEG/GIF/BMP) |
138
+ | `prompt` | string | "Describe this image in detail." | VLM 提示词 |
139
+ | `include_scan` | boolean | true | 是否包含像素扫描证据 |
140
+ | `include_ocr` | boolean | false | 是否包含 OCR 文字识别 |
141
+ | `ocr_engine` | string | "windows" | OCR 引擎:windows 或 paddle |
142
+ | `include_vlm` | boolean | true | 是否包含 VLM 描述(需配置 SEE_BASE) |
143
+ | `allow_low_info` | boolean | false | 是否允许低信息量图片调用 VLM |
144
+ | `stop_after` | boolean | false | 调用后是否停止本地 llama-server |
145
+
146
+ ## 输出格式
147
+
148
+ ```json
149
+ {
150
+ "path": "C:/shot.png",
151
+ "lowInformation": false,
152
+ "scan": "[scan]\nimage: C:/shot.png (1920x1080 -> 32x18 cells, ...)\n...",
153
+ "ocr": "[ocr]\nocr: C:/shot.png (1920x1080, region=full, engine=windows)\n...",
154
+ "vlm": "[vlm]\n这是一个桌面应用程序的截图,包含...",
155
+ "combined": "[scan]\n...\n\n---\n\n[ocr]\n...\n\n---\n\n[vlm]\n..."
156
+ }
157
+ ```
158
+
159
+ ## 使用场景
160
+
161
+ ### 1. UI/界面验证
162
+ ```
163
+ vision_analyze(
164
+ file_path="C:/ui_screenshot.png",
165
+ prompt="这个界面有哪些按钮?布局是否正常?有没有错位?",
166
+ include_scan=true,
167
+ include_ocr=true,
168
+ include_vlm=true
169
+ )
170
+ ```
171
+
172
+ ### 2. 游戏截图分析
173
+ ```
174
+ vision_analyze(
175
+ file_path="C:/game_screenshot.png",
176
+ prompt="这是什么游戏?画面中有什么角色/物体?",
177
+ include_scan=true,
178
+ include_ocr=true,
179
+ include_vlm=true
180
+ )
181
+ ```
182
+
183
+ ### 3. 文档/图片 OCR
184
+ ```
185
+ vision_analyze(
186
+ file_path="C:/document.png",
187
+ include_scan=false,
188
+ include_ocr=true,
189
+ include_vlm=false,
190
+ ocr_engine="paddle"
191
+ )
192
+ ```
193
+
194
+ ### 4. 长任务视觉验证
195
+ ```
196
+ # 循环验证流程
197
+ 1. 截图
198
+ 2. vision_analyze(file_path="C:/step1.png", include_scan=true, include_ocr=true)
199
+ 3. 与预期比对
200
+ 4. 不一致则修正
201
+ 5. 再截图验证
202
+ ```
203
+
204
+ ## 配置说明
205
+
206
+ ### PaddleOCR(可选)
207
+ ```bash
208
+ # 安装 PaddleOCR
209
+ node scripts/setup-ocr.mjs
210
+
211
+ # 环境变量
212
+ DSH_PADDLE_PYTHON=C:\Users\Administrator\paddle_venv\Scripts\python.exe
213
+ DSH_PADDLE_CACHE=<插件目录>\.paddlex-cache
214
+ ```
215
+
216
+ ### VLM(可选,默认不配置)
217
+ ```bash
218
+ # 本地 llama-server
219
+ SEE_BASE=http://127.0.0.1:8080/v1
220
+ SEE_MODEL=Huihui-Qwen3-VL-4B-Instruct-abliterated
221
+ SEE_SERVER_EXE=E:\llama\llama-server.exe
222
+ SEE_SERVER_MODEL=E:\llama\models\model.f16.gguf
223
+ SEE_SERVER_MMPROJ=E:\llama\models\mmproj-f16.gguf
224
+ SEE_SERVER_PORT=8080
225
+ SEE_SERVER_NGL=20
226
+ SEE_SERVER_CTX=16384
227
+
228
+ # 远程 API
229
+ SEE_BASE=https://api.openai.com/v1
230
+ SEE_MODEL=gpt-4-vision-preview
231
+ SEE_API_KEY=sk-xxx
232
+ ```
233
+
234
+ ## 注意事项
235
+
236
+ 1. **VLM 可选**:默认不配置 VLM,`vision_analyze` 会跳过 VLM 调用,只返回像素扫描和 OCR 证据
237
+ 2. **低信息量拦截**:空白/简单图片会自动拦截,不调用 VLM(防止幻觉)
238
+ 3. **证据优先级**:像素扫描 > OCR > VLM(冲突时以实测为准)
239
+ 4. **性能考虑**:VLM 调用需要 2-5 秒,建议在需要语义理解时才启用
240
+ 5. **WebP 不支持**:需要先转换为 PNG/JPEG
241
+
242
+ ## 与其他工具的关系
243
+
244
+ - **image_scan**:像素级扫描,返回详细的颜色/结构证据
245
+ - **image_ocr**:文字识别,返回 OCR 文本
246
+ - **image_sample**:材质/纹理取样
247
+ - **vision_analyze**:统一入口,组合以上证据 + 可选 VLM
248
+
249
+ **必须遵守的工作流程**:
250
+ 1. **先用 `image_scan` 自己看**(像素扫描)→ 了解图片内容和复杂度
251
+ 2. 根据扫描结果判断:
252
+ - 简单图片(颜色单一、结构简单)→ 不需要 VLM,直接描述
253
+ - 需要文字 → 用 `image_ocr`
254
+ - 复杂场景(多人物、多物体、复杂背景)→ 用 `vision_analyze`(含 VLM)
255
+ - 需要材质细节 → 用 `image_sample`
256
+ 3. **不要直接调用 VLM**,先自己看再决定是否需要外部 API