前言¶
用 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、幻方无官方从属关系。