Commit 0168ad19 authored by luojun's avatar luojun

对话记录优化

parent e007eca7
...@@ -12,13 +12,19 @@ import admin.util.WebConnectUtil; ...@@ -12,13 +12,19 @@ import admin.util.WebConnectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.yulichang.toolkit.SpringContentUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import lombok.NoArgsConstructor;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows; import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import okhttp3.Response; import okhttp3.Response;
import okhttp3.ResponseBody; import okhttp3.ResponseBody;
import okhttp3.sse.EventSource; import okhttp3.sse.EventSource;
import okhttp3.sse.EventSourceListener; import okhttp3.sse.EventSourceListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.websocket.Session; import javax.websocket.Session;
...@@ -40,22 +46,13 @@ public class DeepSeekAiListener extends EventSourceListener { ...@@ -40,22 +46,13 @@ public class DeepSeekAiListener extends EventSourceListener {
private Session session; private Session session;
private String sessionId; private String sessionId;
private String userName; private String userName;
private static TextToSpeechService textToSpeechService; private ChatgptRoleRecordsService chatgptRoleRecordsService;
private static ChatgptRoleRecordsService chatgptRoleRecordsService;
@Resource public DeepSeekAiListener(Session session,String sessionId,String userName,ChatgptRoleRecordsService chatgptRoleRecordsService) {
public static void setTextToSpeechService(TextToSpeechService textToSpeechService){
DeepSeekAiListener.textToSpeechService = textToSpeechService;
}
@Resource
public static void setChatgptRoleRecordsService(ChatgptRoleRecordsService chatgptRoleRecordsService){
DeepSeekAiListener.chatgptRoleRecordsService = chatgptRoleRecordsService;
}
public DeepSeekAiListener(Session session,String sessionId,String userName) {
this.session = session; this.session = session;
this.userName = userName; this.userName = userName;
this.sessionId = sessionId; this.sessionId = sessionId;
this.chatgptRoleRecordsService = chatgptRoleRecordsService;
} }
@Override @Override
......
...@@ -43,7 +43,7 @@ public class DeepSeekOpenApiServiceImpl implements DeepSeekOpenApiService { ...@@ -43,7 +43,7 @@ public class DeepSeekOpenApiServiceImpl implements DeepSeekOpenApiService {
.addHeader("Accept", "application/json") .addHeader("Accept", "application/json")
.addHeader("Authorization", "Bearer zkhjdpQ8") .addHeader("Authorization", "Bearer zkhjdpQ8")
.build(); .build();
DeepSeekAiListener deepSeekAiListener = new DeepSeekAiListener(null,null,null); DeepSeekAiListener deepSeekAiListener = new DeepSeekAiListener(null,null,null,null);
// OkHttpClient okHttpClient = new OkHttpClient.Builder() // OkHttpClient okHttpClient = new OkHttpClient.Builder()
// .connectTimeout(1, TimeUnit.MINUTES) // .connectTimeout(1, TimeUnit.MINUTES)
// .readTimeout(1, TimeUnit.MINUTES) // .readTimeout(1, TimeUnit.MINUTES)
......
...@@ -5,6 +5,7 @@ import admin.model.WebSocketModel; ...@@ -5,6 +5,7 @@ import admin.model.WebSocketModel;
import admin.model.maxdb.MaxdbScreenConfig; import admin.model.maxdb.MaxdbScreenConfig;
import admin.model.maxdb.MaxdbZkhjConfig; import admin.model.maxdb.MaxdbZkhjConfig;
import admin.model.maxdb.req.MaxdbReq; import admin.model.maxdb.req.MaxdbReq;
import admin.modules.chatgpt.service.ChatgptRoleRecordsService;
import admin.resp.ApiResponse; import admin.resp.ApiResponse;
import admin.service.MaxkbOpenApiService; import admin.service.MaxkbOpenApiService;
import admin.util.HttpUtil; import admin.util.HttpUtil;
...@@ -27,6 +28,7 @@ public class MaxkbOpenApiServiceImpl implements MaxkbOpenApiService { ...@@ -27,6 +28,7 @@ public class MaxkbOpenApiServiceImpl implements MaxkbOpenApiService {
private final MaxdbZkhjConfig maxdbConfig; private final MaxdbZkhjConfig maxdbConfig;
private final MaxdbScreenConfig maxdbScreenConfig; private final MaxdbScreenConfig maxdbScreenConfig;
private final ChatgptRoleRecordsService chatgptRoleRecordsService;
@Override @Override
public ApiResponse<Object> getMaxkbSessionId(String applicationId) { public ApiResponse<Object> getMaxkbSessionId(String applicationId) {
...@@ -39,7 +41,7 @@ public class MaxkbOpenApiServiceImpl implements MaxkbOpenApiService { ...@@ -39,7 +41,7 @@ public class MaxkbOpenApiServiceImpl implements MaxkbOpenApiService {
MaxdbReq maxdbReq = new MaxdbReq(); MaxdbReq maxdbReq = new MaxdbReq();
maxdbReq.setMessage(message); maxdbReq.setMessage(message);
// WebSocketModel webSocketModel = JSONObject.parseObject(message, WebSocketModel.class); // WebSocketModel webSocketModel = JSONObject.parseObject(message, WebSocketModel.class);
HttpUtil.postCallBackStream(String.format(maxdbScreenConfig.getTalkUrl(),chatId), maxdbReq, maxdbScreenConfig.getApiKey(),session,sessionId,userName); HttpUtil.postCallBackStream(String.format(maxdbScreenConfig.getTalkUrl(),chatId), maxdbReq, maxdbScreenConfig.getApiKey(),session,sessionId,userName,chatgptRoleRecordsService);
} }
@Override @Override
......
package admin.util; package admin.util;
import admin.listener.DeepSeekAiListener; import admin.listener.DeepSeekAiListener;
import admin.modules.chatgpt.service.ChatgptRoleRecordsService;
import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import okhttp3.*; import okhttp3.*;
import okhttp3.sse.EventSource; import okhttp3.sse.EventSource;
import okhttp3.sse.EventSources; import okhttp3.sse.EventSources;
import org.springframework.context.ApplicationContext;
import javax.websocket.Session; import javax.websocket.Session;
import java.io.IOException; import java.io.IOException;
...@@ -34,7 +36,7 @@ public class HttpUtil { ...@@ -34,7 +36,7 @@ public class HttpUtil {
} }
public static void postCallBackStream(String url, Object data, String apiKey, Session session,String sessionId,String userName){ public static void postCallBackStream(String url, Object data, String apiKey, Session session, String sessionId, String userName, ChatgptRoleRecordsService chatgptRoleRecordsService){
OkHttpClient okHttpClient = new OkHttpClient().newBuilder().build(); OkHttpClient okHttpClient = new OkHttpClient().newBuilder().build();
// RequestBody body = RequestBody.create(MediaType.parse("application/json"), data); // RequestBody body = RequestBody.create(MediaType.parse("application/json"), data);
Request request = null; Request request = null;
...@@ -51,6 +53,6 @@ public class HttpUtil { ...@@ -51,6 +53,6 @@ public class HttpUtil {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
EventSource.Factory factory = EventSources.createFactory(okHttpClient); EventSource.Factory factory = EventSources.createFactory(okHttpClient);
factory.newEventSource(request,new DeepSeekAiListener(session,sessionId,userName)); factory.newEventSource(request,new DeepSeekAiListener(session,sessionId,userName,chatgptRoleRecordsService));
} }
} }
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