GooDAnDReaDY/dsh-vision-bridge ↗★ 2
@goodandready/dsh-vision-bridge
提供多模态视觉处理、PDF及图表分析工具 适合需要处理复杂图片、PDF、公式和图表的多模态任务。
安裝
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:GooDAnDReaDY/dsh-vision-bridge說明文件
閱讀完整 README ↗⚙️ Configuration (settings.yaml)
dsh-vision-bridge:
# Operation mode: 'hybrid' | 'llm' | 'tools'
mode: hybrid
# Auto-detect vision model or specify provider/model explicitly
visionProvider: ""
visionModel: ""
# Allow vision models to receive images natively without rewriting ('prefer' | 'never' | 'always')
nativePassthrough: prefer
hideRedundantTools: true # hide bridge tools when the chat model already sees images
attachMaxItems: 8 # pages/frames/files one attach call may publish
# Enable LRU description cache
cacheEnabled: true
cacheMaxEntries: 200
# Request timeout in milliseconds
timeoutMs: 120000
# Multi-channel routing configuration
channels: []
channelFallback: sequential # 'sequential' | 'parallel-race'
Parameter Reference
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | "hybrid" | Processing mode (hybrid, llm, tools). |
visionProvider | string | "" | ID of the vision provider (empty = auto-detect). |
visionModel | string | "" | ID of the vision model (empty = auto-detect). |
nativePassthrough | string | "prefer" | Behavior for native vision models (prefer, never, always). |
hideRedundantTools | boolean | true | When the chat model supports images natively, hide the compensation tools from that agent and keep only the extra instruments. |
attachMaxItems | number | 8 | Maximum images one vision_attach_* call publishes (PDF pages, video frames, files). Hard ceiling 32. |
cacheEnabled | boolean | true | Enables LRU caching for descriptions. |
cacheMaxEntries | number | 200 | Maximum number of cached items in memory. |
timeoutMs | number | 120000 | Execution timeout in milliseconds. |
channelFallback | string | "sequential" | Channel routing (sequential, parallel-race); ordering via channelOrderMode. |
15. 🛡️ Enterprise Security & Settings Governance (v0.5.27)
- Masked Secrets:
GET /channelsautomatically masks sensitive provider API keys (sk-p...7890or********) and reportshasApiKey: trueto prevent secret leakage in browser DevTools/XHR.POST /channelspreserves existing keys when a mask is submitted. - CSRF & Origin Guard: All mutating and cost-incurring endpoints (
/config,/channels,/upload-pdf,/test,/bench,/batch,DELETE /journal,DELETE /cache, and/doctor?probe=1) validatesec-fetch-site !== 'cross-site'viaisTrustedSettingsRequest, rejecting cross-origin attacks with403 Forbidden. The defaultGET /doctorreport is static (no channel probes). - SSRF fetch policy: model-supplied image URLs are fetched only through
safeFetch— non-http(s) schemes, localhost names and private/loopback/link-local hosts (incl. IPv4-mapped IPv6 and NAT64) are refused on every redirect hop; response bodies are capped. UseallowedUrlHoststo explicitly re-allow an internal endpoint. - apiKeyRef: channels may reference a credential-service entry or environment variable by NAME instead of storing a plaintext
apiKeyin settings; keys resolve at call time.GET /channelskeeps masking values; key preservation on save matches channels by identity, not position. - Privacy & honesty:
maskPII,stripEXIF,auditLogandconsensusEnabledsettings are wired end-to-end; the previously decorative face-blur / NSFW / tiling toggles and no-op presets were removed. - Native settingsScope Integration: Settings UI binds directly to
ctx.settingsScope(namespace: 'dsh-vision-bridge'), supporting reactive snapshot listeners and kernel state synchronization.