前言¶
DeepSeek Harness (DSH) 采用插件化架构。在构建基于文本的智能体时,让模型直接读取本地文件通常需要配置复杂的文件系统工具或依赖云端服务。dsh-file-upload-local 插件在会话空间内提供了一套完整的本地文件处理方案,通过 UI 交互完成上传,并供智能体调用。
这是什么¶
该插件由 lubenweimeiyoukaig 维护,采用 MIT 许可证。它为 DSH 提供了本地文件上传功能,支持通过回形针按钮和全屏拖拽上传,并将文件存储在会话隔离的目录中,供智能体通过 read_document 工具读取。
核心功能¶
- 上传交互:提供回形针按钮和全屏拖拽覆盖层。
- 附件栏:图片显示 64px 缩略图(点击查看),其他文件显示类型图标与文件名。每项均包含移除按钮。
- 读取工具:提供
read_document工具。支持分页读取文本文件(offset/limit),并使用 tesseract.js 对图片进行 OCR 识别。 - 存储机制:文件按会话隔离,存储在
.dsh-uploads/<sessionId>/。插件包含 TTL 扫描机制,防止目录无限增长。
安装与启用¶
- 执行以下命令安装插件:
dsh plugin --profile web add dsh-file-upload-local
- 安装完成后需要重启 dsh web。
典型用法¶
- 点击输入框左侧的回形针按钮,或直接将文件拖拽至窗口任意位置进行上传。
- 上传后的文件会显示在输入框上方,支持点击缩略图查看大图,或点击移除按钮(✕)删除不需要的附件。
- 发送消息后,智能体将使用
read_document <path>工具读取附件内容。对于文本文件,它会按行分页;对于图片,它会进行 OCR 识别。
配置说明¶
可以通过配置文件调整以下参数(默认值):
- id: dsh-file-upload-local
config:
uploadMaxBytes: 26214400 # 单个上传文件大小上限
uploadTtlMs: 604800000 # 文件过期时间(7天)
sweepIntervalMs: 3600000 # TTL 扫描间隔
maxConcurrentUploads: 4 # 最大并发上传数
maxFileBytes: 26214400 # read_document 读取单次上限
readLimit: 2000 # read_document 每页最大行数
ocrLangs: 'chi_sim+eng' # tesseract OCR 语言包
注意事项¶
- OCR 语言包:默认使用
chi_sim+eng,该语言包需在首次使用时通过网络下载,或提前预缓存。若无网络环境,OCR 功能将不可用。 - 图片读取路径:图片默认通过 OCR 路径(即
read_document)读取,这适用于纯文本模型。如果当前模型支持图片输入,可以直接使用read_image工具。 - 权限与源码:插件在当前 DSH 进程权限下运行,安装前建议检查源码与许可证。
结语¶
该插件简化了本地文件交互流程。更多配置细节和源码可参考:GitHub。