runcat-tommy/dsh-unitverse0

dsh-unitverse

DSH plugin: universal unit conversion across length, area, volume, time, angle, speed, temperature, pressure, energy and power, with Chinese/English aliases. 单位换算 DSH 插件(长度/面积/体积/时间/角度/速度/温度/压力/热量/功率,支持中英文单位名)。

包名
dsh-unitverse
版本
1.1.0
许可证
MIT
最近更新
2026年9月10日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:runcat-tommy/dsh-unitverse

使用方法

安装后,模型可调用工具 convert

convert(value=100, from="km", to="mi")   -> 62.13711922 mi

工具参数:

参数类型必填说明
valuenumber要换算的数值(有限数)
fromstring源单位:符号 / 英文 / 中文,大小写不敏感
tostring目标单位:符号 / 英文 / 中文,大小写不敏感

返回结构化结果:{ value, from, to, result, category, categoryZh, categoryEn, fromInput, toInput, summary }fromInput / toInput 为调用方原始传入的单位写法,from / to 为解析后的规范名)。

示例(模型会话)

把 100 公里换成英里
→ convert(100, "公里", "英里") → summary: "100 公里 = 62.13711922 英里 (长度)"

5 feet 是多少厘米
→ convert(5, "feet", "cm") → summary: "5 feet = 152.4 cm (长度)"

36 km/h 换成 m/s
→ convert(36, "km/h", "m/s") → 10

1 atm 是多少 kPa
→ convert(1, "atm", "kPa") → 101.325

212 °F 是多少 °C
→ convert(212, "°F", "°C") → 100

温度温差(Δ)

温度默认按绝对温标换算。若想换算温差,给两个单位都加上 Δdelta 前缀:

1 °C 的温差 = 多少 °F 温差?
→ convert(1, "Δ°C", "Δ°F") → 1.8

绝对温标与 Δ 温差不可混用(例如 Δ°CK 会被拒绝),报错会同时给出两种修法(都加 Δ 或都去掉 Δ)。温差换算的回显会保留 Δ 标记,以免把温差误读成绝对温标:

convert(10, "Δ°C", "Δ°F") → summary: "10 Δ°C = 18 Δ°F (温度)"
convert(10, "°C", "°F")   → summary: "10 °C = 50 °F (温度)"   ← 绝对温标,不是同一个结果

从代码中直接使用核心库

换算核心是零依赖纯模块,可直接复用:

import { convert, convertDetailed } from 'dsh-unitverse'

convert(100, 'km', 'mi')                 // 62.13711922
convert(25, '°C', '°F')                  // 77
convert(1, 'Δ°C', 'Δ°F')                 // 1.8(温差)
convertDetailed(3, '公里/小时', 'm/s')   // { result: 0.833..., summary: '...' }

注意:src/index.ts 是 DSH 插件入口(依赖 @deepseek-ai/cordis@deepseek-ai/dsh-tools);src/convert.ts + src/units.ts 是无宿主依赖的核心库。