Browse Source

1.处理客户进线对话时,ai不进行回复问题

jzp 4 weeks ago
parent
commit
bb7101f671

+ 15 - 9
fs-service/src/main/java/com/fs/fastGpt/service/impl/AiHookServiceImpl.java

@@ -652,10 +652,10 @@ public class AiHookServiceImpl implements AiHookService {
                 if (result.isLongText()){
                     //新增用户信息
                     addUserInfo(contentKh, qwExternalContacts.getId(),fastGptChatSession);
-                    //发送图片消息
-                    sendImgMsg(contentKh,sender,uid,serverId);
 
                     if(isNewVersion){
+                        //发送图片消息
+                        sendImgMsg(contentKh,sender,uid,serverId);
                         sendAiMsg(content,sender,uid,serverId);
                     } else {
                         if (type==16){
@@ -677,10 +677,10 @@ public class AiHookServiceImpl implements AiHookService {
                     List<String> countList = countString(content);
                     //新增用户信息
                     addUserInfo(contentKh, qwExternalContacts.getId(),fastGptChatSession);
-                    //发送图片消息
-                    sendImgMsg(contentKh,sender,uid,serverId);
                     for (String msg : countList) {
                         if(isNewVersion){
+                            //发送图片消息
+                            sendImgMsg(contentKh,sender,uid,serverId);
                             sendAiMsg(msg,sender,uid,serverId);
                         } else {
                             if (type==16){
@@ -1706,9 +1706,12 @@ public class AiHookServiceImpl implements AiHookService {
     private void addPromptWordNew(List<ChatParam.Message> messageList,String count,Long extId,FastGptRole role,FastGptChatSession fastGptChatSession){
 
         FastGptChatConversation conversation = new FastGptChatConversation();
-        conversation.setAiInfo(new com.alibaba.fastjson.JSONObject());
         conversation.setUserInfo(new com.alibaba.fastjson.JSONObject());
-        conversation.setHistory(new com.alibaba.fastjson.JSONObject());
+        conversation.setHistory(new com.alibaba.fastjson.JSONArray());
+
+        if(role.getReminderWords() != null && !role.getReminderWords().isEmpty()){
+            conversation.setAiInfo(role.getReminderWords());
+        }
 
         //组装客户信息
         String sessionUserInfo = fastGptChatSession.getUserInfo();
@@ -1739,7 +1742,7 @@ public class AiHookServiceImpl implements AiHookService {
 
         List<FastGptChatMsg> msgs=fastGptChatMsgService.selectFastGptChatMsgByMsgSessionIdAndExtId(fastGptChatSession.getSessionId(),extId);
         if (!msgs.isEmpty()){
-            com.alibaba.fastjson.JSONObject history = conversation.getHistory();
+            com.alibaba.fastjson.JSONArray historyArray = new com.alibaba.fastjson.JSONArray();
             Collections.reverse(msgs);
             msgs.remove(msgs.size() - 1);
             for (FastGptChatMsg msg : msgs) {
@@ -1750,9 +1753,12 @@ public class AiHookServiceImpl implements AiHookService {
                         continue;
                     }
                 }
-                history.put(sendType==1?"user":"ai",content);
+                com.alibaba.fastjson.JSONObject msgObj = new com.alibaba.fastjson.JSONObject();
+                msgObj.put("role", sendType==1?"user":"ai");
+                msgObj.put("content", content);
+                historyArray.add(msgObj);
             }
-            conversation.setHistory(history);
+            conversation.setHistory(historyArray);
         }
 
         if (count!=null&& !count.isEmpty()){