Administrator
6 days ago 485c6557ae50afe6703c0b64169ce8eb634b1924
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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);
    }
 
}