前言¶
在 DSH 裏查手冊、對照 PDF 頁碼時,常見做法是讓模型描述路徑、或依賴宿主自帶的文件預覽。前者容易猜錯頁(印刷頁碼與 PDF 頁序不一致),後者不一定每個 profile 都能穩定打開本地 PDF。下面介紹社區插件 dsh-pdf-jump(維護者 taoziliyouchong):裝一次註冊兩個工具,默認在側欄用本地渲染看圖跳頁,需要文字層時再走原生預覽。
這是什麼¶
dsh-pdf-jump 屬於 DSH 插件目錄中的「客戶端」類插件。當前 package 版本爲 0.1.2,許可證 MIT,源碼在 GitHub。
它解決的是:在對話裏用自然語言或固定命令打開本地 PDF,並按 PDF 頁序(1 = 文件第一頁)跳轉或整本滾動瀏覽,結果以側欄可點的文檔行呈現。頁碼不從頁腳推斷印刷編號,避免手冊裏「全書頁碼」和「章-頁」混用導致的錯位。
核心功能¶
一個插件包裝兩個獨立工具,另註冊 /pdf 命令:
| 能力 | 說明 |
|---|---|
pdf-view(默認) |
本地把頁面渲染成圖:工具條輸入頁碼跳轉、方向鍵翻頁;整本瀏覽時先鋪縮略圖,滾到哪頁換高清,頁頂也可輸入頁碼。不依賴原生預覽,任何 profile 都能用。 |
pdf-open |
走 DSH 原生 PDF 預覽(客戶端直接渲染,不生成圖片、不起本地 HTTP、有文字層)。適合明確要「最快、能選中文字」時。 |
/pdf |
固定走 pdf-view 單頁模式,不經過模型判斷,例如 /pdf 繁易手冊 300。 |
提取文字或讀元數據不在本插件範圍內;README 建議另裝 dsh-pdf,使用 pdf_info / pdf_extract_text。
pdf-view 機制要點(來自官方 README):
- 本地 HTTP 只綁
127.0.0.1,端口從 8731 起向上試,可複用同機其他 DSH 進程已起的服務;插件加載即啓動,默認idleMinutes: 0表示整個 DSH 會話常駐。 - 使用
pdfjs-dist+@napi-rs/canvas渲成 PNG 緩存;調用時先暖當前頁及前後各 2 頁,打開後以當前頁爲中心向兩側各暖 6 頁(可通過配置調整)。 - 整本瀏覽先用 0.8 倍 JPEG 縮略圖,滾到可見頁再換全尺寸 PNG;每頁錨點如
#p40,整本頁頂輸入頁碼即滾到該頁。 - 不上傳 PDF 內容。
安裝與啓用¶
要求:DSH 帶宿主 tools 與 systemPrompt 服務;Node 22.19+ 或 24+。兼容說明:DSH 0.2.1-rc.5 實測通過;0.3 起不保證(見 package.json 的 engines.dsh)。
已發佈到 npm 時:
dsh plugin --profile web add dsh-pdf-jump
尚未發佈時從 GitHub 安裝:
dsh plugin --profile web add github:taoziliyouchong/dsh-pdf-jump
安裝後重啓 DSH。若使用其他 profile,將命令中的 web 換成你的 profile 名。
插件以當前 DSH 進程權限訪問本地文件;安裝前建議瀏覽倉庫源碼與 LICENSE,確認路徑與許可符合你的環境。
典型用法¶
路徑支持絕對路徑、相對路徑(相對會話工作目錄)或文件名片段(如 NB系列 安裝手冊)。兩個工具都會返回一條可點的文檔行:pdf-open 指向文件本身;pdf-view 指向本地查看頁。
| 你的意圖 | 選用 |
|---|---|
| 打開 PDF、跳到第 N 頁、整本翻 | pdf-view(page = PDF 頁序) |
| 原生預覽、不生成圖片、可選中文字 | pdf-open 或說明「原生預覽打開」 |
| 整本內跳到某頁 | 整本頁頂部頁碼框,或 URL 帶 #p40 |
| 不讓模型判斷、直接開 | /pdf <文件或片段> [頁碼](無頁碼時從第 1 頁) |
可選配置寫在 profile 的 patch 裏,隻影響 pdf-view:
- id: dsh-pdf-jump
name: dsh-pdf-jump
config:
port: 8731
scale: 2
idleMinutes: 0
prefetch: true
prefetchWindow: 6
roots:
- D:/manuals
roots 爲文件名片段搜索的額外根目錄;也可用環境變量 PDF_JUMP_ROOTS(Windows 用 ; 分隔,其他平臺用 :)。
適用場景與注意¶
適合:在 DSH 側欄對照安裝手冊、技術 PDF,按 PDF 頁序快速跳頁或整本瀏覽;Web 等 profile 下無法用原生預覽時,用 pdf-view 仍可在側欄看圖。
限制與排查(摘自 README):
pdf-view輸出爲圖片,不能選文字、不能全文搜索;要文字用dsh-pdf。pdf-open依賴 DSH 自帶原生 PDF 預覽;沒有該能力的環境請用默認pdf-view。- 側欄空白或「已阻止」:側欄瀏覽器可能攔截迴環地址。將
127.0.0.1:8731(及 8732–8750 中實際端口)加入側欄「允許訪問的本機地址」,或將「網頁鏈接默認打開方式」改爲「默認瀏覽器」。 - 舊對話鏈接「拒絕連接」:端口被佔導致換端口,或 PDF 已移動/刪除;重新調用工具取新地址即可。
渲染依賴 @napi-rs/canvas 預編譯二進制,覆蓋 Windows / macOS / Linux 的 x64 與 arm64。
結尾¶
dsh-pdf-jump 把「本地 PDF + 按頁序跳頁 + 側欄瀏覽」收成一套可複用的 DSH 工具:默認渲染看圖、可選原生預覽,並用 /pdf 繞過模型直接開檔。插件信息可在社區目錄 skillhub.cn/plugins/taoziliyouchong/dsh-pdf-jump 查看;安裝命令、配置與故障說明以 GitHub 倉庫 README 爲準。DSH 插件生態由社區目錄與倉庫維護,與 DeepSeek / 幻方無官方從屬關係。