dsh-chatfile:在 DSH WebUI 中拖拽上傳任意文件

前言

在 DeepSeek Harness WebUI 中,Agent 對圖片的處理流程較爲成熟,但開發者常需要將代碼片段、配置文件或文檔傳遞給 Agent 進行分析。現有方案中,動態插件依賴於會話狀態,進程重啓後即失效;而內置圖片上傳功能無法覆蓋普通文件。dsh-chatfile 插件解決了這一痛點,它允許將任意文件持久化保存到會話工作區的 uploads/ 目錄,並在輸入框自動插入路徑引用,供 Agent 直接讀取。

插件簡介

dsh-chatfile 是一個 DeepSeek Harness WebUI 插件。由 sooya7 維護,採用 MIT 許可證。核心功能是在聊天界面提供文件上傳能力,支持拖拽與按鈕選擇,上傳後的文件通過隨機 token 路由提供安全的下載訪問。

核心功能

該插件包含以下具體能力:

  • 拖拽與選擇上傳:支持將任意文件拖拽至頁面任意位置鬆開,或在輸入框工具行點擊「📎」按鈕進行多選。
  • 上傳狀態反饋:輸入框上方會顯示每個文件的上傳進度(上傳中/成功/失敗)。成功後可進行下載或移除操作。
  • 自動路徑引用:上傳完成後,輸入框內會自動追加類似 [上傳文件] uploads/xxx.pdf(名稱,大小) 的文本。Agent 接收到該指令後,可使用文件工具讀取該路徑下的內容。
  • 圖片兼容性:純圖片的拖拽操作仍走 DSH 內置的圖片處理流程,互不干擾。
  • 安全下載機制:文件下載地址由不可猜測的隨機 token 生成,且文件名、大小、類型均在 Host 端進行校驗,防止路徑穿越等風險。

安裝與啓用

安裝完成後需重啓 Web 服務以使組合生效。

本地安裝:

dsh plugin --profile web add file:/絕對路徑/dsh-chatfile

從 GitHub 安裝:

dsh plugin --profile web add "git+https://github.com/sooya7/dsh-chatfile.git"

重啓服務:
安裝命令執行後,需重啓 dsh web 服務。

dsh web restart
# 或
sudo systemctl restart dsh-web.service

重啓後插件持久可用,刷新頁面或重啓進程均不丟失。

典型用法

安裝並重啓服務後,即可在聊天界面使用該插件:

  1. 拖拽上傳:將本地任意文件拖拽至聊天框區域鬆開,文件即會保存到當前會話工作區的 uploads/ 目錄。
  2. 按鈕上傳:點擊輸入框工具行新增的「📎」按鈕,在文件選擇器中選擇多個文件上傳。

注意事項

  • 單文件限制:Host 端校驗單文件大小上限爲 50MB。
  • 源碼審查:插件以當前 dsh 進程權限運行,安裝前建議查看源碼與許可證(MIT)。
  • 持久化:該插件爲持久化插件,與僅存在於會話中的動態插件不同。

結語

dsh-chatfile 通過簡單的拖拽操作,爲 DSH WebUI 增加了通用文件上傳能力,使 Agent 能夠直接讀取本地文件。更多實現細節與源碼可參考項目地址。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜