前言¶
在 DSH 的使用場景裏,一個常見限制是:部分模型是 text-only 的,不能直接處理圖片粘貼或圖片塊。dsh-sight 是面向這類模型的插件,目標是用一個 vision tool 和內置 VLM preset,把圖片內容轉成文本描述,讓 text-only 模型也能基於圖片回答問題。
下面介紹它的能力、安裝方式、典型用法,以及使用時的限制。
這是什麼¶
dsh-sight 是一個 DSH 插件,維護者爲 Fu3rte,許可證爲 MIT。
它解決的問題可以概括爲:給 text-only DeepSeek Harness (dsh) 模型增加“看圖並描述”的能力。插件通過包裝 prompt 准入流程,使圖片粘貼進入流程,並將圖片塊轉換爲路徑提示;隨後模型可以調用 vision tool,由插件把圖片交給配置的 VLM 後端,返回文本描述。
核心能力¶
內置 VLM presets¶
插件提供兩類內置 preset:
opencode-zen:OpenCode Zen,免費、無需 key。gemini-flash:Gemini Flash,free tier。
它也支持 custom 模式,可以接入任意 OpenAI-compatible endpoint。配置入口在 Web 設置頁中,選擇 preset 或 custom endpoint 後保存即可。
vision tool¶
vision tool 接受本地路徑或 http(s) URL。一次調用最多接受 10 個路徑或 URL,並在一個請求中返回逐條標註的描述。
返回形式類似:
--- Image 1 ---
<description>
--- Image 2 ---
<description>
粘貼圖片轉路徑提示¶
對於 text-only 模型,dsh 通常不會接受圖片粘貼。dsh-sight 通過包裝 apiProxy.sessions.prompt 實現 prompt-admission override:
- 圖片粘貼被接受;
- 圖片內容保存到插件目錄;
- 圖片塊在進入歷史前被轉換爲路徑提示。
例如,粘貼圖片後可能生成類似提示:
[Image #1 auto-saved to /tmp/dsh-sight/image1/xxxx.png]
這個路徑提示可供後續調用 vision tool 使用。
Web 設置頁¶
插件提供 Settings → Vision 頁面,可以完成以下操作:
- 選擇 preset 或 custom endpoint;
- 填寫 model、Base URL、API key;
- 查看 effective config,確認實際會使用哪個 backend;
- 保存後熱更新,無需重啓。
安裝與啓用¶
安裝命令:
dsh plugin --profile web add dsh-sight
安裝後打開:
Settings → Vision
在設置頁中選擇一個 preset,或填寫 custom endpoint,保存配置。
環境要求方面,package.json 的 engines 要求:
{
"engines": {
"node": ">=20"
}
}
典型用法¶
使用粘貼圖片¶
先粘貼一張圖片。插件會把圖片保存到插件目錄,並生成路徑提示,例如:
[Image #1 auto-saved to /tmp/dsh-sight/image1/xxxx.png]
隨後模型可以基於該路徑調用 vision tool。
直接調用 vision tool¶
也可以直接傳入本地路徑或 URL:
{
"paths": ["/tmp/dsh-sight/image1/xxxx.png"],
"question": "What does this chart show?"
}
如果一次需要分析多張圖片,最多可以傳 10 個路徑或 URL:
{
"paths": [
"/tmp/dsh-sight/image1/xxxx.png",
"https://example.com/chart-2.png"
],
"question": "Compare these two charts."
}
插件會按圖片逐條返回描述。
緩存與清理¶
粘貼圖片會保存到插件目錄,文檔示例中爲:
/tmp/dsh-sight/image{N}/
緩存策略包括:
- MD5 去重;
- LRU 限制,
maxImages默認爲200; - 啓動時清理超過 7 天的插件圖片目錄。
配置優先級¶
無 GUI 或腳本化配置時,配置優先級從高到低爲:
settings.yaml中的dsh-sight:段;DSH_SIGHT_*環境變量;~/.config/dsh-sight/config.json;- profile 的
cordis.patch.yml中的插件配置; - preset defaults。
相關環境變量包括:
DSH_SIGHT_PROVIDER
DSH_SIGHT_API_KEY
DSH_SIGHT_MODEL
DSH_SIGHT_BASE_URL
DSH_SIGHT_TIMEOUT_MS
DSH_SIGHT_MAX_TOKENS
DSH_SIGHT_MAX_IMAGES
DSH_SIGHT_CONFIG
安全與限制¶
插件對 API key 和輸入做了限制:
- API key 標記爲
secret,使用role('secret'); - API key 不隨 settings response 返回;
- UI 使用 write-only 字段,並報告是否已存儲;
- 本地圖片讀取上限爲 25 MiB;
- URL 抓取有 30 秒超時;
- URL 抓取上限爲 25 MiB;
- URL 抓取要求聲明
image/*content type; - 僅接受
png/jpeg/webp/gif/bmp圖片。
適用場景與注意¶
dsh-sight 適合以下場景:
- 正在使用 text-only DSH 模型,但需要處理圖片內容;
- 希望用免費或低成本 VLM preset 完成圖片描述;
- 需要把多張圖片批量轉成文本描述;
- 希望保留原有模型,不切換到視覺模型。
使用前需要注意:插件會運行在當前 dsh 進程的權限下,並且會讀取本地文件、抓取 URL、調用外部 VLM endpoint。安裝前建議先檢查源碼、許可證和 endpoint 配置。雖然 API key 被標記爲 secret,仍應避免在不信任的環境中使用。
鏈接¶
GitHub:
https://github.com/Fu3rte/dsh-sight