| | |
| | | package cc.mrbird.febs.ai.controller.memberTalk; |
| | | |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkReloadStreamDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkStreamDto; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiTalkMemberListDto; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiTalkReportListDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.*; |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkListDto; |
| | | import cc.mrbird.febs.ai.res.memberTalk.*; |
| | | import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkReloadStreamVo; |
| | | import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkStreamV2Vo; |
| | | import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkStreamVo; |
| | | import cc.mrbird.febs.ai.service.ApiMemberTalkStreamService; |
| | | import cc.mrbird.febs.ai.service.AiMemberTalkStreamService; |
| | | 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; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import reactor.core.publisher.Flux; |
| | | |
| | | /** |
| | | * @author Administrator |
| | |
| | | @Api(value = "ApiMemberTalkStreamController", tags = "AI-用户陪练(流式)") |
| | | public class ApiMemberTalkStreamController { |
| | | |
| | | private final ApiMemberTalkStreamService apiMemberTalkStreamService; |
| | | private final AiMemberTalkStreamService aiMemberTalkStreamService; |
| | | |
| | | @ApiOperation("生成题目") |
| | | @ApiResponses({ |
| | |
| | | }) |
| | | @PostMapping("/start") |
| | | public FebsResponse start(@RequestBody @Validated ApiMemberTalkStreamDto dto) { |
| | | return apiMemberTalkStreamService.start(dto); |
| | | return aiMemberTalkStreamService.start(dto); |
| | | } |
| | | |
| | | @ApiOperation("继续回答") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = ApiMemberTalkStreamV2Vo.class), |
| | | }) |
| | | @PostMapping("/startV2") |
| | | public Flux<FebsResponse> startV2(@RequestBody @Validated ApiMemberTalkStreamV2Dto dto) { |
| | | return aiMemberTalkStreamService.startV2(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "再练一次(重新回答)", notes = "再练一次(重新回答)") |
| | |
| | | @PostMapping(value = "/reload") |
| | | public FebsResponse reload(@RequestBody @Validated ApiMemberTalkReloadStreamDto dto) { |
| | | |
| | | return apiMemberTalkStreamService.reload(dto); |
| | | return aiMemberTalkStreamService.reload(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "对话记录分页查询", notes = "对话记录分页查询") |
| | |
| | | @PostMapping(value = "/historyPage") |
| | | public FebsResponse historyPage(@RequestBody @Validated ApiMemberTalkItemPageDto dto) { |
| | | |
| | | return apiMemberTalkStreamService.historyPage(dto); |
| | | return aiMemberTalkStreamService.historyPage(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "保存用户回答", notes = "保存答案") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiMemberTalkMemberAnswerSavaVo.class) |
| | | }) |
| | | @PostMapping(value = "/saveMemberAnswer") |
| | | public FebsResponse saveMemberAnswer(@RequestBody @Validated ApiMemberTalkMemberAnswerSavaDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.saveMemberAnswer(dto); |
| | | } |
| | | |
| | | @ApiOperation("回答(流式)") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = ApiMemberTalkStreamVoOld.class), |
| | | }) |
| | | @PostMapping("/answer") |
| | | public Flux<FebsResponse> answer(@RequestBody @Validated AiTalkAnswerStreamDto dto) { |
| | | if (StrUtil.isEmpty(dto.getId()) || StrUtil.isEmpty(dto.getReqContext())|| StrUtil.isEmpty(dto.getReqContext())){ |
| | | return Flux.just(new FebsResponse().fail().message("参数异常")); |
| | | } |
| | | return aiMemberTalkStreamService.answer(dto); |
| | | } |
| | | |
| | | @ApiOperation("回答(流式)") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = ApiMemberTalkStreamVoOld.class), |
| | | }) |
| | | @PostMapping("/answerV2") |
| | | public Flux<FebsResponse> answerV2(@RequestBody @Validated AiTalkAnswerStreamDto dto) { |
| | | if (StrUtil.isEmpty(dto.getId()) || StrUtil.isEmpty(dto.getReqContext())|| StrUtil.isEmpty(dto.getReqContext())){ |
| | | return Flux.just(new FebsResponse().fail().message("参数异常")); |
| | | } |
| | | return aiMemberTalkStreamService.answerV2(dto); |
| | | } |
| | | |
| | | @ApiOperation("生成报告(流式)") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = ApiMemberTalkStreamVoOld.class), |
| | | }) |
| | | @PostMapping("/answerV3") |
| | | public Flux<FebsResponse> answerV3(@RequestBody @Validated AiTalkAnswerStreamDto dto) { |
| | | if (StrUtil.isEmpty(dto.getId()) || StrUtil.isEmpty(dto.getReqContext())|| StrUtil.isEmpty(dto.getReqContext())){ |
| | | return Flux.just(new FebsResponse().fail().message("参数异常")); |
| | | } |
| | | return aiMemberTalkStreamService.answerV3(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "保存AI回答(继续回答)", notes = "保存AI回答(继续回答)") |
| | | @PostMapping(value = "/saveAnswer") |
| | | public FebsResponse saveAnswer(@RequestBody @Validated ApiMemberTalkAnswerSavaDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.saveAnswer(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "保存AI陪练总结报告", notes = "保存AI陪练总结报告") |
| | | @PostMapping(value = "/saveReport") |
| | | public FebsResponse saveReport(@RequestBody @Validated ApiMemberTalkReportSavaDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.saveReport(dto); |
| | | } |
| | | |
| | | |
| | | @ApiOperation(value = "陪练记录", notes = "陪练记录") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiMemberTalkListVo.class) |
| | | }) |
| | | @PostMapping(value = "/talkList") |
| | | public FebsResponse talkList(@RequestBody @Validated ApiMemberTalkListDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.talkList(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "陪练记录-答题记录", notes = "陪练记录-答题记录") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkMemberListVo.class) |
| | | }) |
| | | @PostMapping(value = "/talkMemberList") |
| | | public FebsResponse talkMemberList(@RequestBody @Validated ApiTalkMemberListDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.talkMemberList(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "陪练记录-查看报告", notes = "陪练记录-查看报告") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkReportListVo.class) |
| | | }) |
| | | @PostMapping(value = "/talkReportList") |
| | | public Flux<FebsResponse> talkReportList(@RequestBody @Validated ApiTalkReportListDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.talkReportList(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "陪练记录-查看报告", notes = "陪练记录-查看报告") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = ApiTalkReportListVo.class) |
| | | }) |
| | | @PostMapping(value = "/talkReportListV2") |
| | | public FebsResponse talkReportListV2(@RequestBody @Validated ApiTalkReportListDto dto) { |
| | | |
| | | return aiMemberTalkStreamService.talkReportListV2(dto); |
| | | } |
| | | |
| | | } |