편집자 노트

PDF 工具箱

DeepSeek Harness PDF

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

dsh-pdf

English | 中文

DeepSeek Harness PDF 工具箱:从 PDF 文件中提取文本、元数据与页码范围。本地解析(基于 PDF.js / pdfjs-dist)——无需 API key、无需网络。

功能特性

  • pdf_read 工具:逐页提取文本,带页码标记。
  • 页码选择:"1-3,5""all"——大文档可分块读取。
  • 文档元数据(标题)与总页数。
  • 内置边界控制:文件字节上限、单次解析页数上限、单次调用字符上限——截断行为明确,并提示模型如何继续。
  • 通过 harness 文件系统接缝(ctx.fs)读取,部署的权限与沙箱策略自动生效。

安装

从 GitHub 安装

dsh plugin --profile web add "github:sunshine-lang/dsh-pdf"

然后重启 dsh --profile weblib/ 已预构建并提交,安装无需构建权限。

从 npm 安装

dsh plugin --profile web add dsh-pdf

从本地源码安装(开发)

dsh plugin --profile web add ./dsh-pdf

注意:pnpm 对 link: 方式的本地依赖不会自动安装其依赖,需要手动添加到 profile(通过 registry 或 GitHub 安装则会自动处理):

dsh plugin --profile web add @deepseek-ai/dsh-tools @deepseek-ai/cordis @deepseek-ai/schemastery pdfjs-dist

使用方法

启动 Web UI 后,向模型提问,例如:

读取 paper.pdf 的前 3 页并总结。

contract.pdf 第 7 页写了什么?

模型会调用 pdf_read:参数 path(必填),可选 pages"1-3,5""all")。输出达到上限时会在页边界截断并给出提示,模型会用页码范围继续读取。

配置

可通过 cordis.patch.yml 或 profile 的 patch 层覆盖任意配置项:

- patch:
    - id: dsh-pdf
      config:
        maxFileBytes: 52428800
        maxPages: 200
        maxCharsPerCall: 20000
配置项默认值含义
maxFileBytes20971520(20 MiB)整个 PDF 的字节上限(含);超过直接报错
maxPages500单次调用最多解析的页数;超出则截断并提示
maxCharsPerCall12000单次调用返回的最大字符数;结果在页边界截断

配置无效时插件加载会直接失败,并给出可操作的错误信息。

开发

npm install        # 或 pnpm install
npm run build      # tsc → lib/

在 DeepSeek Harness 仓库内构建(类型解析指向工作区源码)时,改用 tsconfig.local.jsontsc -p tsconfig.local.json

测试:tests/fixtures/sample.pdfmake-test-pdf.mjs 生成(无依赖);w3-dummy.pdf 为 W3C 官方测试文件。集成测试:在 harness 仓库内运行 node --import tsx/esm test-integration.ts

同作者更多插件

该作者的全部 DeepSeek Harness 插件(统一入口):dsh-plugins

许可证

MIT。

REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 MIT 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.