@floatingsk/dsh-vision 0.1.4 → 0.1.6
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.md +7 -2
- package/lib/core.js +1 -1
- package/lib/index.js +6 -1
- package/mcp/server.js +2 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,6 +18,7 @@ DeepSeek 的模型 API 目前不支持图像输入,`read_image` 因此无法
|
|
|
18
18
|
- 🧪 **零依赖单测**:核心逻辑用 Node 内置 `node:test` 覆盖(13 用例)
|
|
19
19
|
- 🌏 **多供应商 VLM**:内置百炼 / 硅基流动 / 智谱 / 火山方舟,OpenAI 兼容可加任意家
|
|
20
20
|
- 🔌 **双形态**:既是 dsh 插件,也是 MCP server(Claude Code 等 MCP 客户端直接用)
|
|
21
|
+
- 📋 **剪贴板贴图**:复制图片即贴给 agent(macOS 监听 + 前端提示条 + 多图支持),无需手动存文件
|
|
21
22
|
- 🪟 **Windows 支持**:附 PowerShell OCR 后端(Windows.Media.Ocr),VLM 通道跨平台
|
|
22
23
|
|
|
23
24
|
## 安装
|
|
@@ -103,15 +104,19 @@ Agent 会自动选择合适的工具(读文字走 OCR,看画面走 VLM)。
|
|
|
103
104
|
|
|
104
105
|
### 多供应商 VLM
|
|
105
106
|
|
|
106
|
-
|
|
107
|
+
内置五家供应商(默认 DeepSeek 原生视觉,最便宜),`describe_image` 可传 `provider` 参数选择(留空用 `defaultProvider`):
|
|
107
108
|
|
|
108
109
|
```yaml
|
|
109
110
|
- insert:
|
|
110
111
|
- id: dsh-vision
|
|
111
112
|
name: 'dsh-vision'
|
|
112
113
|
config:
|
|
113
|
-
defaultProvider: '
|
|
114
|
+
defaultProvider: 'deepseek' # 默认供应商
|
|
114
115
|
providers:
|
|
116
|
+
deepseek: # DeepSeek 原生视觉(V4-Flash-Vision-Exp,约0.001元/张)
|
|
117
|
+
baseUrl: 'https://api.deepseek.com'
|
|
118
|
+
model: 'deepseek-v4-flash-vision-exp'
|
|
119
|
+
apiKeyEnv: 'DEEPSEEK_API_KEY'
|
|
115
120
|
bailian: # 阿里云百炼
|
|
116
121
|
baseUrl: 'https://dashscope.aliyuncs.com/compatible-mode/v1'
|
|
117
122
|
model: 'qwen3-vl-flash' # 或 qwen3-vl-plus / qwen-vl-ocr
|
package/lib/core.js
CHANGED
|
@@ -6,7 +6,7 @@ import { homedir } from "node:os";
|
|
|
6
6
|
/** VLM 请求超时(毫秒) */
|
|
7
7
|
export const VLM_TIMEOUT_MS = 120_000;
|
|
8
8
|
/** VLM 输出 token 上限 */
|
|
9
|
-
export const VLM_MAX_TOKENS =
|
|
9
|
+
export const VLM_MAX_TOKENS = 2048;
|
|
10
10
|
/** 上传前图片压缩的最长边(像素) */
|
|
11
11
|
export const VLM_MAX_IMAGE_DIM = 2048;
|
|
12
12
|
/** 压缩 JPEG 质量(0-100) */
|
package/lib/index.js
CHANGED
|
@@ -38,9 +38,14 @@ export const Config = z.object({
|
|
|
38
38
|
/** 本地 OCR 可执行文件路径(默认指向插件 bin/vision-ocr) */
|
|
39
39
|
ocrBin: z.string().default(""),
|
|
40
40
|
/** 默认 VLM 供应商 id(对应 providers 的键名) */
|
|
41
|
-
defaultProvider: z.string().default("
|
|
41
|
+
defaultProvider: z.string().default("deepseek"),
|
|
42
42
|
/** 多供应商 VLM 配置:每个供应商为 OpenAI 兼容端点 */
|
|
43
43
|
providers: z.object({
|
|
44
|
+
deepseek: providerSchema.default({
|
|
45
|
+
baseUrl: "https://api.deepseek.com",
|
|
46
|
+
model: "deepseek-v4-flash-vision-exp",
|
|
47
|
+
apiKeyEnv: "DEEPSEEK_API_KEY",
|
|
48
|
+
}),
|
|
44
49
|
bailian: providerSchema.default({
|
|
45
50
|
baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
46
51
|
model: "qwen3-vl-flash",
|
package/mcp/server.js
CHANGED
|
@@ -34,12 +34,13 @@ const ocrBin = join(__dirname, "..", "bin", "vision-ocr");
|
|
|
34
34
|
|
|
35
35
|
// ── 内置供应商(与插件 Config 默认值一致) ──────────────────────────────────
|
|
36
36
|
const PROVIDERS = {
|
|
37
|
+
deepseek: { baseUrl: "https://api.deepseek.com", model: "deepseek-v4-flash-vision-exp", apiKeyEnv: "DEEPSEEK_API_KEY" },
|
|
37
38
|
bailian: { baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1", model: "qwen3-vl-flash", apiKeyEnv: "DASHSCOPE_API_KEY" },
|
|
38
39
|
siliconflow: { baseUrl: "https://api.siliconflow.cn/v1", model: "Qwen/Qwen2.5-VL-7B-Instruct", apiKeyEnv: "SILICONFLOW_API_KEY" },
|
|
39
40
|
zhipu: { baseUrl: "https://open.bigmodel.cn/api/paas/v4", model: "glm-4v-flash", apiKeyEnv: "ZHIPU_API_KEY" },
|
|
40
41
|
volcengine: { baseUrl: "https://ark.cn-beijing.volces.com/api/v3", model: "doubao-seed-1.6-vision", apiKeyEnv: "ARK_API_KEY" },
|
|
41
42
|
};
|
|
42
|
-
const DEFAULT_PROVIDER = "
|
|
43
|
+
const DEFAULT_PROVIDER = "deepseek";
|
|
43
44
|
|
|
44
45
|
// ── 工具实现 ─────────────────────────────────────────────────────────────────
|
|
45
46
|
|
package/package.json
CHANGED