AI 音乐创作
这篇解决什么
音乐任务落哪张表、当前对接哪家。读完能对上 ai_music 和 platform = Suno,不要按前端 Tab 当成已经多平台。
默认端口 48080。开启见 AI 功能设计。
示意图:生成先落进行中。XXL-Job 轮询 Suno 任务再回写地址。
从哪改
实现只调 SunoApi,没有第二家音乐平台分支。AiPlatformEnum.SUNO 的字符串是 Suno。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 音乐 | @RequestMapping("/ai/music") | ruoyi-office/yudao-module-ai/.../controller/admin/music/AiMusicController.java |
| 生成 | POST /generate | AiSunoGenerateReqVO |
| 同步 | @XxlJob("aiSunoSyncJob") | AiSunoSyncJob |
| 作品表 | ai_music | AiMusicDO |
| 用户页 | 列表 | ruoyi-office-vben/apps/web-antd/src/views/ai/music/index/ |
| 管理页 | 公开状态 | views/ai/music/manager/ |
官方菜单:AI 音乐 2796,音乐管理 2788。权限 ai:music:query / update / delete。
密钥走 AiModelService.getSunoApi(),取平台 Suno 的 ai_api_key。代理地址在 yudao.ai.suno(enable、baseUrl)。
PC 用户页当前用 setTimeout 造演示数据,api/ai/music/index.ts 只封装了管理端 page / update / delete。后端生成接口是齐的,用户页还没接到 /generate。
字段
AiMusicStatusEnum:10 进行中,20 已完成(Suno complete),30 已失败(error)。AiMusicGenerateModeEnum:1 描述模式 generate,2 歌词模式 customGenerate。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
generateMode | 描述 / 歌词 | AiMusicDO |
platform / model | 固定写 Suno、如 chirp-v3.5 | 同上 |
taskId | Suno 任务 | 同上 |
audioUrl / imageUrl / videoUrl | 回写地址 | 同上 |
tags | JSON 列表 | 同上 |
publicStatus | 管理端可改 | 同上 |
dump 表有 model_id 列,当前 DO 没有 modelId。同步 Job 只扫 status=10。
没挂 Job 会一直进行中
aiSunoSyncJob 不进 XXL-Job,地址不会回写。不要在用户页 mock 成功后以为库里已完成。
能力范围
AI 音乐属于全功能版能力。OA 版默认没有这一页。
按本仓库 DO 生成的 ER。一行一首任务。
配置与操作
先在密钥页建 platform=Suno 且启用的默认行,url 指向 suno-api 代理。生成走 POST /ai/music/generate。同步靠 XXL-Job aiSunoSyncJob 扫 status=10。管理端 音乐管理(2788,/ai/console/music)只改公开状态。
PC 用户页(2796,/ai/music)当前仍用 setTimeout 造演示数据,还没接到 /generate。没有第二家音乐平台。开启见 AI 功能设计。

本系统截图:AI 音乐。用户页当前仍是演示数据,生成接口在后端。
