package admin.service.impl; import admin.model.MaxKbChatReq; import admin.model.SendSseModel; import admin.model.WebSocketModel; import admin.model.maxdb.MaxdbScreenConfig; import admin.model.maxdb.MaxdbZkhjConfig; import admin.model.maxdb.req.MaxdbReq; import admin.modules.chatgpt.service.ChatgptRoleRecordsService; import admin.resp.ApiResponse; import admin.service.MaxkbOpenApiService; import admin.util.HttpUtil; import admin.util.WebSocketUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.websocket.Session; /** * @author lj * @date 2025/2/24 11:11 */ @Slf4j @Service @RequiredArgsConstructor public class MaxkbOpenApiServiceImpl implements MaxkbOpenApiService { private final MaxdbZkhjConfig maxdbConfig; private final MaxdbScreenConfig maxdbScreenConfig; private final ChatgptRoleRecordsService chatgptRoleRecordsService; @Override public ApiResponse<Object> getMaxkbSessionId(String applicationId) { String data = HttpUtil.get(String.format(maxdbScreenConfig.getChatUrl(),applicationId),maxdbScreenConfig.getApiKey()); return JSONObject.parseObject(data, ApiResponse.class); } @Override public void chatCompletions(MaxKbChatReq maxKbChatReq) { MaxdbReq maxdbReq = new MaxdbReq(); maxdbReq.setMessage(maxKbChatReq.getMessage()); maxKbChatReq.setMaxkbTalkUrl(String.format(maxdbScreenConfig.getTalkUrl(),maxKbChatReq.getChatId())); maxKbChatReq.setMaxkbApiKey(maxdbScreenConfig.getApiKey()); // WebSocketModel webSocketModel = JSONObject.parseObject(message, WebSocketModel.class); HttpUtil.postCallBackStream(String.format(maxdbScreenConfig.getTalkUrl(),maxKbChatReq.getChatId()), maxdbReq, maxdbScreenConfig.getApiKey(),maxKbChatReq,chatgptRoleRecordsService); } @Override public void talk( SendSseModel sendSseModel) { // if (message.contains("中科")){ // // }else if (message.contains("大屏")){ // // }else if (message.contains("分析")){ // // }else{ // } ApiResponse<Object> maxkbSessionId = getMaxkbSessionId(maxdbScreenConfig.getApplicationId()); MaxKbChatReq maxKbChatReq= new MaxKbChatReq(); maxKbChatReq.setMessage(sendSseModel.getMessage()); maxKbChatReq.setChatId(String.valueOf(maxkbSessionId.getData())); maxKbChatReq.setSessionId(sendSseModel.getSessionId()); maxKbChatReq.setUserName(sendSseModel.getUserName()); maxKbChatReq.setShowType(sendSseModel.getShowType()); maxKbChatReq.setClient(sendSseModel.isH5() ? WebSocketUtil.H5 : WebSocketUtil.web); maxKbChatReq.setSession(sendSseModel.getSeesion()); chatCompletions(maxKbChatReq); } }