前言¶
DSH(DeepSeek Harness)在智能體開發中,文件管理往往依賴外部或手動維護。seeingrain/dsh-upload-file 插件將文件系統直接作爲註冊表,爲每個會話提供隔離的文件存儲空間。它通過 Paperclip 庫實現上傳、縮略圖生成與重下功能,適合需要頻繁引用文件或運行在獨立服務器上的場景。
它是什麼¶
這是一個名爲 seeingrain/dsh-upload-file 的 DSH 插件,由 seeingrain 維護,採用 MIT 許可證。
- 核心定位:DSH 插件:帶 Paperclip 庫、會話隔離、縮略圖和可重新下載功能的文件上傳。
- 解決的問題:解決 DSH 聊天中無法直接上傳文件、文件路徑難以引用以及會話間文件混雜的問題。
核心功能¶
- 會話隔離:文件存儲在
<會話工作區>/.uploaded_files/<sessionId>/,工作區與會話級別雙重隔離,互不干擾。 - 多文件上傳:支持一次選擇多個文件上傳,提供進度條顯示。
- 文件列表與縮略圖:列表展示文件名、大小,圖片/視頻/PDF 生成縮略圖或類型圖標,最新上傳置頂。
- @ 提及:在輸入框中使用
@UPLOAD:filename格式提及文件,模型可直接使用。 - 右鍵菜單:提供 6 個操作:@提及、打開(默認程序或側欄)、複製路徑/名、重新下載、刪除。
- 安全機制:全流程 SHA-256 校驗、目錄遍歷防護、嚴格校驗
sessionId。 - 縮略圖服務:服務端懶生成縮略圖,支持圖片/視頻/PDF,並使用不可變頭部緩存。
- 自動命名:同會話重傳同名文件自動添加
_1、_2等後綴。
安裝與啓用¶
通過 CLI 安裝插件:
dsh plugin --profile web add github:seeingrain/dsh-upload-file
安裝後,host 端需要重啓,client 端刷新頁面即可加載。
典型用法¶
- 上傳文件:點擊輸入框工具欄的
📎按鈕,選擇多個文件上傳到當前會話。 - 引用文件:在輸入框中輸入
@UPLOAD:filename,將文件提供給模型使用。 - 文件操作:右鍵點擊文件列表中的條目,選擇打開、複製路徑或刪除文件。
- 服務器存儲:文件直接上傳至 DSH 服務器,用於會話內的長期參考。
適用場景與注意¶
- 依賴系統工具:生成縮略圖需要系統安裝
ffmpeg(處理圖片/視頻)和pdftoppm(處理 PDF)。缺失工具時,文件會回落爲原圖或類型徽章。 - 文件類型支持:目前支持圖片、視頻、PDF。Office 文檔(docx/xlsx/pptx)預留接口,當前僅顯示類型徽章。SVG 文件不生成縮略圖。
- 不可逆操作:刪除文件爲永久刪除,無回收站機制。
- 緩存策略:縮略圖生成一次並緩存,帶有不可變頭部。
短結尾¶
該插件通過文件系統即註冊表的模式,爲 DSH 提供了結構化的文件管理能力。如果你需要將 DSH 作爲服務器運行,並希望模型能夠直接訪問上傳的文件,這是一個實用的選擇。
- GitHub:https://github.com/seeingrain/dsh-upload-file
- 目錄頁:https://www.skillhub.cn/plugins/seeingrain/dsh-upload-file