dsh-villager-hmm:模型“哼”声时的 Minecraft 村民音效

前言

DeepSeek Harness(DSH)的核心设计理念是“一切皆插件”,通过插件可以扩展 Harness 的行为。在某些模型推理链(Chain of Thought)或最终回复中,模型可能会发出“哼”、“嗯”等思考声,如果没有明确的视觉或听觉反馈,这些声音容易被忽略。

dsh-villager-hmm 是一个 DSH 插件,当检测到模型发出“哼”声时,会在界面上播放 Minecraft 村民的哼声作为反馈。

安装与启用

安装此插件必须使用 DSH 的官方安装命令,不能直接使用 npm install。安装后需运行资源获取脚本,否则插件面板会出现但无声音。

  1. 安装插件
    dsh plugin --profile web add dsh-villager-hmm
安装完成后,需要重启该 profile 才能让插件生效。
  1. 获取资源
    插件不包含 Minecraft 材质,需要运行以下命令将村民声音和纹理下载到本地缓存目录:
    npx dsh-villager-hmm-assets
资源默认存储在 `$DSH_HOME/.dsh-villager-hmm/assets/`。

功能与界面

安装并重启 profile 后,右上角会出现一个悬浮面板。面板默认位置在右上角,这是为了避开全宽的输入框,防止遮挡发送按钮。

面板支持以下操作:

  • 拖拽与复位:按住标题栏可拖动面板位置,双击标题栏可复位到右上角。
  • 折叠模式:点击面板上的按钮可将面板折叠,仅保留村民的头部图像(32x44 像素)。
  • 播放控制:面板底部提供暂停、音量调节、播放一次(测试匹配)等控制项。
  • 模式选择:支持 reasoning-only(仅监听推理链)或 both(监听推理链和回复)模式。默认为 both,以兼容没有独立推理流输出的模型。
  • 本地化:界面支持中英文切换。

配置

插件的配置项可以在代码中修改,也可以通过面板界面修改。若需通过配置文件覆盖默认值,需编辑 $DSH_HOME/profiles/web/cordis.patch.yml:

- insert:
    - id: dsh-villager-hmm
      name: 'dsh-villager-hmm'
      config:
        enabled: true
        mode: both      # 'reasoning' (仅推理链) | 'both'
        pattern: '(?<![0-9A-Za-z])(?:h+m+|mhm+|m{2,})|[嗯唔哼呃]'
        assetDir: 'D:/my-assets'

主要配置项包括:
* enabled: 是否启用插件。
* mode: 监听范围。
* pattern: 正则匹配式。
* assetDir: 自定义资源目录。

默认匹配模式

插件默认使用以下正则表达式来匹配“哼”声:

(?<![0-9A-Za-z])(?:h+m+|mhm+|m{2,})|[嗯唔哼呃]

该正则的设计逻辑如下:
* 边界处理:使用 lookbehind (?<![0-9A-Za-z]) 而非 \b,是为了解决 JavaScript 中 \b 在 CJK 字符(如中文)周围表现不一致的问题,确保“嗯hmm”也能被正确匹配。
* 中文支持:正则末尾的 [嗯唔哼呃] 直接匹配中文的拟声词。
* 英文变体:h+m+ 匹配 hm、hmm、hmmm 等;mhm+ 匹配闭口哼;m{2,} 匹配纯 mm。

在面板的“匹配式”字段中可以自定义正则,点击“应用”生效。

注意事项

  1. 安装方式限制:必须通过 dsh plugin 命令安装。如果直接使用 npm install 安装,插件在 DSH 的 profile 管理下将不可见,无法加载。
  2. 首次使用:首次使用前必须运行资源获取脚本,否则插件面板显示正常,但点击播放无声音。
  3. 位置记忆:面板的位置会保存在浏览器的 localStorage 中,刷新页面后位置保持不变。

短结尾

dsh-villager-hmm 提供了一种直观的方式,将模型内部的思考声音(“哼”)转化为可听、可视的反馈。通过自定义匹配模式和悬浮面板,它既能作为趣味工具,也能用于调试模型在推理过程中的停顿与发声习惯。

羽毛球分组比赛记分
小程序二维码

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

小夜