DeepSeek Harness 的 AI DJ:让对话接管本地音乐

前言

DeepSeek Harness(DSH)把 LLM 对话能力开放给插件,让模型不仅能查资料、写代码,还能控制外部工具。对于需要「持续伴随」或「场景化控制」的工具,传统做法往往要自己维护状态、处理协议、处理播放器。本文介绍的 dsh-music-dj 插件,把 DSH 的对话变成一台「AI DJ」,让模型理解场景和意图,驱动本机的 LX Music 完成搜索与播放,自己搜歌、自己切歌。

是什么

  • 名称:dsh-music-dj
  • 维护者:klT45
  • 分类:模型推理
  • 定位:AI DJ for DeepSeek Harness:把一句自然语言变成检索词,通过 LX Music 完成搜索与播放,插件本身不含音源、不下载音频。

它解决的是「音乐播放的意图理解与自动化」问题:普通音乐插件只能执行播放/暂停/下一首等简单指令,而 dsh-music-dj 让模型理解「写代码时放点 lofi」「放首晴天」「换首更安静的」这类意图,并自动生成检索词、尝试播放、校验结果。

核心功能

工具接口

插件向模型暴露三个工具:

  • music_play:点歌/找歌播放。参数包括 intent(场景)、query(检索词)、title+artist(精确点歌)。
  • music_control:控制播放,支持 play/pause/toggle/next/prev/seek/volume/mute/collect/uncollect。
  • music_status:连接诊断 + 当前播放 + 最近错误。

所有工具返回「回读校验后的真实结果」:成功了告诉你实际在放什么,失败告诉你试过哪些检索词、大概率是哪个环节出了问题。

场景与精确点歌

  • 场景点歌:模型调用 music_play(intent="写代码") 时,插件会按配置的 scenes 表把意图映射成检索词序列(如「lofi 纯音乐」「轻音乐 工作」「study lofi」),逐条尝试搜索并播放。
  • 精确点歌:提供 title+artist,插件会校验播放的实际歌名与歌手是否匹配。

自动续播与冷却

  • 开启 DJ 模式后,插件会在每轮对话结束、超过冷却时间、且音乐已暂停时才自动续播,不打断正在听的歌。
  • 默认 dj.enabled: false,不主动打扰。

多标签单实例与多平台

  • 播放状态由 LX Music 维护,DSH 开多个标签页不会重复出声。
  • 支持 Windows / macOS / Linux,通过 Scheme URL 调起播放器。

搭配要求

插件本身不提供音源,必须先准备 LX Music。

  1. 安装 LX Music 桌面版 ≥ 2.8(建议 ≥ 2.12,支持 -hidden 托盘启动)。
  2. 打开洛雪 →「设置 → 自定义源」→ 导入一个可用的自定义音源(洛雪 2023 年起不再内置音源,需自行选择社区源)。
  3. 打开洛雪 →「设置 → 开放 API」→ 启用(默认端口 23330,只监听 127.0.0.1)。
  4. 在 DSH 里打开「设置 → 音乐 DJ」→ 点「检测连接」,看到「已连接」即可。

音源会失效,点歌失败时会明确提示「没确认播放成功」,换源后重试。

安装与启用

插件市场:在 DSH 插件市场搜索「音乐 DJ / dsh-music-dj」安装(推荐)。

命令行:dsh plugin add dsh-music-dj(前提是 CLI 可用;本插件声明了 dsh.bundle,可被 dsh plugin add 安装)。

本地开发:把本仓库克隆到任意目录,在 profile 的 cordis.patch.yml 里 insert 一条:

- insert:
    - id: dsh-music-dj
      name: dsh-music-dj

安装后,在 DSH 设置里找到「音乐 DJ」,启用并检测连接。

配置

配置文件:~/.dsh/dsh-music-dj.json(人类可编辑,改完重启 DSH 生效)。

{
  "engine": "lx",
  "lx": { "apiPort": 23330, "exe": "" },
  "dj": { "enabled": false, "cooldownMin": 10, "autoNext": false },
  "scenes": {
    "写代码": ["lofi 纯音乐", "轻音乐 工作", "study lofi"],
    "专注": ["专注 纯音乐", "钢琴 纯音乐"],
    "放松": ["轻松 纯音乐", "轻音乐 放松"]
  }
}
  • scenes 可随意添加或修改中文场景词,模型说「来点写代码的」时会按这里搜。
  • dj.enabled 默认关闭,想让它自己切歌再打开。
  • 端口不是 23330 就改 lx.apiPort;洛雪装在非默认路径就填 lx.exe。

工作原理

洛雪的开放 API 能控制但没有搜索,搜歌只能通过 lxmusic://music/searchPlay/<检索词> 这类 Scheme URL,且「发出去就不管了」,没有回执。插件采用「双通道 + 回读校验」:

  1. 模型根据意图调用 music_play(intent="写代码")。
  2. 插件按场景词表生成检索词序列,如 ["lofi 纯音乐", "轻音乐 工作", ...]。
  3. 逐条派发 lxmusic://music/searchPlay/<词>。
  4. 每 800ms 回读 http://127.0.0.1:23330/status,校验:在播 + 歌名变化/进度回零(精确点歌还要标题/歌手匹配)。
  5. 命中即停;3 次不对就换下一个词;全失败则如实报错。

额外做了这些:

  • 动态上下文:把「正在播放」写进模型的系统上下文(一行,≤30 token),模型不用问就知道在放什么。
  • 曲线事件:开启 DJ 模式后,每轮对话结束、超过冷却时间、且音乐已暂停时才自动续播。
  • 多标签单实例:播放状态在洛雪里,DSH 开几个标签都不会重复出声。
  • 多平台:Windows / macOS / Linux 分别通过 cmd start / open / xdg-open 调起 Scheme URL。

合规声明

  • 插件不内置、不分发任何音源,也不下载、不转存任何音频;所有播放行为发生在用户本机的 LX Music 中,音源由用户自行安装的第三方脚本提供。
  • 洛雪是 Apache-2.0 + 补充协议授权的第三方软件;本插件只调用其公开文档化的本地接口,不包含其代码。
  • 请遵守各音乐平台的用户协议与版权规定;本插件不提供任何绕过付费/会员/版权保护的能力。

生态背景

DeepSeek Harness 的理念是「一切皆插件」,社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系。dsh-music-dj 是社区插件,维护者与贡献者自行负责。

短结尾

dsh-music-dj 让 DSH 对话接管本地音乐,把自然语言变成检索词与播放指令,配合回读校验保证结果可复现。适合需要「持续伴随」或「场景化播放」的开发者,安装前请检查源码与许可证。

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

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

小夜