ysr666/dsh-vision-router
ysr666/dsh-vision-router为纯文本 Agent 提供视觉能力:内置免 Key 视觉链 + 像素级视觉工具(看图问答、定位、裁剪、像素对比、取色、OCR、矢量化、抠图、截图);粘贴图片即可用。
为纯文本模型添加 PaddleOCR 视觉能力,支持 Agnes、DeepSeek、MiniMax、GLM、Mimo,支持本地文件与 URL。每日 2 万页免费额度;需先申请 PaddleOCR API Token(免费,审核约 1-3 个工作日)。
DSH 插件:为纯文本模型添加 PaddleOCR 视觉识别能力
许多 LLM 提供商的文本模型不支持图片输入,导致用户在 DSH 中无法使用图片功能:
本插件通过 PaddleOCR VL 1.6 为纯文本模型添加视觉能力:
用户上传图片(本地或 URL)
↓
插件检测模型类型
↓
纯文本模型 → 调用 PaddleOCR → OCR 识别
多模态模型 → 跳过(已有视觉能力)
↓
返回文字内容
↓
模型接收文本,回答问题
免费额度:每天 20,000 页次
git clone https://github.com/tenglongbohai/dsh-paddle-ocr.git
cd dsh-paddle-ocr
pnpm install
# 方式 1:环境变量(推荐)
export PADDLE_OCR_TOKEN="your_token_here"
# 方式 2:修改代码
# 编辑 lib/index.js,替换 TOKEN 常量
const TOKEN = process.env.PADDLE_OCR_TOKEN || "your_token_here";
cd /root/.dsh/profiles/web
pnpm add file:/path/to/dsh-paddle-ocr
编辑 /root/.dsh/profiles/web/package.json,添加:
{
"dsh": {
"profile": {
"bundles": [
// ... 其他插件
"dsh-paddle-ocr"
]
},
"dependencies": {
// ... 其他依赖
"dsh-paddle-ocr": "file:/path/to/dsh-paddle-ocr"
}
}
}
systemctl restart dsh
// AI 会自动调用,或手动调用
await tools.paddle_ocr({
image_path: "/path/to/local/image.png", // 本地文件
// 或
image_path: "https://example.com/image.jpg", // 网络图片
prompt: "提取所有文字",
return_bbox: true
});
模型名 (PaddleOCR) 变体{
"status": "success",
"result": "识别的文字内容...",
"blocks": [
{
"text": "文字内容",
"bbox": [x1, y1, x2, y2],
"type": "text|paragraph_title|inline_formula"
}
],
"model": "PaddleOCR-VL-1.6"
}
| 提供商 | 模型 | 说明 |
|---|---|---|
| Agnes | 2.5-Flash | 免费文本模型 |
| DeepSeek | V4, V4-Pro, V4-Flash | 官方声明为纯文本 |
| MiniMax | M2.7, M2.5, M2.1, M2 | 纯文本版本 |
| GLM | GLM-5.x, GLM-4.x(不带V) | 纯文本版本 |
| Mimo | v2.5-pro | 纯文本版本 |
| 提供商 | 模型 | 原因 |
|---|---|---|
| MiniMax | M3 | 已是多模态模型 |
| GLM | GLM-4V, GLM-5V 系列 | 名称带 V,已是多模态 |
| Mimo | v2.5 | 已是多模态模型 |
| DeepSeek | V4.5(如有) | 如支持图片则跳过 |
根据智谱 AI 官方文档,GLM 模型命名规则非常清晰:
| 规则 | 类型 | 示例 | 插件行为 |
|---|---|---|---|
| 不带 V | 纯文本 | GLM-4-Flash, GLM-5.3 | ✅ 创建视觉变体 |
| 带 V | 多模态 | GLM-4V-Flash, GLM-5V-Turbo | ❌ 自动跳过 |
一眼区分法:
V → 视觉模型(多模态)V → 文本模型(纯文本)参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| image_path | string | ✅ | 本地文件路径或网络 URL |
| prompt | string | ❌ | 识别提示词 |
| return_bbox | boolean | ❌ | 是否返回坐标,默认 true |
支持的本地文件格式:
错误处理:
error: "文件不存在"error: "API 错误信息"error: "OCR 超时"error: "API 额度不足"dsh-paddle-ocr/
├── lib/
│ └── index.js # 插件主代码
├── package.json # 包配置
├── cordis.patch.yml # DSH 插件配置
├── README.md # 使用文档
└── .gitignore # Git 忽略配置
# 语法检查
node --check lib/index.js
# 运行测试
pnpm test
在 lib/index.js 的 providers 数组中添加:
const providers = [
'agnes-ai',
'deepseek',
'minimax',
'glm',
'mimo',
'your-provider' // 添加新的提供商
];
本插件为纯文本 LLM 添加 PaddleOCR 视觉能力,让 DSH 用户能够:
技术栈:
MIT License