| | |
| | | package cc.mrbird.febs.ai.controller.memberTalk; |
| | | |
| | | import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.AiTalkAnswerStreamDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkAnswerSavaDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkReloadStreamDto; |
| | | import cc.mrbird.febs.ai.req.memberTalkStream.ApiMemberTalkStreamDto; |
| | | import cc.mrbird.febs.ai.req.talk.AiTalkAnswerStream; |
| | | import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; |
| | | import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkReloadStreamVo; |
| | | import cc.mrbird.febs.ai.res.memberTalkStream.ApiMemberTalkStreamVo; |
| | | import cc.mrbird.febs.ai.service.ApiMemberTalkStreamService; |
| | | import cc.mrbird.febs.ai.strategy.enumerates.LlmStrategyEnum; |
| | | import cc.mrbird.febs.ai.strategy.param.LlmStrategyDto; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cn.hutool.core.util.ObjectUtil; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.alibaba.dashscope.common.Role; |
| | | 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; |
| | | |
| | | import java.util.ArrayList; |
| | | |
| | | /** |
| | | * @author Administrator |
| | |
| | | return apiMemberTalkStreamService.historyPage(dto); |
| | | } |
| | | |
| | | @ApiOperation("回答(流式)") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkStreamVo.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 apiMemberTalkStreamService.answer(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "保存答案", notes = "保存答案") |
| | | @PostMapping(value = "/saveAnswer") |
| | | public FebsResponse saveAnswer(@RequestBody @Validated ApiMemberTalkAnswerSavaDto dto) { |
| | | |
| | | return apiMemberTalkStreamService.saveAnswer(dto); |
| | | } |
| | | |
| | | } |