Suno 接入
这篇解决什么
Suno 平台字符串怎么填、代理地址落在哪。读完能对上 AiPlatformEnum.SUNO = "Suno",以及 SunoApi 构造只吃 url、不传密钥。
默认端口 48080。生成任务和 Job 见 AI 音乐创作。
示意图:取启用中的默认 Suno 密钥行。真正发请求只用该行的 url。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 密钥 | @RequestMapping("/ai/api-key") | ruoyi-office/yudao-module-ai/.../controller/admin/model/AiApiKeyController.java |
| 取客户端 | getSunoApi() | AiModelServiceImpl |
| 工厂 | getOrCreateSunoApi(apiKey, url) | AiModelFactoryImpl |
| 包装 | new SunoApi(url) | SunoApi |
| YAML | yudao.ai.suno.enable / base-url | application.yaml |
| 同步 | @XxlJob("aiSunoSyncJob") | AiSunoSyncJob |
官方菜单:AI 音乐 2796。没有「Suno」独立菜单。
getSunoApi 找平台 Suno 且启用的默认密钥。工厂缓存 key 含 apiKey,但 SunoApi 只 WebClient.baseUrl(url),请求路径是 /api/generate、/api/custom_generate、/api/generate_lyrics。
YAML 的 base-url 只给 @Bean SunoApi 用。运行时生成走库表 ai_api_key.url。本机联调常见 http://127.0.0.1:3001。
对话工厂、/draw 都没有 Suno。音乐用 type=3 语音模型行或只配密钥,不要拿它去聊天。
字段
| 名称 | 说明 | 仓库路径 |
|---|---|---|
platform | 必须是 Suno | AiApiKeyDO |
url | suno-api 代理根地址 | 同上 |
apiKey | 进缓存 key,不发给代理 | 同上 |
generateMode | 1 描述 / 2 歌词 | AiMusicDO |
不是 SUNO 也不是 SunoAI
枚举值是 Suno。密钥 url 空了,WebClient 没有可用主机。
和 YAML 默认 Bean 不是同一条路
yudao.ai.suno.enable=true 只注册启动 Bean。用户点生成时走 getRequiredDefaultApiKey。两处地址要一致,否则 Job 和页面各打各的。
按本仓库 DO 生成的 ER。
配置与操作
走 API 密钥(2761)建 platform=Suno,url 填 suno-api 代理根(本机常见 http://127.0.0.1:3001)。SunoApi 构造只吃 url。生成走 AI 音乐(2796,/ai/music)。YAML yudao.ai.suno.base-url 只给启动 Bean,页面生成走库表 url,两处要一致。
对话工厂和 /draw 都没有 Suno。开启见 AI 功能设计。

本系统截图:AI 大模型 → 控制台 → API 密钥。各厂商共用这一页,用 platform 区分。

本系统截图:控制台 → 模型配置。keyId 必须指向同平台密钥。
