diff --git a/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/ChatConversationTypeEnum.java b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/ChatConversationTypeEnum.java new file mode 100644 index 000000000..4a699618d --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-api/src/main/java/cn/iocoder/yudao/module/ai/enums/ChatConversationTypeEnum.java @@ -0,0 +1,36 @@ +package cn.iocoder.yudao.module.ai.enums; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * 对话类型 + * 创建对话、继续对话 + * + * @author fansili + * @time 2024/4/14 18:15 + * @since 1.0 + */ +@AllArgsConstructor +@Getter +public enum ChatConversationTypeEnum { + + NEW("new", "新建对话"), + CONTINUE("continue", "继续对话"), + + ; + + private String type; + + private String name; + + public static ChatConversationTypeEnum valueOfType(String type) { + for (ChatConversationTypeEnum itemEnum : ChatConversationTypeEnum.values()) { + if (itemEnum.getType().equals(type)) { + return itemEnum; + } + } + throw new IllegalArgumentException("Invalid MessageType value: " + type); + } + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dataobject/AiChatConversationDO.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dataobject/AiChatConversationDO.java new file mode 100644 index 000000000..8f1956392 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dataobject/AiChatConversationDO.java @@ -0,0 +1,42 @@ +package cn.iocoder.yudao.module.ai.dataobject; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * chat 交谈 + * + * @author fansili + * @time 2024/4/14 17:35 + * @since 1.0 + */ +@Data +@Accessors(chain = true) +@TableName("ai_chat_conversation") +public class AiChatConversationDO extends BaseDO { + + @Schema(description = "id") + private Long id; + + @Schema(description = "用户id") + private Long userId; + + @Schema(description = "chat角色Id") + private Long chatRoleId; + + @Schema(description = "chat角色名称") + private String chatRoleName; + + @Schema(description = "对话标题(有程序自动生成)") + private String chatTitle; + + @Schema(description = "对话标题(有程序自动生成)") + private Integer chatCount; + + @Schema(description = "对话类型(roleChat、userChat)") + private String chatType; + +} diff --git a/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java new file mode 100644 index 000000000..6e018a892 --- /dev/null +++ b/yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java @@ -0,0 +1,24 @@ +package cn.iocoder.yudao.module.ai.mapper; + +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.ai.dataobject.AiChatConversationDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; +import org.springframework.stereotype.Repository; + +/** + * message mapper + * + * @fansili + * @since v1.0 + */ +@Repository +@Mapper +public interface AiChatConversationMapper extends BaseMapperX { + + + @Update("update ai_chat_conversation set chat_count = chat_count + 1 where id = #{id}") + void updateIncrChatCount(@Param("id") Long id); + +}