xucaiqin hai 3 semanas
pai
achega
5a9fb2fb18

+ 20 - 0
sckw-ai-biz/src/main/java/com/sckw/ai/biz/pojo/para/ChatInputsPara.java

@@ -0,0 +1,20 @@
+package com.sckw.ai.biz.pojo.para;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Getter
+@Setter
+@Schema(description = "聊天参数")
+public class ChatInputsPara implements Serializable {
+    @Serial
+    private static final long serialVersionUID = -621415158285036877L;
+
+    @Schema(description = "用户id", hidden = true)
+    private String userId;
+
+}

+ 1 - 2
sckw-ai-biz/src/main/java/com/sckw/ai/biz/pojo/para/ChatPara.java

@@ -1,6 +1,5 @@
 package com.sckw.ai.biz.pojo.para;
 
-import com.alibaba.fastjson.JSONObject;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.sckw.ai.biz.pojo.FilesItem;
 import io.swagger.v3.oas.annotations.media.Schema;
@@ -19,7 +18,7 @@ public class ChatPara implements Serializable {
     @Serial
     private static final long serialVersionUID = -621415158085036877L;
     @Schema(description = "允许传入 App 定义的各变量值", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
-    private JSONObject inputs;
+    private ChatInputsPara inputs;
 
     @Schema(description = "会话id,需要基于之前的聊天记录继续对话,必须传之前消息的 conversation_id", requiredMode = Schema.RequiredMode.NOT_REQUIRED)
     @JsonProperty("conversation_id")

+ 5 - 2
sckw-ai-biz/src/main/java/com/sckw/ai/biz/service/AiApiInvoker.java

@@ -1,5 +1,6 @@
 package com.sckw.ai.biz.service;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.sckw.ai.biz.config.ChatProperties;
 import com.sckw.ai.biz.core.exception.BusinessException;
@@ -57,8 +58,10 @@ public class AiApiInvoker {
         try {
             switch (method) {
                 case "GET" -> {
-                    for (Map.Entry<String, String> map : para.entrySet()) {
-                        builder.addPara(map.getKey(), map.getValue());
+                    if(CollUtil.isNotEmpty(para)){
+                        for (Map.Entry<String, String> map : para.entrySet()) {
+                            builder.addPara(map.getKey(), map.getValue());
+                        }
                     }
                     return builder.get().sync();
                 }

+ 4 - 3
sckw-ai-biz/src/main/java/com/sckw/ai/biz/service/ChatService.java

@@ -11,6 +11,7 @@ import com.sckw.ai.biz.core.web.LoginUserHolder;
 import com.sckw.ai.biz.pojo.ConversionVo;
 import com.sckw.ai.biz.pojo.dto.ApiPage;
 import com.sckw.ai.biz.pojo.dto.ConversionDto;
+import com.sckw.ai.biz.pojo.para.ChatInputsPara;
 import com.sckw.ai.biz.pojo.para.ChatPara;
 import com.sckw.ai.biz.pojo.para.ConversionPara;
 import com.sckw.ai.biz.pojo.para.StopChatPara;
@@ -53,9 +54,9 @@ public class ChatService {
             throw new BusinessException("未登录,请先登录");
         }
         chatPara.setUser(String.valueOf(userId));
-        JSONObject jsonObject = new JSONObject();
-        jsonObject.put("userId",userId);
-        chatPara.setInputs(jsonObject);
+        ChatInputsPara chatInputsPara = new ChatInputsPara();
+        chatInputsPara.setUserId(String.valueOf(userId));
+        chatPara.setInputs(chatInputsPara);
         log.info("开启会话 {}", JSONObject.toJSONString(chatPara));
         return webClient.post().uri(AiApiEnum.NEW_CHAT.getUrl()) // 后端 SSE 路径
                 .bodyValue(chatPara)