Commit 20657ccaf36b1b261447d1d5d77435df743e7760

Authored by YunaiV
1 parent c5aab1ae

【新增】AI:聊天对话的更新模型

yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/chat/AiChatMessageController.java
@@ -18,24 +18,21 @@ import java.util.List; @@ -18,24 +18,21 @@ import java.util.List;
18 18
19 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; 19 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
20 20
21 -// TODO @芋艿:权限标识;  
22 @Tag(name = "管理后台 - 聊天消息") 21 @Tag(name = "管理后台 - 聊天消息")
23 @RestController 22 @RestController
24 @RequestMapping("/ai/chat/message") 23 @RequestMapping("/ai/chat/message")
25 @Slf4j 24 @Slf4j
26 public class AiChatMessageController { 25 public class AiChatMessageController {
  26 +
27 @Resource 27 @Resource
28 private AiChatService chatService; 28 private AiChatService chatService;
29 29
30 @Operation(summary = "发送消息(段式)", description = "一次性返回,响应较慢") 30 @Operation(summary = "发送消息(段式)", description = "一次性返回,响应较慢")
31 @PostMapping("/send") 31 @PostMapping("/send")
32 public CommonResult<AiChatMessageRespVO> sendMessage(@Validated @RequestBody AiChatMessageSendReqVO sendReqVO) { 32 public CommonResult<AiChatMessageRespVO> sendMessage(@Validated @RequestBody AiChatMessageSendReqVO sendReqVO) {
33 - // TODO done @fan:使用 static import;这样就 success 就行了;  
34 return success(chatService.chat(sendReqVO)); 33 return success(chatService.chat(sendReqVO));
35 } 34 }
36 35
37 - // TODO @芋艿:调用这个方法异常,Unable to handle the Spring Security Exception because the response is already committed.;可以再试试  
38 - // TODO @fan:要不要使用 Flux 来返回;可以使用 Flux<AiChatMessageRespVO>  
39 @Operation(summary = "发送消息(流式)", description = "流式返回,响应较快") 36 @Operation(summary = "发送消息(流式)", description = "流式返回,响应较快")
40 @PostMapping(value = "/send-stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE) 37 @PostMapping(value = "/send-stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
41 @PermitAll // 解决 SSE 最终响应的时候,会被 Access Denied 拦截的问题 38 @PermitAll // 解决 SSE 最终响应的时候,会被 Access Denied 拦截的问题
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/chat/vo/conversation/AiChatConversationRespVO.java
@@ -32,11 +32,15 @@ public class AiChatConversationRespVO implements VO { @@ -32,11 +32,15 @@ public class AiChatConversationRespVO implements VO {
32 private Long roleId; 32 private Long roleId;
33 33
34 @Schema(description = "模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 34 @Schema(description = "模型编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  35 + @Trans(type = TransType.SIMPLE, target = AiChatModelDO.class, fields = "name", ref = "modelName")
35 private Long modelId; 36 private Long modelId;
36 37
37 @Schema(description = "模型标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "ERNIE-Bot-turbo-0922") 38 @Schema(description = "模型标志", requiredMode = Schema.RequiredMode.REQUIRED, example = "ERNIE-Bot-turbo-0922")
38 private String model; 39 private String model;
39 40
  41 + @Schema(description = "模型名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
  42 + private String modelName;
  43 +
40 @Schema(description = "角色设定", example = "一个快乐的程序员") 44 @Schema(description = "角色设定", example = "一个快乐的程序员")
41 private String systemMessage; 45 private String systemMessage;
42 46