package com.iailab.module.ai.controller.admin.music.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.util.List; @Schema(description = "管理后台 - AI 音乐生成 Request VO") @Data public class AiSunoGenerateReqVO { @Schema(description = "平台", requiredMode = Schema.RequiredMode.REQUIRED, example = "Suno") @NotBlank(message = "平台不能为空") private String platform; // 参见 AiPlatformEnum 枚举 /** * 1. 描述模式:描述词 + 是否纯音乐 + 模型 * 2. 歌词模式:歌词 + 音乐风格 + 标题 + 模型 */ @Schema(description = "生成模式", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "生成模式不能为空") private Integer generateMode; // 参见 AiMusicGenerateModeEnum 枚举 @Schema(description = "用于生成音乐音频的歌词提示", example = """ 1.描述模式:创作一首带有轻松吉他旋律的流行歌曲,[verse] 描述夏日海滩的宁静,[chorus] 节奏加快,表达对自由的向往。 2.歌词模式: [Verse] 阳光下奔跑 多么欢快 假期就要来 心都飞起来 朋友在一旁 笑声又灿烂 无忧无虑的 每一天甜蜜 [Chorus] 马上放假了 快来庆祝 一起去旅行 快去冒险 日子太短暂 别再等待 马上放假了 梦想起飞 """) private String prompt; @Schema(description = "是否纯音乐", example = "true") private Boolean makeInstrumental; @Schema(description = "模型", requiredMode = Schema.RequiredMode.REQUIRED, example = "chirp-v3.5") @NotEmpty(message = "模型不能为空") private String model; @Schema(description = "音乐风格", example = "[\"pop\",\"jazz\",\"punk\"]") private List tags; @Schema(description = "音乐/歌曲名称", example = "夜空中最亮的星") private String title; }