返回 AiToEarn
ai.dto.ts
1 import { createZodDto, PaginationDtoSchema, UserType } from '@yikart/common'
2 import { z } from 'zod'
3
4 // 图片生成请求
5 const AdminImageGenerationSchema = z.object({
6 prompt: z.string().min(1).max(4000).describe('图片描述提示'),
7 model: z.string().describe('图片生成模型'),
8 n: z.number().int().min(1).max(10).optional().describe('生成图片数量'),
9 quality: z.string().optional().describe('图片质量'),
10 response_format: z.enum(['url', 'b64_json']).optional().describe('返回格式'),
11 size: z.string().optional().describe('图片尺寸'),
12 style: z.string().optional().describe('图片风格'),
13 user: z.string().optional().describe('用户标识符'),
14 userId: z.string().describe('用户Id'),
15 userType: z.enum(UserType).describe('用户类型'),
16 })
17 export class AdminImageGenerationDto extends createZodDto(AdminImageGenerationSchema) {}
18
19 // 通用视频生成请求
20 const videoGenerationRequestSchema = z.object({
21 model: z.string().min(1).describe('模型名称'),
22 userId: z.string().describe('用户Id'),
23 userType: z.enum(UserType).describe('用户类型'),
24 prompt: z.string().min(1).max(4000).describe('提示词'),
25 groupId: z.string().optional().describe('素材组 ID,传入后生成成功时保存到该素材组'),
26 image: z.string().or(z.string().array()).optional().describe('图片URL或base64'),
27 image_tail: z.string().optional().describe('尾帧图片URL或base64'),
28 mode: z.string().optional().describe('生成模式'),
29 size: z.string().optional().describe('尺寸'),
30 duration: z.number().optional().describe('时长'),
31 metadata: z.record(z.string(), z.any()).optional().describe('其他参数'),
32 })
33 export class AdminVideoGenerationRequestDto extends createZodDto(videoGenerationRequestSchema) {}
34
35 const AdminVideoGenerationStatusSchema = z.object({
36 userId: z.string().describe('用户Id'),
37 userType: z.enum(UserType).describe('用户类型'),
38 taskId: z.string().describe('任务ID'),
39 })
40 export class AdminVideoGenerationStatusSchemaDto extends createZodDto(AdminVideoGenerationStatusSchema) {}
41
42 // 通用视频任务状态查询
43 const adminListUserVideoTasksQuerySchema = z.object({
44 ...PaginationDtoSchema.shape,
45 userId: z.string().describe('用户Id'),
46 userType: z.enum(UserType).describe('用户类型'),
47 })
48
49 export class AdminUserListVideoTasksQueryDto extends createZodDto(adminListUserVideoTasksQuerySchema) {}
50
51 const imageEditSchema = z.object({
52 userId: z.string().describe('用户Id'),
53 userType: z.enum(UserType).describe('用户类型'),
54 model: z.string().describe('图片编辑模型'),
55 image: z.string().or(z.string().array()).describe('原始图片'),
56 prompt: z.string().min(1).max(4000).describe('编辑描述'),
57 mask: z.string().optional().describe('遮罩图片'),
58 n: z.int().min(1).max(100).optional().describe('生成图片数量'),
59 size: z.string().optional().describe('图片尺寸'),
60 response_format: z.enum(['url', 'b64_json']).optional().describe('返回格式'),
61 user: z.string().optional().describe('用户标识符'),
62 })
63
64 export class AdminImageEditDto extends createZodDto(imageEditSchema) {}
65
65 lines TYPESCRIPT