package com.iailab.module.ai.controller.admin.chat.vo.message; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.time.LocalDateTime; import java.util.List; @Schema(description = "管理后台 - AI 聊天消息 Response VO") @Data public class AiChatMessageRespVO { @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "对话编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2048") private Long conversationId; @Schema(description = "回复消息编号", example = "1024") private Long replyId; @Schema(description = "消息类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "role") private String type; // 参见 MessageType 枚举类 @Schema(description = "用户编号", example = "4096") private Long userId; @Schema(description = "角色编号", example = "888") private Long roleId; @Schema(description = "模型标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "gpt-3.5-turbo") private String model; @Schema(description = "模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "123") private Long modelId; @Schema(description = "聊天内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "你好,你好啊") private String content; @Schema(description = "是否携带上下文", requiredMode = Schema.RequiredMode.REQUIRED, example = "true") private Boolean useContext; @Schema(description = "知识库段落编号数组", example = "[1,2,3]") private List segmentIds; @Schema(description = "知识库段落数组") private List segments; @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED, example = "2024-05-12 12:51") private LocalDateTime createTime; // ========== 仅在【对话管理】时加载 ========== @Schema(description = "角色名字", example = "小黄") private String roleName; @Schema(description = "知识库段落", example = "Java 开发手册") @Data public static class KnowledgeSegment { @Schema(description = "段落编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") private Long id; @Schema(description = "切片内容", requiredMode = Schema.RequiredMode.REQUIRED, example = "Java 开发手册") private String content; @Schema(description = "文档编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24790") private Long documentId; @Schema(description = "文档名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "产品使用手册") private String documentName; } }