deepseek-files-panel:在 DSH Web 界面管理 DeepSeek Files API 上傳文件

前言

用 DeepSeek Harness(DSH)的 Web 界面跑智能體時,從 0.1.1-rc.2+ 起,官方適配器支持 DeepSeek Files API,圖片會經 Files API 上傳並複用 file_id。這些文件留在 DeepSeek 雲端,默認 7 天過期。

想確認賬號裏到底有哪些文件、把不用的清掉,在這之前要自己調 https://api.deepseek.com/files 的接口,或臨時寫腳本。deepseek-files-panel 把這些操作收進了 DSH Web 界面:右側一個可摺疊面板,列出、複製並清理通過 Files API 上傳的文件,密鑰全程不出宿主進程。

這是什麼

deepseek-files-panel 是 iskshadow195563 維護的 DSH Web 插件,採用 MIT 許可證。一句話定位:爲 DSH Web 界面提供右側可摺疊側邊欄,列出、複製並清理通過 DeepSeek Files API 上傳的圖片,密鑰零暴露。

它是標準的 DSH bundle 包(package.json 聲明 dsh.bundle.patch),可以直接用官方插件命令安裝。DSH 的理念是「一切皆插件」,這類包跟隨 profile 加載,隨 dsh web 一起生效。

注意它的管理範圍:只管通過 Files API 上傳的文件(圖片走 Files API 上傳時產生)。純文本對話、未經過 Files API 的內容不在此列。

核心功能

  • 列出全部已上傳文件:文件名(DSH 自動命名 dsh-<內容哈希>.<ext>)、file_id、大小、創建時間、過期時間(默認 7 天,由 DeepSeek 管理,過期前面板會顯示剩餘有效期)
  • 一鍵刷新:隨時與 DeepSeek 雲端同步
  • 複製 file_id:方便在請求或腳本中引用
  • 刪除文件:紅色按鈕加二次確認,3.5 秒內再點擊才真正刪除,防止誤刪
  • 主題自適應:跟隨 DSH 頁面主題變量(--dsw-*),深色、淺色皮膚均可
  • 無密鑰泄露:插件本體不含任何密鑰,密鑰由 DSH 憑據服務在宿主側解析

密鑰與工作原理

「無密鑰泄露」是它最值得說的設計。調用鏈是這樣的:瀏覽器頁面只訪問本機 dsh web 的路由;宿主側通過 DSH 的憑據服務解析 DEEPSEEK_API_KEY,再去請求 https://api.deepseek.com/files 完成列表與刪除。

也就是說,API Key 只存在於宿主進程內,頁面與 DeepSeek API 之間只經本機同源路由,密鑰永不進入瀏覽器。再配合刪除操作的二次確認,誤刪雲端文件的風險也被壓低了。

安裝與啓用

先確認兩個前置條件:

  • DeepSeek Harness dsh >= 0.1.0-rc.6,推薦 0.1.1-rc.2+(官方適配器支持 Files API 的版本);
  • 已在 DSH 憑據中配置 DEEPSEEK_API_KEY,用於調用 https://api.deepseek.com/files。

方式一:包形態安裝(推薦)

dsh plugin --profile web add github:iskshadow195563/DeepSeek_Harness_Files_Panel#v1.1.0

--profile 必填,換成你實際使用的 profile 名,web 是默認 Web 界面 profile。安裝完成後,插件加入 Profile 的 bundle 層,重啓 dsh web 後生效。

方式二:手動安裝

把 dsf-files-panel.mjs 放入 Web Profile 目錄 $DSH_HOME/profiles/web/(Windows 默認 %USERPROFILE%\.dsh\profiles\web\):

# macOS / Linux($DSH_HOME 未設置時默認爲 ~/.dsh)
cp dsf-files-panel.mjs "${DSH_HOME:-$HOME/.dsh}/profiles/web/"

# Windows PowerShell
Copy-Item dsf-files-panel.mjs "$env:USERPROFILE\.dsh\profiles\web\"

再編輯同目錄下的 cordis.patch.yml,合併 insert 補丁:

- insert:
    - id: deepseek-files-panel
      name: ./dsf-files-panel.mjs?v=1

若文件爲 [] 或不存在,直接粘貼上面整段;若已有其他 insert 條目,把 - id: deepseek-files-panel 一行追加進去。?v=1 用於破 ESM 緩存,升級插件時把數字加一。

手動安裝的補丁文件保存即熱生效,無需重啓;若 5 秒內沒生效,再重啓 dsh web。

驗證

刷新瀏覽器頁面(F5),右側中部會出現「📁 DeepSeek 文件」手柄,說明插件已加載。

卸載

包形態安裝的,一條命令:

dsh plugin --profile web remove deepseek-files-panel

手動安裝的,刪除 profile 目錄下的 dsf-files-panel.mjs,並從 cordis.patch.yml 的 insert 列表中去掉對應條目,刷新頁面。

無論哪種方式,卸載插件都不會刪除已上傳到 DeepSeek 雲端的文件。要清理,請在面板裏刪除,或調用 DELETE https://api.deepseek.com/files/{file_id}。

典型用法

以下操作都在 DSH Web 頁面完成,默認本機地址形如 http://127.0.0.1:3080:

1、展開/收起:點擊右側手柄「📁 DeepSeek 文件」展開面板;點面板右上「▶」收起。
2、刷新:點標題欄「↻」按鈕,重新拉取雲端列表。
3、複製 ID:點某個文件的「複製 ID」按鈕,會複製形如 file-api-... 的 file_id,可直接粘進請求或腳本。
4、刪除:點「刪除」,按鈕變紅色「確認刪除?」,3.5 秒內再點一次纔會真正從雲端刪除。
5、直達展開:瀏覽器地址欄加 ?dsf-open=1,例如 http://127.0.0.1:3080/?dsf-open=1,頁面加載後自動展開面板。

適用場景與注意

適合經常在 DSH Web 界面傳圖、需要在後續請求裏複用 file_id、或想定期清理雲端文件的用戶。不經過 Files API 的內容不會出現在面板裏,這不是缺陷,只是邊界。

幾點提醒:

  • 已上傳文件默認 7 天過期,過期時間由 DeepSeek 管理,過期前面板會顯示剩餘有效期。
  • 右側手柄沒出現時,先確認 .mjs 文件在 profile 目錄、補丁行已合併,重啓 dsh web 後 F5 刷新頁面。
  • 列表報「未配置 DEEPSEEK_API_KEY」時,到 DSH 設置/Models 頁配置該憑據。

最後是通用提醒:插件以當前 dsh 進程權限運行,安裝任何第三方插件前,建議先讀一遍源碼、確認許可證。本插件爲 MIT,倉庫內附 LICENSE。

結尾

deepseek-files-panel 解決的是一個具體的小問題:Files API 上傳的文件散在雲端,面板把它們收進 DSH Web 界面,列出、複製、刪除都在本地頁面完成,密鑰不出宿主進程。如果你在用 DSH 0.1.1-rc.2+ 並通過 Web 界面傳圖,值得一試。

  • GitHub 倉庫:https://github.com/iskshadow195563/DeepSeek_Harness_Files_Panel
  • 社區插件目錄頁:https://www.skillhub.cn/plugins/iskshadow195563/DeepSeek_Harness_Files_Panel

目錄頁來自社區維護的獨立站點,與 DeepSeek、幻方無官方從屬關係。

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

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

小夜