diff --git a/src/main/java/com/peanut/common/utils/RagFlowApiUtil.java b/src/main/java/com/peanut/common/utils/RagFlowApiUtil.java index 7aedf54d..e9e34943 100644 --- a/src/main/java/com/peanut/common/utils/RagFlowApiUtil.java +++ b/src/main/java/com/peanut/common/utils/RagFlowApiUtil.java @@ -3,6 +3,7 @@ package com.peanut.common.utils; import com.alibaba.fastjson.JSONObject; import com.peanut.modules.common.entity.AiChatContent; import com.peanut.modules.common.service.AiChatContentService; +import org.apache.commons.lang.StringUtils; import org.apache.http.Consts; import org.apache.http.HttpEntity; import org.apache.http.client.methods.CloseableHttpResponse; @@ -63,32 +64,43 @@ public class RagFlowApiUtil { //聊天助手下对话列表 public List> getChats(Map params) throws Exception{ CloseableHttpClient httpClient = HttpClients.createDefault(); - String chatId = params.get("chatId").toString(); - String page = params.get("page").toString(); - String pageSize = params.get("pageSize").toString(); - String sessionId = params.get("sessionId").toString(); - HttpGet get = new HttpGet(url+"/api/v1/chats/"+chatId+"/sessions?" + - "page="+page+"&page_size="+pageSize+"&id="+sessionId+"&user_id="+ShiroUtils.getUId()); - get.setHeader("Authorization", authorization); - get.setHeader("Content-Type", "application/json;chartset=utf-8"); - CloseableHttpResponse response = httpClient.execute(get); - int statusCode = response.getStatusLine().getStatusCode(); - if (statusCode >= 400) { - throw new RuntimeException("API调用失败,状态码:" + statusCode); + String id = params.get("chatId").toString(); + List chatIds = new ArrayList<>(); + if (StringUtils.isEmpty(id)){ + List> assistants = getChatAssistants(""); + for (Map map:assistants) { + chatIds.add(map.get("id").toString()); + } + }else { + chatIds.add(id); } - HttpEntity responseEntity = response.getEntity(); - String responseString = EntityUtils.toString(responseEntity, Consts.UTF_8); - JSONObject jsonObject = JSONObject.parseObject(responseString); List> list = new ArrayList(); - if ("0".equals(jsonObject.get("code").toString())){ - List l = jsonObject.getJSONArray("data"); - for (Object o : l) { - Map map = new HashMap<>(); - Map m = (Map)o; - map.put("id",m.get("id")); - map.put("name",m.get("name")); - map.put("messages",m.get("messages")); - list.add(map); + for (String chatId : chatIds){ + String page = params.get("page").toString(); + String pageSize = params.get("pageSize").toString(); + String sessionId = params.get("sessionId").toString(); + HttpGet get = new HttpGet(url+"/api/v1/chats/"+chatId+"/sessions?" + + "page="+page+"&page_size="+pageSize+"&id="+sessionId+"&user_id="+ShiroUtils.getUId()); + get.setHeader("Authorization", authorization); + get.setHeader("Content-Type", "application/json;chartset=utf-8"); + CloseableHttpResponse response = httpClient.execute(get); + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode >= 400) { + throw new RuntimeException("API调用失败,状态码:" + statusCode); + } + HttpEntity responseEntity = response.getEntity(); + String responseString = EntityUtils.toString(responseEntity, Consts.UTF_8); + JSONObject jsonObject = JSONObject.parseObject(responseString); + if ("0".equals(jsonObject.get("code").toString())){ + List l = jsonObject.getJSONArray("data"); + for (Object o : l) { + Map map = new HashMap<>(); + Map m = (Map)o; + map.put("id",m.get("id")); + map.put("name",m.get("name")); + map.put("messages",m.get("messages")); + list.add(map); + } } } return list;