| | |
| | | package cc.mrbird.febs.ai.controller.agent; |
| | | |
| | | import cc.mrbird.febs.ai.req.agent.AiAgentInitDto; |
| | | import cc.mrbird.febs.ai.req.agent.ApiAgentCategoryAllDto; |
| | | import cc.mrbird.febs.ai.req.agent.ApiAgentPageDto; |
| | | import cc.mrbird.febs.ai.req.agent.*; |
| | | import cc.mrbird.febs.ai.req.productCategory.ApiProductCategoryAllDto; |
| | | import cc.mrbird.febs.ai.res.agent.AiAgentInitVo; |
| | | import cc.mrbird.febs.ai.res.agent.ApiAgentCategoryVo; |
| | |
| | | import cc.mrbird.febs.ai.res.productCategory.ApiProductCategoryVo; |
| | | import cc.mrbird.febs.ai.service.AiAgentService; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import io.swagger.annotations.ApiResponse; |
| | |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | import reactor.core.publisher.Flux; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | |
| | |
| | | return service.agentList(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "初始化智能体", notes = "初始化智能体") |
| | | @ApiOperation(value = "详情", notes = "详情") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = AiAgentInitVo.class) |
| | | }) |
| | |
| | | return service.initAgent(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "初始化对话", notes = "初始化对话") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "success", response = AgentSendInitVo.class) |
| | | }) |
| | | @PostMapping(value = "/initSend", produces = "application/json") |
| | | public FebsResponse initSend(@RequestBody @Validated AgentInitDto dto) { |
| | | |
| | | return service.initSend(dto); |
| | | } |
| | | |
| | | @ApiOperation(value = "保存对话消息", notes = "保存对话消息") |
| | | @PostMapping(value = "/saveContext") |
| | | public FebsResponse saveContext(@RequestBody @Validated AgentSaveContextDto dto) { |
| | | |
| | | return service.saveContext(dto); |
| | | } |
| | | |
| | | @ApiOperation("AI回答(流式)") |
| | | @ApiResponses({ |
| | | @ApiResponse(code = 200, message = "流式响应", response = AitalkItemStreamVo.class), |
| | | }) |
| | | @PostMapping("/aiAnswer") |
| | | public Flux<FebsResponse> aiAnswer(@RequestBody @Validated AitalkItemStreamDto dto) { |
| | | if (StrUtil.isEmpty(dto.getTalkId()) || StrUtil.isEmpty(dto.getReqContext())|| StrUtil.isEmpty(dto.getReqContext())){ |
| | | return Flux.just(new FebsResponse().fail().message("参数异常")); |
| | | } |
| | | return service.aiAnswer(dto); |
| | | } |
| | | |
| | | |
| | | |
| | | } |