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
羽毛球分组比赛记分
小程序二维码

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

小夜