DeepSeek Harness 插件

dsh-translator-zhinian5

Floating AI translation window for the DeepSeek Harness Web GUI: multilingual translation through the DSH host, with provider balance and daily-usage display. Standalone plugin package.(英文原文)

跳到安装方式

来源信息

GitHub 仓库
zhinian558/dsh-translator
最近更新
2026年8月19日
分类
模型与服务商
GitHub stars
0
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/zhinian558/dsh-translator
插件名:dsh-translator-zhinian5
作者:zhinian558

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

@zhinian558/dsh-translator

English · 简体中文

!License: MIT !Platform: DeepSeek Harness ![Type: DSH plugin (Web GUI)](<https://img.shields.io/badge/type-dsh%20plugin%20(Web%20GUI)-blue.svg>) !DSH: 0.1.0-rc.7

Web GUI 的悬浮 AI 翻译窗口。浏览器端(./client)向全局 shell.overlay 插槽注册一个条目:可拖拽、可缩放窗口,包含语言选择、原文/译文面板,以及展示服务商账户余额和今日估算消耗的底部状态栏。所有服务商请求都在宿主端完成——宿主端暴露 /translator/* 三个普通路由和一个用户设置命名空间,API Key 永远不会随页面请求传出去。

安装

这是一个独立的 DeepSeek Harness 插件——双面 bundle(宿主端 + 浏览器端)。用 dsh plugin 命令装进任意 profile:

# 从 git 仓库安装(prepare 脚本会在安装时现场构建)
dsh plugin --profile web add github:zhinian558/dsh-translator

# 或发布到 npm 后
dsh plugin --profile web add @zhinian558/dsh-translator

dsh.bundle 配置层会插入 translator 行(宿主路由 + 设置命名空间);dsh.client 声明把浏览器窗口注册进 Web GUI 的 shell.overlay 插槽。装完需重启 dsh 并刷新页面。

git 安装拉取的是源码而非构建产物:包内带 prepare 脚本在安装时构建 lib/,pnpm ≥10 需要在 profile 的 pnpm-workspace.yaml 里放行(allowBuilds: '@zhinian558/dsh-translator': true),详见官方打包文档。npm/tarball 安装自带构建好的 lib/,无需放行。

本地开发:pnpm install && pnpm run build(tsc + tsdown;浏览器端 bundle 与仓库内插件一致,通过 window.__ModuleLoader__.load 注册)。发布 npm 直接 npm publish;当前包名使用 @deepseek-ai scope,若发布到自己的 scope,请同步修改 package.jsontsdown.config.tsPLUGIN_ID)和 cordis.patch.yml 中的名字。

宿主端服务

export const name = 'translator',注入 webServersettingscredentials

路由

路由用途
POST /translator/translate一次对话补全翻译。请求体:{text, source, target}source 可为 'auto'。返回译文、token 用量、所用模型、估算费用(人民币 ¥,按设置中的价格计算)与延迟。
GET /translator/balance服务商账户余额。DeepSeek 使用 /user/balance;OpenAI 在默认接口地址时使用公开的 credit-grants 端点。其他 OpenAI 兼容端点返回 supported: false
GET /translator/status已生效的服务商/模型/接口地址、密钥是否已配置及来源层、是否支持余额查询。

所有响应均为 no-store 的 JSON;业务失败返回 HTTP 200 + ok: false,带稳定 codebad-requestno-api-keyprovidertimeoutinternal)与可读 error

设置命名空间

translator 命名空间承载用户可编辑子集:providerdeepseek | openai)、baseUrlmodelapiKey(secret,可选)、apiKeyEnv(凭据引用,默认 DEEPSEEK_API_KEY)、六个人民币单价(高峰 inputPrice / cacheHitInputPrice / outputPrice 与空闲 offPeak* 三件套,每 1M token,用于费用估算)、temperature。该命名空间会自动出现在 设置 → 插件 的配置页;窗口内的设置浮层写入同一个 section。

密钥解析顺序:设置中的 apiKey 字面量,其次 credentials 服务按引用名解析(环境变量优先于托管文件)。默认值:DeepSeek https://api.deepseek.com + deepseek-chat;OpenAI https://api.openai.com/v1 + gpt-4o-mini

配置

interface Config {
  requestTimeoutMs?: number; // 默认 60000
  maxBodyBytes?: number; // 默认 262144
}

浏览器窗口

客户端注入 slotslocalesettingsScope;注册 translator 语言命名空间,并向 shell.overlay 注册一个条目(id: translatororder: 20),渲染窗口与一个切换开关的悬浮按钮。窗口位置与尺寸持久化在 localStorage;每日用量账本(按本地日期,保留 30 天)同样持久化。窗口在打开时、每次翻译后、手动点击以及打开期间每五分钟刷新一次余额。

底部统计口径

窗口底部状态栏展示了几个数字,来源如下:

  • 余额 — 实时查询服务商(GET /translator/balance;DeepSeek /user/balance,公开 OpenAI 端点为 credit grants),不做本地存储。
  • 今日消耗估算值(人民币 ¥),不是服务商账单,实际费用以 DeepSeek 官方账户/账单为准。每次翻译成功后,把该请求的估算费用记入 localStorage 账本(按本地日期,保留 30 天),底部对当日所有记录求和。宿主端按北京时间自动选择计价档位(空闲时段 16:30–次日 00:30,UTC+8),并按如下公式计算:

费用 = 未命中输入tokens / 1,000,000 × inputPrice + 命中输入tokens / 1,000,000 × cacheHitInputPrice + 输出tokens / 1,000,000 × outputPrice

其中 token 数是服务商真实返回的该请求用量(prompt_cache_miss_tokensprompt_cache_hit_tokenscompletion_tokens;不报告缓存拆分的服务商按全部未命中处理),单价是设置项中的高峰或空闲档(每 1M token 的人民币价)。token 是真实的,金额是按配置单价估算的——想让数字贴近实际账单,请把单价设置为与服务商真实计费一致。账本只统计本翻译窗口发起的请求,DSH 其他会话的消耗不计入。

  • 右侧元信息(如 deepseek-chat · 123 tokens · 0.5s — 最近一次完成的翻译:所用模型、服务商为该请求返回的总 token 数(usage.total_tokens,输入+输出,真实用量而非估算)、宿主端测得的往返耗时(秒)。

设置项说明

translator 设置可通过窗口 ⚙ 浮层或 设置 → 插件 修改,两者写入同一份文档($DSH_HOME/settings.yamltranslator: 节)。

字段作用默认值
provider服务商:deepseek(余额端点 + DeepSeek 默认值)或 openai(OpenAI 兼容端点)。deepseek
baseUrlAPI 基础地址。插件会自动追加 /chat/completions(余额查询追加 /user/balance)。留空继承服务商默认值:https://api.deepseek.com / https://api.openai.com/v1。兼容 OpenAI 协议的网关(one-api、new-api、vLLM 等)也可填写。不要带 /chat/completions 后缀。
model发给服务商的模型 id。留空继承服务商默认值:deepseek-chat / gpt-4o-mini
apiKey可选 API Key 覆盖(只写不读)。设置后优先于 DSH 凭据;留空则走 apiKeyEnv 指定的 DSH 凭据。
apiKeyEnv凭据引用(环境变量名):未设置字面 apiKey 时,通过 DSH 凭据服务解析(环境变量优先,其次 $DSH_HOME/.credentials.yaml)。高级字段——⚙ 浮层不渲染,可在 设置 → 插件 或设置文档中修改。DEEPSEEK_API_KEY
inputPrice每 1M 输入 token 的人民币单价(缓存未命中,高峰),只用于「今日消耗」估算,不会发给服务商。3.0
cacheHitInputPrice每 1M 输入 token 的人民币单价(缓存命中,高峰),只用于「今日消耗」估算。0.1
outputPrice每 1M 输出 token 的人民币单价(高峰),只用于「今日消耗」估算。9.0
offPeakInputPrice每 1M 输入 token 的人民币单价(缓存未命中,空闲)。1.5
offPeakCacheHitInputPrice每 1M 输入 token 的人民币单价(缓存命中,空闲)。0.05
offPeakOutputPrice每 1M 输出 token 的人民币单价(空闲)。4.5
temperature传给服务商的采样温度(0–2)。越低越确定、越高越多变;翻译场景 0.3 较合适。0.3

价格默认值取自 DeepSeek 官方最新定价表(每 1M tokens,人民币),为 deepseek-v4-flash:高峰 输入 ¥3.0(缓存命中 ¥0.1)/ 输出 ¥9.0;空闲 输入 ¥1.5(缓存命中 ¥0.05)/ 输出 ¥4.5。若使用 deepseek-v4-pro,请改为:高峰 输入 ¥9.0(缓存命中 ¥0.3)/ 输出 ¥27.0;空闲 输入 ¥4.5(缓存命中 ¥0.15)/ 输出 ¥13.5。宿主端会在北京时间 16:30–次日 00:30 自动套用空闲档。这些默认值是手工维护的,不是查询服务商得到的——DeepSeek 没有公开的机器可读定价 API;今日消耗为本地估算,实际费用以 DeepSeek 官方账单为准。若你使用其他服务商、模型或网关且计费不同,请把六个单价改成与实际一致。

Model Experience

System prompt

#### What the model sees

每次翻译发送一条固定的系统消息,指示模型作为专业翻译引擎、只输出译文,随后仅跟一条用户消息(待翻译文本)。

#### Token effect

Fixed: 每次请求一条系统消息,长度与会话状态无关;用户消息即待翻译文本,请求大小随输入增长。

#### KV Cache effect

请求是相互独立的单轮补全,系统前缀稳定(指令与两个已解析的语言名);请求之间不缓存也不复用任何内容,提供方自身的缓存行为不在本包契约内。

Known Limitations and Deferred Work

  • 非流式响应 — 译文一次性返回;流式输出留待后续。
  • 费用为估算值 — 底部状态栏的今日消耗由 token 用量与配置价格计算,并非服务商账单,实际费用以 DeepSeek 官方账单为准;详见[底部统计口径](#底部统计口径)。未接入服务商原生单次费用字段。
  • 余额支持因服务商而异 — 仅 DeepSeek 与公开 OpenAI 端点提供余额端点;其他 OpenAI 兼容端点显示 余额 —
  • 密钥只写不读 — 窗口可写入可选密钥但从不回读;设置 → 插件 卡片是等价配置入口。