Commit 0894277f authored by 何金镒's avatar 何金镒

异常处理

parent 3c009632
...@@ -2,8 +2,6 @@ package com.ikonke.konkeaialibabamcp.controller; ...@@ -2,8 +2,6 @@ package com.ikonke.konkeaialibabamcp.controller;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSON;
import cn.hutool.json.JSONArray; import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject; import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
...@@ -18,19 +16,16 @@ import com.ikonke.konkeaialibabamcp.service.cdc.CdcHttpUtils; ...@@ -18,19 +16,16 @@ import com.ikonke.konkeaialibabamcp.service.cdc.CdcHttpUtils;
import com.ikonke.konkeaialibabamcp.service.mysqlservice.ICDCTokenService; import com.ikonke.konkeaialibabamcp.service.mysqlservice.ICDCTokenService;
import com.ikonke.konkeaialibabamcp.utils.CcuUtils; import com.ikonke.konkeaialibabamcp.utils.CcuUtils;
import com.ikonke.konkeaialibabamcp.utils.WebSocketUtil; import com.ikonke.konkeaialibabamcp.utils.WebSocketUtil;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.reactive.function.client.WebClient; import org.springframework.web.reactive.function.client.WebClient;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.time.Duration; import java.time.Duration;
...@@ -155,10 +150,15 @@ public class DifyControllerV2 { ...@@ -155,10 +150,15 @@ public class DifyControllerV2 {
|| cleanedInput.equalsIgnoreCase("闭嘴") || cleanedInput.equalsIgnoreCase("不要说话")){ || cleanedInput.equalsIgnoreCase("闭嘴") || cleanedInput.equalsIgnoreCase("不要说话")){
res = String.format(res, "好的", true); res = String.format(res, "好的", true);
}else{ }else{
// 异步执行对话???? if (!webSocketUtil.getWebSocket(token.getSn())) {
log.error("未找到sn:{}的WebSocket连接,不处理对话1", token.getSn());
res = String.format(res, "网络异常,请检查网络", false);
}else{
// 异步执行对话
eventPublisher.publishEvent(new DifyChatSteamEvent(this,token.getSn(), cleanedInput)); eventPublisher.publishEvent(new DifyChatSteamEvent(this,token.getSn(), cleanedInput));
res = String.format(res, "正在思考中", false); res = String.format(res, "正在思考中", false);
} }
}
}else{ }else{
res = String.format(res, "未检查到输入", false); res = String.format(res, "未检查到输入", false);
} }
...@@ -184,7 +184,8 @@ public class DifyControllerV2 { ...@@ -184,7 +184,8 @@ public class DifyControllerV2 {
@GetMapping("/chatSteamMessages") @GetMapping("/chatSteamMessages")
public Flux<String> chatSteamMessages(@RequestParam(name = "query") String query, public Flux<String> chatSteamMessages(@RequestParam(name = "query") String query,
@RequestHeader("sn") String sn) throws UnsupportedEncodingException { @RequestHeader("sn") String sn) {
try {
log.info("【{}】:开始 流式 对话, query:{}",sn,query); log.info("【{}】:开始 流式 对话, query:{}",sn,query);
QueryWrapper<CDCToken> wrapper = new QueryWrapper<>(); QueryWrapper<CDCToken> wrapper = new QueryWrapper<>();
...@@ -228,12 +229,10 @@ public class DifyControllerV2 { ...@@ -228,12 +229,10 @@ public class DifyControllerV2 {
inputs.set("communityId",userEntity.getCommunityId()); inputs.set("communityId",userEntity.getCommunityId());
inputs.set("easId",userEntity.getEasId()); inputs.set("easId",userEntity.getEasId());
inputs.set("roomId",userEntity.getRoomInfo().getRoomId()); inputs.set("roomId",userEntity.getRoomInfo().getRoomId());
// inputs.set("roomName",userEntity.getRoomInfo().getRoomName());
inputs.set("roomName",URLEncoder.encode(userEntity.getRoomInfo().getRoomName(), StandardCharsets.UTF_8.name())); inputs.set("roomName",URLEncoder.encode(userEntity.getRoomInfo().getRoomName(), StandardCharsets.UTF_8.name()));
inputs.set("buildingId",userEntity.getRoomInfo().getBuildingId()); inputs.set("buildingId",userEntity.getRoomInfo().getBuildingId());
inputs.set("userPhone",userEntity.getPhoneNum()); inputs.set("userPhone",userEntity.getPhoneNum());
// inputs.set("userName",userEntity.getPhoneNum());
inputs.set("userName",URLEncoder.encode(userEntity.getNickName(), StandardCharsets.UTF_8.name())); inputs.set("userName",URLEncoder.encode(userEntity.getNickName(), StandardCharsets.UTF_8.name()));
inputs.set("today", DateUtil.today()); inputs.set("today", DateUtil.today());
...@@ -281,6 +280,10 @@ public class DifyControllerV2 { ...@@ -281,6 +280,10 @@ public class DifyControllerV2 {
log.info("异常输出:"+throwable.getMessage()); log.info("异常输出:"+throwable.getMessage());
return null; return null;
}); });
}catch (Exception e){
e.printStackTrace();
}
return Flux.just("服务器异常,稍后重试.");
} }
private String convertToCustomResponseAsync(DifyStreamResponse difyStreamResponse,String sn,String ccuName,String token,Object redis_conversationId) { private String convertToCustomResponseAsync(DifyStreamResponse difyStreamResponse,String sn,String ccuName,String token,Object redis_conversationId) {
......
...@@ -57,6 +57,14 @@ public class DifyChatSteamEventListener { ...@@ -57,6 +57,14 @@ public class DifyChatSteamEventListener {
.execute().body(); .execute().body();
log.info("dify请求返回11--->:{}",ai_result); log.info("dify请求返回11--->:{}",ai_result);
if(ai_result.contains("服务器异常")){
JSONObject json = new JSONObject();
json.set("msg", ai_result);
json.set("type", "other");
webSocketUtil.sendToSingle(event.getSn(), json.toString());
}
// ai_result = ai_result.replaceAll("\n", "##").trim(); // ai_result = ai_result.replaceAll("\n", "##").trim();
// log.info("dify请求返回22--->:{}",ai_result); // log.info("dify请求返回22--->:{}",ai_result);
// //
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment