Administrator
2 days ago 89c8099e23ef5260ce6b3e46339064c559e9cc0f
src/main/java/cc/mrbird/febs/ai/controller/agent/ApiAgentController.java
@@ -1,8 +1,6 @@
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;
@@ -10,6 +8,7 @@
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;
@@ -18,6 +17,7 @@
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;
@@ -55,7 +55,7 @@
        return service.agentList(dto);
    }
    @ApiOperation(value = "初始化智能体", notes = "初始化智能体")
    @ApiOperation(value = "详情", notes = "详情")
    @ApiResponses({
            @ApiResponse(code = 200, message = "success", response = AiAgentInitVo.class)
    })
@@ -65,6 +65,35 @@
        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);
    }
}