dsh-plugin-saber:用自然語言驅動本機 Saber-Translator

前言

在 DSH(DeepSeek Harness)裏做智能體時,常見做法是自己在對話裏拼 HTTP 請求、記端口和路徑,再去調本機上的漫畫翻譯後端。Saber-Translator 本身提供 REST API,但「查書架、排翻譯、看任務進度、取譯圖、改術語表」仍需要你對照文檔逐項調用。下面介紹社區插件 dsh-plugin-saber(倉庫 Luca-42/saber-dsh-plugin),由維護者 Luca-42 發佈:它把 Saber 的 HTTP 能力註冊成一組 DSH 工具,讓模型在自然語言意圖下完成讀寫,並在結果裏說明實際執行了什麼。

這是什麼

dsh-plugin-saber 是面向 web profile 的 DSH 插件,npm 包名爲 dsh-plugin-saber(當前資料中的版本爲 0.2.0,許可證 MIT)。定位是:通過本機 Saber-Translator 的 HTTP API,驅動漫畫翻譯全流程,而不是在 DSH 內嵌翻譯模型。插件對 Saber 3.5+(v2 後端) 提供完整鏈路;對 3.3.x(legacy) 則只保證只讀查詢,任務類工具會明確說明該版本沒有任務 API。

核心功能

插件按工具拆分能力。寫操作在符合請求時會直接執行,不逐次確認;不支持的能力返回中文說明,而不是拋出 404 堆棧。

工具 作用 Saber 3.5+ Saber 3.3.x
saber_status 版本線、存儲版本、端口、書架、Worker/隊列狀態 ✅ ✅
saber_books 書架列表(search / limit) ✅ ✅
saber_book 書詳情與章節列表 ✅ ✅
saber_pages 章節頁面列表(渲染狀態、譯圖有無) ✅ ✅(需 bookId)
saber_translate 排翻譯任務(單章 / 多章 / 整本;standard/hq/proofread/remove_text) ✅ ❌
saber_jobs 任務隊列或歷史列表 ✅ ❌
saber_job 單個任務詳情(進度、失敗項、產物) ✅ ❌
saber_job_control 暫停 / 恢復 / 取消 / 重試 / 隊列暫停 ✅ ❌
saber_page_image 取原圖 / 去字圖 / 譯圖,落到臨時目錄 ✅ ❌
saber_terms 讀/寫術語表與禁翻表 ✅ ❌
saber_backend 啓動 / 停止 / 狀態(僅管理插件自己啓動的進程) ✅ ✅

API 版本由插件自動探測:先訪問 /api/v2/health,再訪問 /api/server-info。適配層 adapters/v2.js 與 adapters/legacy.js 隔離版本差異,工具層不感知具體 API 版本。

安裝與啓用

推薦使用 npm 已發佈包(資料中稱安裝包約 23 KB,宿主零運行時依賴)。官方安裝命令如下:

dsh plugin --profile web add dsh-plugin-saber

安裝後需重啓 dsh,工具纔會註冊生效。package.json 要求 Node.js >= 22;與 DSH 的兼容記錄在包的 dsh.compatibility 字段(如 0.2.0-rc.2、0.2.1-rc.2、0.2.1-rc.3 標爲 compatible)。

從插件市場安裝

在社區目錄 SkillHub 插件頁 對應倉庫外,README 還給出了獨立索引源方式:在 DSH 插件市場裏 發現 → 添加索引源,粘貼:

https://luca-42.github.io/saber-dsh-plugin/index.json

然後在市場中找到「Saber 漫畫翻譯」並安裝。

配置

配置文件路徑:<DSH_HOME>/saber-plugin.config.json(不存在時使用默認值):

{
  "baseUrl": "http://127.0.0.1:5000",
  "installPath": "D:/play/Saber-Translator-3.5.15-gpu",
  "dataDir": "",
  "autoStart": false,
  "apiFlavor": "auto",
  "requestTimeoutMs": 15000
}

環境變量可覆蓋:SABER_BASE_URL、SABER_INSTALL_PATH、SABER_DATA_DIR、SABER_PLUGIN_CONFIG。

當 autoStart 爲 true 時,若工具發現後端未運行,會嘗試在 installPath 下拉起 Saber-Translator.exe --role launcher ...,並等待 /api/v2/health。插件只停止自己啓動的進程(記錄 PID),不會影響你手動打開的其他 Saber 實例。

典型用法

安裝並配置 baseUrl(或指向本機 Saber 實際監聽地址)後,可在 DSH 對話中讓智能體調用上述工具,例如:

  1. 用 saber_status 確認後端版本、端口與隊列狀態。
  2. 用 saber_books / saber_book / saber_pages 逐級定位要處理的章節與頁面。
  3. 在 3.5+ 上用 saber_translate 提交翻譯模式(standard、hq、proofread、remove_text 等),用 saber_jobs / saber_job 查看進度,必要時 saber_job_control 暫停或重試。
  4. 用 saber_page_image 將原圖或譯圖落到臨時目錄;用 saber_terms 維護術語表與禁翻表。

倉庫 README 中的自測命令可用於驗證插件與 API 契約(非 DSH 運行時必需):

# 打真實後端(只讀工具;寫工具不會執行)
node test/harness.mjs

# 用進程內 mock 的 /api/v2 驗證完整 P1 鏈路
node test/mock-v2.mjs

適用場景與注意

適合誰:已在本地部署 Saber-Translator,希望在 DSH web profile 裏用自然語言完成「查書 → 排任務 → 跟進度 → 取圖 → 改術語表」,而不想手寫每一輪 HTTP 的開發者。

權限與安全:插件以當前 dsh 進程權限運行,寫工具會直接改動 Saber 後端狀態與術語表;安裝前請閱讀 GitHub 源碼 與 MIT 許可證,確認 baseUrl 指向的是你自己可控的本機服務。

生態說明:DSH 社區插件目錄(如 SkillHub)是獨立站點,與 DeepSeek / 幻方無官方從屬關係;本插件通過 npm 或上述索引源分發,並非「官方應用商店」內置應用。

結尾

dsh-plugin-saber 把 Saber-Translator 的 v2 完整鏈路與 legacy 只讀能力封裝成 DSH 工具,並支持可選的自動拉起本機 Saber 進程。若你需要在智能體工作流裏統一管理漫畫翻譯任務,可按 README 安裝命令啓用,並用 saber-plugin.config.json 對齊本機路徑與端口。

  • 目錄頁:https://www.skillhub.cn/plugins/Luca-42/saber-dsh-plugin
  • GitHub:https://github.com/Luca-42/saber-dsh-plugin
  • npm:https://www.npmjs.com/package/dsh-plugin-saber
羽毛球分组比赛记分
小程序二维码

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

小夜