DeepSeek Harness(DSH)採用插件化架構。在處理非圖像文件(如文本、PDF、壓縮包或二進制數據)時,用戶通常需要將文件存入會話工作區,以便後續處理或通過模型調用交付。本插件爲 DSH Web 界面提供任意文件上傳能力,將文件落盤至會話專屬目錄,並通過工具讓模型將結果文件以可點擊的下載卡片形式交付給用戶。
核心功能¶
- 文件上傳與落盤:在輸入區左側提供上傳按鈕(默認配置下,當 DSH 版本 ≥ 0.1.5 時,該按鈕會自動讓位給內置上傳功能,避免功能重疊)。文件將落點於
<workspace>/uploads/<sessionId>/目錄,上傳區上方 Dock 會顯示已上傳文件列表。 - 模型感知與交付:上傳成功後,插件會自動注入消息,明確告知 LLM 當前會話的上傳目錄路徑及文件清單。模型可調用
share_session_file工具,將工作區內任意文件渲染爲瀏覽器可下載的卡片。 - 新 UI 下載入口增強:針對 DSH 0.1.5+ 的新版 UI(交付文件卡片與右側 Sidebar 文件瀏覽),插件提供了下載入口,解決了原版 UI 僅能預覽無法下載的問題。
- 安全與權限:內置 sessionId 白名單與文件名淨化機制,拒絕
..路徑與越界訪問。單文件大小上限默認爲 512 MiB。 - 遠程工作區支持:v0.5.0 版本起,插件支持 SSH 遠程工作區,讀寫操作通過官方文件接縫(
ctx.fs+ctx.subprocess)進行,不再依賴本地文件系統假設。
安裝與啓用¶
前置條件:確保 DSH 已安裝且目標 profile(默認 web)正在運行。
# 使用官方倉庫腳本安裝
bash install.sh
# 或手動執行官方命令
npm pack -y
dsh --profile web plugin add ./deepseek-ai-dsh-session-files-<ver>.tgz
安裝完成後需重啓 DSH 並刷新瀏覽器。
典型用法¶
- 驗證安裝:重啓並刷新頁面後,在輸入區應能看到上傳按鈕(若未讓位)。打開一個會話,點擊按鈕上傳任意文件,輸入區上方應出現文件芯片。
- 文件落盤覈對:在命令行中檢查文件是否存在於工作區。假設 DSH 地址爲
<dsh-address>:
# 檢查插件加載
curl -s http://<dsh-address>/plugins/@deepseek-ai/dsh-session-files/client.js | head -c 80
# 檢查配置
curl -s http://<dsh-address>/dsh-session-files/config
# 列出文件
curl -s 'http://<dsh-address>/dsh-session-files/list?sessionId=<某會話id>'
在本地或遠程工作區終端執行 `ls <workspace>/uploads/<sessionId>/` 驗證文件存在。
- 模型交付:上傳文件後,模型在對話中調用
share_session_file工具,即可在對話流中生成下載卡片。
適用場景與注意¶
- 權限與安全:插件以當前 DSH 進程的權限運行。請檢查源碼(MIT 許可證),確保符合你的安全策略。
- 版本差異:在 DSH 0.1.0-rc.x 版本上,插件行爲與 0.1.5+ 版本存在差異(如內置上傳工具不存在、UI 結構不同)。
- 已知問題修復:v0.4.1 修復了因函數作用域同名覆蓋導致的頁面底部出現空紅框提示的問題。
結語¶
該插件解決了 DSH 在處理通用文件上傳與交付時的短板,適合需要在會話中持久化文件或通過模型分發文件的智能體場景。更多細節與源碼請訪問 GitHub。