| | |
| | | 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.talk.AiTalkAnswerStream; |
| | | import cc.mrbird.febs.ai.req.talk.ApiTalkDto; |
| | | import cc.mrbird.febs.ai.req.talk.ApiTalkItemPageDto; |
| | | import cc.mrbird.febs.ai.req.talk.ApiTalkPageDto; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVo; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkVo; |
| | | import cc.mrbird.febs.ai.res.talk.ApiTalkItemPageVo; |
| | | import cc.mrbird.febs.ai.res.talk.ApiTalkPageVo; |
| | | import cc.mrbird.febs.ai.res.talk.ApiTalkQuestionVo; |
| | | import cc.mrbird.febs.ai.res.talk.ApiTalkVo; |
| | | import cc.mrbird.febs.ai.service.AiMemberTalkService; |
| | | import cc.mrbird.febs.ai.service.AiTalkService; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import io.swagger.annotations.*; |
| | | import lombok.RequiredArgsConstructor; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | |
| | | private final AiTalkService aiTalkService; |
| | | |
| | | @ApiOperation(value = "题目轮播", notes = "题目轮播") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkQuestionVo.class) |
| | | }) |
| | | @GetMapping(value = "/questionList") |
| | | public FebsResponse questionList() { |
| | | |
| | | return aiTalkService.questionList(); |
| | | } |
| | | |
| | | @ApiOperation(value = "用户AI问答", notes = "用户AI问答") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkVo.class) |
| | |
| | | return aiTalkService.talkOpen(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "用户AI问答记录分页查询", notes = "用户AI问答记录分页查询") |
| | | @ApiOperation(value = "问答记录分页查询", notes = "问答记录分页查询") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkPageVo.class) |
| | | }) |
| | |
| | | public FebsResponse talkList(@RequestBody @Validated ApiTalkPageDto dto) { |
| | | |
| | | return aiTalkService.talkList(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "问答记录详情分页查询", notes = "问答记录详情分页查询") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkItemPageVo.class) |
| | | }) |
| | | @PostMapping(value = "/historyPage") |
| | | public FebsResponse historyPage(@RequestBody @Validated ApiTalkItemPageDto dto) { |
| | | |
| | | return aiTalkService.historyPage(dto); |
| | | } |
| | | |
| | | @ApiOperation("提问AI(流式)") |
| | |
| | | |
| | | return aiTalkService.answerStream(question); |
| | | } |
| | | |
| | | @ApiOperation("提问AI(流式)V2") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = ApiMemberTalkStreamVo.class), |
| | | }) |
| | | @PostMapping("/answer-streamV2") |
| | | public Flux<FebsResponse> answerStreamV2(@RequestBody @Validated AiTalkAnswerStream dto) { |
| | | if (StrUtil.isEmpty(dto.getQuestion())){ |
| | | return Flux.just(new FebsResponse().fail().message("请输入问题")); |
| | | } |
| | | return aiTalkService.answerStreamV2(dto); |
| | | } |
| | | } |