diff --git a/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java b/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java index 191ec7e..5bb5670 100644 --- a/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java +++ b/vetti-admin/src/main/java/com/vetti/socket/ChatWebSocketHandler.java @@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.vetti.common.ai.elevenLabs.ElevenLabsClient; +import com.vetti.common.ai.gpt.ChatGPTClient; import com.vetti.common.ai.gpt.OpenAiStreamClient; import com.vetti.common.ai.gpt.service.OpenAiStreamListenerService; import com.vetti.common.ai.whisper.WhisperClient; @@ -145,7 +146,7 @@ public class ChatWebSocketHandler { String cacheResultText = cacheClientTts.get(clientId); log.info("面试者回答信息为:{}", cacheResultText); if (StrUtil.isEmpty(cacheResultText)) { - cacheResultText = "Hi."; + cacheResultText = "I am answering"; } String promptJson = ""; if("YES".equals(startFlag)) { @@ -294,27 +295,12 @@ public class ChatWebSocketHandler { cacheMsgMapData.put(session.getId(),""); } log.info("结束AI提示词为:{}",promptJson); - OpenAiStreamClient aiStreamClient = SpringUtils.getBean(OpenAiStreamClient.class); - aiStreamClient.streamChat(promptJson, new OpenAiStreamListenerService() { - @Override - public void onMessage(String content) { - log.info("返回AI结果:{}", content); - try { - //发送文件流数据 - session.getBasicRemote().sendText(content); - }catch (Exception e){ - e.printStackTrace(); - } - } - - @Override - public void onComplete() { - } - @Override - public void onError(Throwable throwable) { - throwable.printStackTrace(); - } - }); + ChatGPTClient gptClient = SpringUtils.getBean(ChatGPTClient.class); + String resultMsg = gptClient.handleAiChat(promptJson); + Map resultEntity = new HashMap<>(); + resultEntity.put("msg", resultMsg); + resultEntity.put("dataType","score"); + session.getBasicRemote().sendText(JSONUtil.toJsonStr(resultEntity)); } } } catch (Exception e) { diff --git a/vetti-common/src/main/java/com/vetti/common/ai/gpt/ChatGPTClient.java b/vetti-common/src/main/java/com/vetti/common/ai/gpt/ChatGPTClient.java index dc439ed..46189f5 100644 --- a/vetti-common/src/main/java/com/vetti/common/ai/gpt/ChatGPTClient.java +++ b/vetti-common/src/main/java/com/vetti/common/ai/gpt/ChatGPTClient.java @@ -1,5 +1,6 @@ package com.vetti.common.ai.gpt; +import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Value; @@ -71,11 +72,12 @@ public class ChatGPTClient { */ private String sendMessage(String prompt, String model,ObjectMapper objectMapper,HttpClient client,String role) throws IOException, InterruptedException { // 创建消息列表 - List> messages = new ArrayList<>(); - Map message = new HashMap<>(); - message.put("role", role); - message.put("content", prompt); - messages.add(message); + List messages = JSONUtil.toList(prompt, Map.class); + +// Map message = new HashMap<>(); +// message.put("role", role); +// message.put("content", prompt); +// messages.add(message); return sendChatRequest(messages, model, 0.7,objectMapper,client); } @@ -89,7 +91,7 @@ public class ChatGPTClient { * @throws IOException 网络或IO异常 * @throws InterruptedException 线程中断异常 */ - private String sendChatRequest(List> messages, String model, double temperature,ObjectMapper objectMapper,HttpClient client) + private String sendChatRequest(List messages, String model, double temperature,ObjectMapper objectMapper,HttpClient client) throws IOException, InterruptedException { // 构建请求体 Map requestBody = new HashMap<>();