src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/ai/req/memberTalk/ApiMemberTalkReloadDto.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberTalkReloadVo.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java | ●●●●● patch | view | raw | blame | history | |
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java | ●●●●● patch | view | raw | blame | history |
src/main/java/cc/mrbird/febs/ai/controller/memberTalk/ApiMemberTalkController.java
@@ -1,10 +1,8 @@ package cc.mrbird.febs.ai.controller.memberTalk; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkAnswerDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkStreamDto; import cc.mrbird.febs.ai.req.memberTalk.*; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkReloadVo; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVo; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkVo; import cc.mrbird.febs.ai.service.AiMemberTalkService; @@ -46,6 +44,17 @@ } @ApiOperation(value = "再练一次(重新回答)", notes = "再练一次(重新回答)") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiMemberTalkReloadVo.class) }) @PostMapping(value = "/reload") public FebsResponse reload(@RequestBody @Validated ApiMemberTalkReloadDto dto) { return aiMemberTalkService.reload(dto); } @ApiOperation(value = "回答", notes = "回答") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiMemberTalkVo.class) src/main/java/cc/mrbird/febs/ai/req/memberTalk/ApiMemberTalkReloadDto.java
New file @@ -0,0 +1,22 @@ package cc.mrbird.febs.ai.req.memberTalk; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotBlank; /** * @author Administrator */ @Data @ApiModel(value = "ApiMemberTalkReloadDto", description = "参数") public class ApiMemberTalkReloadDto { /** * 用户对话ID (UUID) */ @NotBlank(message = "会话ID不能为空") @ApiModelProperty(value = "会话ID", example = "10") private String memberTalkId; } src/main/java/cc/mrbird/febs/ai/res/memberTalk/ApiMemberTalkReloadVo.java
New file @@ -0,0 +1,37 @@ package cc.mrbird.febs.ai.res.memberTalk; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author Administrator */ @Data @ApiModel(value = "ApiMemberTalkReloadVo", description = "参数") public class ApiMemberTalkReloadVo { /** * 用户对话ID (UUID) */ @ApiModelProperty(value = "会话ID") private String memberTalkId; /** * 类型 1-AI提问 2-用户回答 3-AI分析结果 */ @ApiModelProperty(value = "类型 1-AI提问 2-用户回答 3-AI分析结果") private Integer type; /** * 内容 */ @ApiModelProperty(value = "内容(文本格式)") private String context; @ApiModelProperty(value = "内容亮点、建议、参考答案、核心知识点雷达图表数据(数据对象)") private String report; } src/main/java/cc/mrbird/febs/ai/service/AiMemberTalkService.java
@@ -1,10 +1,7 @@ package cc.mrbird.febs.ai.service; import cc.mrbird.febs.ai.entity.AiMemberTalk; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkAnswerDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkStreamDto; import cc.mrbird.febs.ai.req.memberTalk.*; import cc.mrbird.febs.ai.res.ai.AiResponse; import cc.mrbird.febs.common.entity.FebsResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -27,6 +24,8 @@ FebsResponse start(ApiMemberTalkDto dto); FebsResponse reload(ApiMemberTalkReloadDto dto); void startStream(ApiMemberTalkDto dto, Consumer<AiResponse> callback); AiMemberTalk getByQuery(LambdaQueryWrapper<AiMemberTalk> query); src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkServiceImpl.java
@@ -7,11 +7,9 @@ import cc.mrbird.febs.ai.mapper.AiMemberTalkMapper; import cc.mrbird.febs.ai.req.ai.AiMessage; import cc.mrbird.febs.ai.req.ai.AiRequest; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkAnswerDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkStreamDto; import cc.mrbird.febs.ai.req.memberTalk.*; import cc.mrbird.febs.ai.res.ai.AiResponse; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkReloadVo; import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkVo; import cc.mrbird.febs.ai.service.AiMemberTalkItemService; import cc.mrbird.febs.ai.service.AiMemberTalkService; @@ -101,6 +99,25 @@ } @Override public FebsResponse reload(ApiMemberTalkReloadDto dto) { String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); ApiMemberTalkReloadVo apiMemberTalkReloadVo = new ApiMemberTalkReloadVo(); String memberTalkId = dto.getMemberTalkId(); LambdaQueryWrapper<AiMemberTalkItem> queryWrapper = Wrappers.lambdaQuery(AiMemberTalkItem.class); queryWrapper.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId); queryWrapper.eq(AiMemberTalkItem::getType,AiTypeEnum.QUESTION_ANSWER.getCode()); queryWrapper.orderByDesc(AiMemberTalkItem::getCreatedTime); AiMemberTalkItem byQuery = aiMemberTalkItemService.getByQuery(queryWrapper); if (ObjectUtil.isNotNull(byQuery)){ apiMemberTalkReloadVo.setContext(byQuery.getContext()); apiMemberTalkReloadVo.setMemberTalkId(memberTalkId); apiMemberTalkReloadVo.setType(AiTypeEnum.QUESTION_ANSWER.getCode()); } return new FebsResponse().success().data(apiMemberTalkReloadVo); } @Override public void startStream(ApiMemberTalkDto dto, Consumer<AiResponse> callback) { try { String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();