package cc.mrbird.febs.yinhe.controller;
|
|
import cc.mrbird.febs.ai.req.product.ApiProductInfoDto;
|
import cc.mrbird.febs.ai.req.product.ApiProductPageDto;
|
import cc.mrbird.febs.ai.res.product.ApiProductInfoVo;
|
import cc.mrbird.febs.ai.res.product.ApiProductVo;
|
import cc.mrbird.febs.ai.res.productPoint.ApiProductPointVo;
|
import cc.mrbird.febs.ai.service.AiProductService;
|
import cc.mrbird.febs.common.entity.FebsResponse;
|
import cc.mrbird.febs.mall.vo.MallMemberVo;
|
import cc.mrbird.febs.yinhe.req.*;
|
import cc.mrbird.febs.yinhe.res.*;
|
import cc.mrbird.febs.yinhe.service.YhAiService;
|
import cn.hutool.core.util.StrUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiResponse;
|
import io.swagger.annotations.ApiResponses;
|
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 javax.servlet.http.HttpServletRequest;
|
|
/**
|
* @author Administrator
|
*/
|
@Slf4j
|
@Validated
|
@RestController
|
@RequiredArgsConstructor
|
@RequestMapping(value = "/api/yh/agent")
|
@Api(value = "YHApiAgentController", tags = "AI-银和-智能体相关接口")
|
public class YHApiAgentController {
|
|
private final YhAiService service;
|
@ApiOperation(value = "获取用户信息", notes = "获取用户信息")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHMemberVo.class)
|
})
|
@GetMapping(value = "/memberInfo")
|
public FebsResponse memberInfo() {
|
|
return service.memberInfo();
|
}
|
|
@ApiOperation(value = "公司-智能体分类", notes = "公司-智能体分类")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHCategoryVo.class)
|
})
|
@PostMapping(value = "/categoryList")
|
public FebsResponse categoryList(@RequestBody @Validated YHCategoryDto dto) {
|
|
return service.categoryList(dto);
|
}
|
|
@ApiOperation(value = "公司-智能体", notes = "公司-智能体")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHAgentVo.class)
|
})
|
@PostMapping(value = "/agentList")
|
public FebsResponse agentList(@RequestBody @Validated YHAgentDto dto) {
|
|
return service.agentList(dto);
|
}
|
|
@ApiOperation(value = "公司-智能体-查看详情", notes = "公司-智能体-查看详情")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHAgentInitVo.class)
|
})
|
@PostMapping(value = "/agentInfo")
|
public FebsResponse agentInfo(@RequestBody @Validated YHAgentInitDto dto) {
|
|
return service.agentInfo(dto);
|
}
|
|
@ApiOperation(value = "首页-智能体分类", notes = "首页-智能体分类")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHSysCategoryVo.class)
|
})
|
@PostMapping(value = "/categorySysList")
|
public FebsResponse categoryList(@RequestBody @Validated YHSysCategoryDto dto) {
|
|
return service.categorySysList(dto);
|
}
|
|
@ApiOperation(value = "首页-智能体", notes = "首页-智能体")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHSysAgentVo.class)
|
})
|
@PostMapping(value = "/agentSysList")
|
public FebsResponse agentList(@RequestBody @Validated YHSysAgentDto dto) {
|
|
return service.agentSysList(dto);
|
}
|
|
@ApiOperation(value = "首页-智能体-查看详情", notes = "首页-智能体-查看详情")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHSysAgentInitVo.class)
|
})
|
@PostMapping(value = "/agentSysInfo")
|
public FebsResponse agentSysInfo(@RequestBody @Validated YHSysAgentInitDto dto) {
|
|
return service.agentSysInfo(dto);
|
}
|
|
@ApiOperation(value = "退出", notes = "退出")
|
@PostMapping(value = "/logout")
|
public FebsResponse logout() {
|
|
return service.logout();
|
}
|
|
|
@ApiOperation(value = "初始化对话", notes = "初始化对话")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "success", response = YHSendInitVo.class)
|
})
|
@PostMapping(value = "/initSend", produces = "application/json")
|
public FebsResponse initSend(@RequestBody @Validated YHSendInitDto dto) {
|
|
return service.initSend(dto);
|
}
|
|
@ApiOperation(value = "保存对话消息", notes = "保存对话消息")
|
@PostMapping(value = "/saveContext")
|
public FebsResponse saveContext(@RequestBody @Validated YHSaveContextDto dto) {
|
|
return service.saveContext(dto);
|
}
|
|
|
@ApiOperation("AI回答(流式)")
|
@ApiResponses({
|
@ApiResponse(code = 200, message = "流式响应", response = YHAitalkItemStreamVo.class),
|
})
|
@PostMapping("/aiAnswer")
|
public Flux<FebsResponse> aiAnswer(@RequestBody @Validated YHAitalkItemStreamDto 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);
|
}
|
|
}
|