@anionex/dsh-vision-toolkit 0.1.10 → 0.1.12
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.
- package/README.i18n.yaml +2 -2
- package/README.md +107 -56
- package/README.zh.md +107 -55
- package/assets/dsh-view-example.png +0 -0
- package/assets/hero.png +0 -0
- package/lib/client.js +1 -1
- package/lib/client.js.map +1 -1
- package/lib/config.js +8 -1
- package/lib/config.js.map +1 -1
- package/lib/defaults.js +1 -1
- package/lib/defaults.js.map +1 -1
- package/lib/image-input-variants.js +65 -23
- package/lib/image-input-variants.js.map +1 -1
- package/lib/paste-images.js +6 -1
- package/lib/paste-images.js.map +1 -1
- package/lib/types/config.d.ts +2 -2
- package/lib/types/config.d.ts.map +1 -1
- package/lib/types/defaults.d.ts +1 -1
- package/lib/types/defaults.d.ts.map +1 -1
- package/lib/types/image-input-variants.d.ts +6 -4
- package/lib/types/image-input-variants.d.ts.map +1 -1
- package/lib/types/paste-images.d.ts +10 -0
- package/lib/types/paste-images.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/index.tsx +1 -1
- package/src/config.ts +11 -3
- package/src/defaults.ts +1 -2
- package/src/image-input-variants.ts +81 -23
- package/src/paste-images.ts +7 -2
package/README.zh.md
CHANGED
|
@@ -1,38 +1,66 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/hero.png" alt="DSH Vision Toolkit——面向纯文本 DeepSeek Harness Agent 的原生视觉工程能力" />
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<h1 align="center">DSH Vision Toolkit</h1>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/Anionex/dsh-vision-toolkit/blob/main/README.md">English</a> | 中文
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<a href="https://dshfind.com/zh/plugins/Anionex/dsh-vision-toolkit"><img src="https://img.shields.io/badge/%E7%94%B1%20dshfind-%E6%8E%A8%E8%8D%90-FFD700?style=flat-square" alt="由 dshfind 推荐" /></a>
|
|
13
|
+
<a href="https://dshfind.com/zh/plugins/Anionex/dsh-vision-toolkit"><img src="https://img.shields.io/badge/dshfind%20%E8%AF%84%E5%88%86-94%20%7C%20%E6%9C%80%E9%AB%98%E5%88%86%E6%8F%92%E4%BB%B6-5B4CF0?style=flat-square" alt="dshfind 评分:94——最高分插件" /></a>
|
|
14
|
+
<a href="https://x.com/anion_ex"><img src="https://img.shields.io/badge/-@anion__ex-000000?style=flat-square&logo=x&logoColor=white" alt="X:@anion_ex" /></a>
|
|
15
|
+
<a href="https://github.com/Anionex/dsh-vision-toolkit/releases/tag/v0.1.12"><img src="https://img.shields.io/badge/release-v0.1.12-5B4CF0?style=flat-square" alt="Release v0.1.12" /></a>
|
|
16
|
+
<a href="tests"><img src="https://img.shields.io/badge/verified-233%20tests-2EA44F?style=flat-square" alt="已验证:233 项测试" /></a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center">
|
|
20
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-0B7285?style=flat-square" alt="许可证:MIT" /></a>
|
|
21
|
+
<a href="package.json"><img src="https://img.shields.io/badge/Node.js-%5E22.19%20%7C%20%3E%3D24-339933?style=flat-square&logo=nodedotjs&logoColor=white" alt="Node.js ^22.19 或 >=24" /></a>
|
|
22
|
+
<a href="runtime/requirements.lock"><img src="https://img.shields.io/badge/Python-3.11%2B-3776AB?style=flat-square&logo=python&logoColor=white" alt="Python 3.11+" /></a>
|
|
23
|
+
<a href="cordis.patch.yml"><img src="https://img.shields.io/badge/DSH-Web%20%2B%20Headless-5B4CF0?style=flat-square" alt="DSH Web 与 Headless Profile" /></a>
|
|
24
|
+
</p>
|
|
2
25
|
|
|
3
|
-
|
|
26
|
+
## 让 DSH Agent 真正看见
|
|
4
27
|
|
|
5
|
-
|
|
6
|
-
[](https://dshfind.com/zh/plugins/Anionex/dsh-vision-toolkit)
|
|
7
|
-
[](https://x.com/anion_ex)
|
|
8
|
-
[](https://github.com/Anionex/dsh-vision-toolkit/releases/tag/v0.1.10)
|
|
9
|
-
[](tests)
|
|
10
|
-
[](LICENSE)
|
|
11
|
-
[](package.json)
|
|
12
|
-
[](runtime/requirements.lock)
|
|
13
|
-
[](cordis.patch.yml)
|
|
28
|
+
把截图交给纯文本 DeepSeek Harness Agent,它就能看懂画面、读取文字、定位元素、提取素材、还原界面,并用像素差异检查结果是否准确。
|
|
14
29
|
|
|
15
|
-
|
|
30
|
+
DSH Vision Toolkit 将 [`agent-vision-toolkit`](https://github.com/Anionex/agent-vision-toolkit) 打包成原生 DSH 插件。安装后即可使用图片问答、OCR、原图像素坐标、UI 还原、像素对比、可下载产物和 Web 设置,无需自己拼接脚本。
|
|
16
31
|
|
|
17
|
-
|
|
32
|
+
```sh
|
|
33
|
+
dsh plugin --profile web add @anionex/dsh-vision-toolkit
|
|
34
|
+
```
|
|
18
35
|
|
|
19
|
-
|
|
36
|
+
npm 包已经包含视觉工具快照,并默认使用托管运行时。**普通安装不需要下载源码,也不需要填写 `agentVisionToolkitPath`。**
|
|
20
37
|
|
|
21
38
|
**上游工具箱:** [Anionex/agent-vision-toolkit](https://github.com/Anionex/agent-vision-toolkit) · **项目网站:** [agent-vision.anionex.me](https://agent-vision.anionex.me)
|
|
22
39
|
|
|
23
|
-
|
|
40
|
+
## 你可以用它做什么
|
|
41
|
+
|
|
42
|
+
| 目标 | Agent 可以交付什么 |
|
|
43
|
+
|---|---|
|
|
44
|
+
| 看懂截图 | 针对问题作答、描述画面、比较多张图片或执行 OCR |
|
|
45
|
+
| 找到界面元素 | 返回原图像素坐标,并可生成带框预览图 |
|
|
46
|
+
| 按参考图还原页面 | 渲染网页截图、逐区域诊断差异并持续迭代 |
|
|
47
|
+
| 提取可复用素材 | 裁剪图片、透明前景、主色板或可编辑 SVG |
|
|
48
|
+
| 读取长截图 | 可审计分块、Markdown、manifest 和可恢复 OCR 运行目录 |
|
|
49
|
+
| 验证视觉结果 | 差异百分比、主要偏差区域、热力图和 JSON 报告 |
|
|
24
50
|
|
|
25
|
-
|
|
51
|
+
只有需要理解图片内容时才调用远程视觉模型。裁剪、描摹、像素对比、颜色分析、前景提取和 HTML 截图都在本地运行。
|
|
26
52
|
|
|
27
|
-
|
|
53
|
+
## 看看实际效果
|
|
28
54
|
|
|
29
|
-
|
|
55
|
+
第一个示例是 DSH Web 的真实界面视图;接下来两组示例来自本插件所打包的同一条 `agent-vision-toolkit` 代码线;最后一组展示 DeepSeek Harness Web 中的真实使用流程。素材来源见[素材溯源记录](assets/upstream/README.md)。
|
|
30
56
|
|
|
31
|
-
|
|
57
|
+
### DSH 视图示例
|
|
32
58
|
|
|
33
|
-
|
|
59
|
+
<p align="center">
|
|
60
|
+
<img src="assets/dsh-view-example.png" width="80%" alt="DSH Web 会话视图:纯文本的 DeepSeek-V4-Flash (Vision Toolkit) 模型回答用户粘贴的品牌横幅图内容。" />
|
|
61
|
+
</p>
|
|
34
62
|
|
|
35
|
-
|
|
63
|
+
*真实的 DSH Web 视图:用户粘贴一张品牌横幅截图,纯文本模型通过 `DeepSeek-V4-Flash (Vision Toolkit)` 图片输入变体回答图片内容。*
|
|
36
64
|
|
|
37
65
|
### 信息图还原:从截图到可编辑 HTML/CSS
|
|
38
66
|
|
|
@@ -61,47 +89,47 @@ DSH Vision Toolkit 保留这套方法,并用原生 schema、DSH Credentials、
|
|
|
61
89
|
|
|
62
90
|
*左:DSH Web 中带意图的图片问答;右:DSH Web 中通过截图对比定位 UI 字段差异,并继续向 `vision_pixel_diff` 推进。上游工作流来源仍为 [`agent-vision-toolkit` 官方实跑](https://github.com/Anionex/agent-vision-toolkit/blob/c27d1a300962b553c0884993c575cd3e819465ce/README.md#real-world-effects)。*
|
|
63
91
|
|
|
64
|
-
DSH Vision Toolkit
|
|
92
|
+
DSH Vision Toolkit 把这套工作流带进 DSH,让结果可以直接成为文件、坐标、可度量的对比报告,或同一会话中的下一步行动。
|
|
65
93
|
|
|
66
|
-
##
|
|
94
|
+
## 从大致相似到像素级一致
|
|
67
95
|
|
|
68
|
-
|
|
96
|
+
仓库内的 UI 还原流程从一个故意不准确的 HTML 实现开始。Vision Toolkit 测得 `6.04%` 差异,指出最需要修正的区域,并推动下一轮迭代。最终渲染结果在 `1200 × 720` 下达到精确 `0%` 差异。
|
|
69
97
|
|
|
70
98
|
<p>
|
|
71
99
|
<img src="examples/ui-restoration/assets/initial.png" width="49%" alt="Vision Toolkit 迭代前的 UI 还原候选,与参考图仍有可测量的布局和样式差异。" />
|
|
72
100
|
<img src="examples/ui-restoration/assets/implementation.png" width="49%" alt="仓库内可复现流程生成的最终 UI 还原结果,与参考图达到零像素差异。" />
|
|
73
101
|
</p>
|
|
74
102
|
|
|
75
|
-
|
|
|
103
|
+
| 起点 | 结果 |
|
|
76
104
|
|---|---|
|
|
77
|
-
|
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
| 视觉验收 | 可复现的 HTML 截图 → 像素对比示例,最终差异为 `0%` |
|
|
105
|
+
| 参考图 | 可打开、可编辑的 HTML 实现 |
|
|
106
|
+
| 第一次对比 | 主要问题区域的差异为 `6.04%` |
|
|
107
|
+
| 最终对比 | 在 `1200 × 720` 下达到 `0%` 差异 |
|
|
81
108
|
|
|
82
|
-
##
|
|
109
|
+
## 它为什么好用
|
|
83
110
|
|
|
84
|
-
-
|
|
85
|
-
-
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
89
|
-
- **同一 Bundle 同时服务 Web 与 Headless:** Web 增加卡片、预览、Settings 和健康操作;Headless 保持相同工具语义和完整结构化结果。
|
|
111
|
+
- **直接提出你要解决的问题。** “提交按钮在哪里?”和“这张截图为什么和参考图不一样?”都会进入针对性的视觉分析,而不是得到一段泛泛的描述。
|
|
112
|
+
- **拿到可以继续使用的证据。** Agent 会返回坐标、OCR、测量结果、JSON 和文件,方便打开或交给下一步处理。
|
|
113
|
+
- **工作流留在 DSH 里。** Credential、Settings、产物、Web 卡片和 Headless 结果都与会话的其他内容放在一起。
|
|
114
|
+
- **能本地处理就不调用远程模型。** 裁剪、描摹、像素对比、颜色分析、前景提取和 HTML 截图都不消耗视觉 API 请求。
|
|
115
|
+
- **让迭代有终点。** 参考图 → 实现 → 截图 → 像素对比,把 UI 还原变成有数据支撑的闭环。
|
|
90
116
|
|
|
91
|
-
##
|
|
117
|
+
## 三步开始使用
|
|
92
118
|
|
|
93
|
-
|
|
119
|
+
使用 DeepSeek Harness `0.1.0-rc.6` 或兼容的后续 `0.1.x` 版本即可。插件会在第一次使用时准备托管运行时。
|
|
94
120
|
|
|
95
121
|
```sh
|
|
96
122
|
dsh plugin --profile web add @anionex/dsh-vision-toolkit
|
|
97
123
|
dsh plugin --profile headless add @anionex/dsh-vision-toolkit
|
|
98
|
-
dsh --profile web --dump-config | grep vision-toolkit
|
|
99
|
-
dsh --profile headless --dump-config | grep vision-toolkit
|
|
100
124
|
```
|
|
101
125
|
|
|
102
|
-
|
|
126
|
+
1. 重启 Web Profile,打开 **设置 → 视觉工具**。
|
|
127
|
+
2. 如果要使用远程视觉模型,选择 DSH Credential,然后执行**测试 API 连接**和**测试视觉模型**。
|
|
128
|
+
3. 在会话中粘贴图片或把图片放进工作区,调用 `/vision-tools`,提出一个明确的视觉任务。
|
|
129
|
+
|
|
130
|
+
如果使用较旧的 DSH launcher,安装前可能需要在 Profile 中设置 `nodeLinker: hoisted` 和 `autoInstallPeers: false`。当前 launcher 会自动修复这些设置。
|
|
103
131
|
|
|
104
|
-
安装后重启正在运行的 Web Profile,打开 **设置 → 视觉工具**,先执行**测试 API 连接**,再执行**测试视觉模型**。新安装会自动使用内置免费
|
|
132
|
+
安装后重启正在运行的 Web Profile,打开 **设置 → 视觉工具**,先执行**测试 API 连接**,再执行**测试视觉模型**。新安装会自动使用内置免费 Gemma 4 提供方,不需要 API Key 或 DSH Credential。若要使用其他提供方,请修改端点、模型或协议,并配置对应的 DSH Credential。
|
|
105
133
|
|
|
106
134
|
## 加入交流群
|
|
107
135
|
|
|
@@ -110,6 +138,12 @@ dsh --profile headless --dump-config | grep vision-toolkit
|
|
|
110
138
|
<p align="center">
|
|
111
139
|
<img src="assets/community-group-qr.png" alt="agent-vision-toolkit 项目交流群二维码" width="260">
|
|
112
140
|
</p>
|
|
141
|
+
本地裁剪、SVG、像素、颜色、前景和 HTML 操作不需要视觉 API Credential。
|
|
142
|
+
|
|
143
|
+
> **不需要本地路径。** 普通 npm 安装保持默认的 `runtime.mode: managed` 即可。`runtime.agentVisionToolkitPath` 只面向明确需要外部固定 checkout 的开发者或受控部署。
|
|
144
|
+
|
|
145
|
+
<details>
|
|
146
|
+
<summary><strong>技术架构</strong></summary>
|
|
113
147
|
|
|
114
148
|
## 工作原理
|
|
115
149
|
|
|
@@ -132,6 +166,8 @@ flowchart LR
|
|
|
132
166
|
|
|
133
167
|
所有工具定义都调用同一个 Runtime;Runtime 在分发到固定上游快照或已配置的视觉提供方端点前,统一验证路径、限制、Credential、取消和超时。Web 展示读取相同的结构化结果与产物描述,因此不会改变 Headless 语义。健康、连接测试和版本检查只留在 Settings,不进入模型工具 schema。
|
|
134
168
|
|
|
169
|
+
</details>
|
|
170
|
+
|
|
135
171
|
## 工具
|
|
136
172
|
|
|
137
173
|
| 工具 | 执行方式 | 结构化结果 | 产物交付 |
|
|
@@ -149,6 +185,9 @@ flowchart LR
|
|
|
149
185
|
|
|
150
186
|
插件不重新实现视觉算法。DSH 侧只负责验证路径与限制、解析 Credential、用 argv 向量调用固定上游脚本、解析精确输出契约、分类失败、描述文件,并把结果投影给模型和 Web 客户端。
|
|
151
187
|
|
|
188
|
+
<details>
|
|
189
|
+
<summary><strong>高级模型行为</strong></summary>
|
|
190
|
+
|
|
152
191
|
## 渐进式模型暴露
|
|
153
192
|
|
|
154
193
|
运行时就绪状态属于整个 Profile,但 10 个视觉执行工具的 schema 属于具体 Agent。Agent 加载 `vision-tools` 前,插件只贡献很小的 `vision_toolkit_activate` 引导工具;该 Agent 的请求 schema 中没有视觉执行工具。标准 `skill` 工具以 `name="vision-tools"` 成功加载后,会为下一模型步骤自动挂载全部 10 个工具并隐藏引导工具。直接调用 `/vision-tools` 会注入 skill 指令;如果此时视觉工具仍不可见,这些指令要求调用一次 `vision_toolkit_activate`。激活只影响当前 Agent;Session 中存在与打包 skill 版本匹配的持久证据时可以恢复,并持续到 Agent 或插件被释放。
|
|
@@ -157,18 +196,20 @@ flowchart LR
|
|
|
157
196
|
|
|
158
197
|
## 纯文本模型的图片输入变体
|
|
159
198
|
|
|
160
|
-
|
|
199
|
+
纯文本模型路由仍会获得同名的兄弟模型条目:`<模型名> (Vision Toolkit)`,挂在对应的提供方分组下。但 DSH 原生图片块不会把粘贴附件的本地路径传给模型,因此所有桥接路径都会先把图片复制进会话工作区,再把绝对路径暴露给模型。模型随后可以把这个路径传给 `vision_glance` 或其他视觉工具。当服务端图片输入变体启用时,同一个模型可见消息还会包含与 `agent-vision-toolkit` 对齐、带 focus hint 的 `[vision model description]` 证据;路径仍然保留,模型可以再次针对更具体的问题调用视觉工具。会话日志保存可复用的路径引用,UI 保留粘贴记录。
|
|
161
200
|
|
|
162
201
|
插件会自动为宿主明确声明为纯文本的每个模型注册变体(例如 DeepSeek 对话家族)。粘贴处理是全自动的:当当前模型被确认为纯文本、且它的变体已注册时,浏览器端集成会自动把会话切换到变体(会有一条简短提示说明新模型名),随后粘贴走原生流程,无需手动切换模型。宿主依据浏览器从实时模型目录读到的精确模型路由来裁决,模型选择器标签作为兜底;无法确认或支持图片的路由一律保持原生流程,而"纯文本但没有变体"的模型(例如变体被关闭时)继续走"粘贴转路径":图片被复制进会话工作区,输入框里插入的是它的路径文本。
|
|
163
202
|
|
|
164
|
-
|
|
203
|
+
默认启用图片输入变体自动切换。描述转换需要已配置的视觉提供方及其 Credential;当运行时未就绪或读取失败时,请求链路上的图片块仍保留工作区路径,并追加与上游兼容的 `[vision unavailable: ...]` 提示,而不是让整轮失败。桥接不会把注入的上下文文件当作当前用户意图;如果图片来自工具调用,则使用最新的助手段落作为关注提示。用 `imageInputVariants.enabled: false` 关闭变体,用 `imageInputVariants.providers` 限制被包装的路由,或用 `imageInputVariants.autoSwitch: false` 改回只注入路径的接管流程。
|
|
204
|
+
|
|
205
|
+
</details>
|
|
165
206
|
|
|
166
207
|
## 运行要求
|
|
167
208
|
|
|
168
209
|
- 启用 Web 或 Headless Profile 的 DeepSeek Harness,并确保 `dsh plugin` 可以使用 `pnpm`。
|
|
169
210
|
- Python 3.11 或更高版本。Managed 模式会创建隔离环境,用户无需手工安装上游 CLI(命令行界面)或 Python 包。
|
|
170
211
|
- 首次启用 managed 运行时需要联网;如果配置的软件包缓存已有 `runtime/requirements.lock` 中的精确版本,则无需联网。
|
|
171
|
-
- 内置免费
|
|
212
|
+
- 内置免费 Gemma 4 提供方可直接用于 `vision_glance`、`vision_ground`、`vision_detect` 和非仅切分长截图 OCR。只有改用自定义 OpenAI 兼容或 Anthropic 端点时才需要 DSH Credential;本地工具不依赖任何远程提供方。
|
|
172
213
|
- 只有 `vision_html_screenshot` 需要 Chrome、Chromium 或 Edge;未安装受支持浏览器时,其他工具保持可用。
|
|
173
214
|
- 输入必须是会话工作区或显式 `allowedDirs` 根目录内的 PNG、JPEG、GIF 或 WebP。
|
|
174
215
|
|
|
@@ -209,7 +250,7 @@ dsh plugin --profile web remove @dsh-external/dsh-vision-toolkit
|
|
|
209
250
|
dsh plugin --profile web add @anionex/dsh-vision-toolkit
|
|
210
251
|
```
|
|
211
252
|
|
|
212
|
-
重启后,Settings → 视觉工具 应显示插件版本 **0.1.
|
|
253
|
+
重启后,Settings → 视觉工具 应显示插件版本 **0.1.12**。内置免费提供方会自动选中;自定义提供方仍使用配置的 DSH Credential。
|
|
213
254
|
|
|
214
255
|
通过注册表安装时,使用 Profile 的包管理命令更新依赖:
|
|
215
256
|
|
|
@@ -239,7 +280,7 @@ Bundle 默认使用 managed 运行时。Profile patch 可以覆盖提供方与
|
|
|
239
280
|
provider:
|
|
240
281
|
baseUrl: https://vision.anionex.me/v1
|
|
241
282
|
credential: ANIONEX_FREE_VISION
|
|
242
|
-
model:
|
|
283
|
+
model: gemma-4-26b-a4b-it
|
|
243
284
|
protocol: openai
|
|
244
285
|
anthropicThinking: omit
|
|
245
286
|
userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36
|
|
@@ -263,7 +304,7 @@ Bundle 默认使用 managed 运行时。Profile patch 可以覆盖提供方与
|
|
|
263
304
|
|---|---|---|
|
|
264
305
|
| `provider.baseUrl` | `https://vision.anionex.me/v1` | 内置免费 OpenAI 兼容端点;自定义提供方可改用其他基础 URL,使用时会去除结尾斜杠 |
|
|
265
306
|
| `provider.credential` | `ANIONEX_FREE_VISION` | 免费服务的只读内置引用;自定义提供方使用 DSH Credential 引用,而不是密钥值 |
|
|
266
|
-
| `provider.model` | `
|
|
307
|
+
| `provider.model` | `gemma-4-26b-a4b-it` | 远程工具使用的多模态模型名 |
|
|
267
308
|
| `provider.protocol` | `openai` | `openai` 发送 Chat Completions 请求;`anthropic` 发送原生 Messages 请求 |
|
|
268
309
|
| `provider.anthropicThinking` | `omit` | Anthropic thinking 字段。`omit` 不发送 thinking 字段,兼容性最好;仅当所选模型明确支持时使用 `disabled` 或 `adaptive`,提供方返回 HTTP 400 时应先恢复 `omit`。 |
|
|
269
310
|
| `provider.userAgent` | 浏览器兼容默认值 | 视觉请求和显式连接测试发送的 User-Agent;可为提供方或代理兼容性覆盖 |
|
|
@@ -278,7 +319,7 @@ Bundle 默认使用 managed 运行时。Profile patch 可以覆盖提供方与
|
|
|
278
319
|
| `allowedDirs` | `[]` | 额外的 realpath 解析输入根目录;会话工作区始终允许 |
|
|
279
320
|
| `imageInputVariants.enabled` | `true` | 为纯文本模型路由在模型选择器中注册图片输入变体条目 |
|
|
280
321
|
| `imageInputVariants.providers` | `[]` | 按提供方 id 限制被包装的上游路由;为空时包装所有符合条件的路由 |
|
|
281
|
-
| `imageInputVariants.autoSwitch` | `true` |
|
|
322
|
+
| `imageInputVariants.autoSwitch` | `true` | 粘贴时自动切换到图片输入变体;模型同时收到工作区路径和聚焦描述。设为 `false` 时只走路径接管 |
|
|
282
323
|
|
|
283
324
|
### Credential
|
|
284
325
|
|
|
@@ -292,18 +333,20 @@ Settings 只保存引用,不保存值。浏览器不会读取已保存的密
|
|
|
292
333
|
|
|
293
334
|
| 限制 | 当前值 |
|
|
294
335
|
|---|---:|
|
|
295
|
-
| 单客户端 | 每个 UTC 日
|
|
296
|
-
| 全局服务 | 每个 UTC 日
|
|
297
|
-
| 突发 | 60 秒内
|
|
336
|
+
| 单客户端 | 每个 UTC 日 100 次 |
|
|
337
|
+
| 全局服务 | 每个 UTC 日 400 次 |
|
|
338
|
+
| 突发 | 60 秒内 20 次 |
|
|
298
339
|
| 图片字节 | 每张最多 4 MiB |
|
|
299
340
|
| 解码像素 | 每张最多 20,000,000 像素 |
|
|
300
341
|
| 输出 | 最多 512 tokens |
|
|
301
342
|
|
|
302
|
-
### Managed
|
|
343
|
+
### Managed 运行时与可选 external 运行时
|
|
303
344
|
|
|
304
345
|
Managed 模式会验证 `vendor/agent-vision-toolkit/UPSTREAM_MANIFEST.json`,优先使用 `uv`,回退到 `venv` 加 pip,按 `runtime/requirements.lock` 安装精确版本,通过 heartbeat 锁协调并发准备,并只在全部探针通过后发布 staging 环境。
|
|
305
346
|
|
|
306
|
-
|
|
347
|
+
大多数用户只需要 managed 模式。它已经包含在 npm 包中,会自动为你准备固定版本的 Python 环境。
|
|
348
|
+
|
|
349
|
+
可选的 external 模式面向插件开发或受控部署,适用于已经维护好精确上游 checkout 的场景:
|
|
307
350
|
|
|
308
351
|
```yaml
|
|
309
352
|
- id: vision-toolkit
|
|
@@ -320,6 +363,8 @@ External 模式用于开发或受控部署:
|
|
|
320
363
|
|
|
321
364
|
Web Profile 会注册 Vision Toolkit Settings 分区,可配置提供方 URL、Credential 引用、模型、OpenAI/Anthropic 协议、Anthropic thinking 模式、User-Agent、语言、超时、字节/像素限制、并发数、运行时模式、Python 覆盖值、external 源码路径和允许目录。该页面还会显示插件/上游版本、当前运行时 generation、不含密钥的 Credential configured/source/writable 状态、运行时路径、健康检查结果和产物路由可用性。
|
|
322
365
|
|
|
366
|
+
**插件更新**卡片会通过当前 Profile 配置的 npm registry 检查 `@anionex/dsh-vision-toolkit` 新版本。点击**自动更新并重启**后,插件只安装用户刚刚确认的准确版本,校验安装结果,启动独立重启辅助进程,再优雅重启 DSH Web;当前页面会等待新进程恢复,并在新插件版本开始服务后自动刷新。该操作要求同源请求,只能更新这个固定包,并且会串行执行;`link:`、`file:`、workspace、git、URL、传递依赖、无法唯一识别、只读或缺少 `pnpm` 的安装方式不会开放自动更新,避免覆盖本地开发源码。重启可能中断正在运行的任务,因此界面会要求再次确认。
|
|
367
|
+
|
|
323
368
|
“保存并应用”会验证完整配置,准备候选 Python/上游运行时,提交 Settings revision,最后才原子切换 generation。候选被拒绝时,之前的 generation 继续服务,页面也会把这种状态与运行时确实不可用区分开来。“重新加载”始终恢复后端已保存的权威值,即使 revision 没有变化也会丢弃被拒绝的浏览器草稿。初始启动无法准备运行时时,Settings 路由仍可用于提交有效配置并激活首个 generation。陈旧浏览器 revision 不会覆盖较新的保存结果,而是返回冲突;刷新后再重试。只读 Settings 提供方允许查看和健康检查,但禁用保存。
|
|
324
369
|
|
|
325
370
|
“运行健康检查”只执行本地检查。“测试 API 连接”是显式操作,会把已配置 Credential 发送到 `GET /models`;OpenAI 使用 Bearer 认证,Anthropic 使用 `x-api-key` 与 `anthropic-version`。这个轻量测试不会上传图片,也不会创建 completion。“测试视觉模型”会另行把插件自带的 `assets/vision-model-test.png` 通过与 `vision_glance` 相同的多模态运行路径发送出去;它会创建一次真实 completion,并用于权威确认所选端点、Credential、模型、协议和上游账户确实能够处理图片。视觉模型检查卡会单独显示“已实测”“未测试”或“测试失败”Tag,避免把 `/models` 返回 HTTP 200 误认为图片调用成功。插件加载和普通 Settings 读取不会发送这两类请求。
|
|
@@ -411,7 +456,14 @@ pnpm pack --dry-run
|
|
|
411
456
|
|
|
412
457
|
## 项目状态与范围
|
|
413
458
|
|
|
414
|
-
版本 `0.1.
|
|
459
|
+
版本 `0.1.12` 是当前公开 npm 版本。产品重点是截图理解、视觉定位、OCR、素材提取、UI 还原和 DSH Web/Headless Profile 中的像素级验证。Web 上传、拖拽、摄像头/视频/音频/文档输入、交互式标注框编辑、GUI 自动点击、远程服务集群、模型路由、模型投票和跨会话视觉缓存不属于当前产品范围。
|
|
460
|
+
|
|
461
|
+
<details>
|
|
462
|
+
<summary><strong>维护者范围说明</strong></summary>
|
|
463
|
+
|
|
464
|
+
稳定的 `ctx.visionToolkit` 服务和能力发现 API 会等到独立插件成为真实消费方后再发布。这样可以让公开集成面建立在已验证的使用场景上,而不是未经验证的生态契约上。
|
|
465
|
+
|
|
466
|
+
</details>
|
|
415
467
|
|
|
416
468
|
## 社区与关于
|
|
417
469
|
|
|
Binary file
|
package/assets/hero.png
CHANGED
|
Binary file
|
package/lib/client.js
CHANGED
|
@@ -21,7 +21,7 @@ const DEFAULT_USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKi
|
|
|
21
21
|
// Keep these browser defaults aligned with src/defaults.ts without importing server-side config.
|
|
22
22
|
const BUILT_IN_FREE_VISION_BASE_URL = 'https://vision.anionex.me/v1';
|
|
23
23
|
const BUILT_IN_FREE_VISION_CREDENTIAL = 'ANIONEX_FREE_VISION';
|
|
24
|
-
const BUILT_IN_FREE_VISION_MODEL = '
|
|
24
|
+
const BUILT_IN_FREE_VISION_MODEL = 'gemma-4-26b-a4b-it';
|
|
25
25
|
const en = {
|
|
26
26
|
nav: 'Vision',
|
|
27
27
|
settingsTitle: 'Vision Toolkit',
|