diff --git a/src/main/java/com/nanyan/securitylink/common/Constant.java b/src/main/java/com/nanyan/securitylink/common/Constant.java index db84f13d6846a2ec22334ac65ebed31d609ca830..0a2c2b941fa5fac58d11e81826a54e2bbdee979b 100644 --- a/src/main/java/com/nanyan/securitylink/common/Constant.java +++ b/src/main/java/com/nanyan/securitylink/common/Constant.java @@ -5,6 +5,8 @@ public interface Constant { int picType = 1; int textType = 0; String ACCOUNT = "account"; + String MODEL = "model"; + String MODEL_KEY = "modelKey"; int SUCCESS_STATUS = 200; String WEATHER_GROUP = "weatherType"; String ADMIN_ROLE = "admin"; diff --git a/src/main/java/com/nanyan/securitylink/config/WebConfig.java b/src/main/java/com/nanyan/securitylink/config/WebConfig.java index ff269205c48849f6a5d9f89d3d051af10023cf06..a538c6fe106f7c1ea315a1f80931222f5e60d1e7 100644 --- a/src/main/java/com/nanyan/securitylink/config/WebConfig.java +++ b/src/main/java/com/nanyan/securitylink/config/WebConfig.java @@ -16,10 +16,12 @@ public class WebConfig extends WebMvcConfigurationSupport { private LoginInterceptor loginInterceptor; @Resource LogResponseTimeInterceptor logResponseTimeInterceptor; + @Resource + HeaderInterceptor headerInterceptor; @Override protected void addInterceptors(InterceptorRegistry registry) { -// + registry.addInterceptor(headerInterceptor); registry.addInterceptor(loginInterceptor); registry.addInterceptor(logResponseTimeInterceptor); super.addInterceptors(registry); diff --git a/src/main/java/com/nanyan/securitylink/dto/TranslateInputDTO.java b/src/main/java/com/nanyan/securitylink/dto/TranslateInputDTO.java index 26e7576c09342df9dc6fffbe42dfe93c4217cde7..21328521aa10921d8216f0c6df4565efd9deef77 100644 --- a/src/main/java/com/nanyan/securitylink/dto/TranslateInputDTO.java +++ b/src/main/java/com/nanyan/securitylink/dto/TranslateInputDTO.java @@ -5,5 +5,6 @@ import lombok.Data; @Data public class TranslateInputDTO { String record_json; + String msg_info; String language; } diff --git a/src/main/java/com/nanyan/securitylink/entity/UserHeader.java b/src/main/java/com/nanyan/securitylink/entity/UserHeader.java index aebdc94d335d2291f102ab8a26287799ecb28f76..c9cea41d4d0134918d993bd50439ee4b858f44cd 100644 --- a/src/main/java/com/nanyan/securitylink/entity/UserHeader.java +++ b/src/main/java/com/nanyan/securitylink/entity/UserHeader.java @@ -1,40 +1,9 @@ package com.nanyan.securitylink.entity; -public class UserHeader { - String userId; - String accountName; - String role; - String token; - - public String getToken() { - return token; - } - - public void setToken(String token) { - this.token = token; - } - - public String getUserId() { - return userId; - } - - public void setUserId(String userId) { - this.userId = userId; - } +import lombok.Data; - public String getAccountName() { - return accountName; - } - - public void setAccountName(String accountName) { - this.accountName = accountName; - } - - public String getRole() { - return role; - } - - public void setRole(String role) { - this.role = role; - } +@Data +public class UserHeader { + String model; + String modelKey; } diff --git a/src/main/java/com/nanyan/securitylink/interceptor/HeaderInterceptor.java b/src/main/java/com/nanyan/securitylink/interceptor/HeaderInterceptor.java index defd26f5604afc2d00a77ec18e4b5c18d8b796c3..ba37e25183476182a54d338c6e788a47d292fa55 100644 --- a/src/main/java/com/nanyan/securitylink/interceptor/HeaderInterceptor.java +++ b/src/main/java/com/nanyan/securitylink/interceptor/HeaderInterceptor.java @@ -5,6 +5,7 @@ import com.nanyan.securitylink.common.MsgCode; import com.nanyan.securitylink.entity.UserHeader; import com.nanyan.securitylink.entity.UserThreadLocal; import com.nanyan.securitylink.execption.HeaderException; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; import org.springframework.web.servlet.HandlerInterceptor; @@ -14,19 +15,21 @@ import javax.servlet.http.HttpServletResponse; import java.util.Base64; +@Slf4j @Component public class HeaderInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { try{ - String accountName = getHeader(request, Constant.ACCOUNT); + String model = getHeader(request, Constant.MODEL); + String modelKey = getHeader(request, Constant.MODEL_KEY); UserHeader userHeader = new UserHeader(); - userHeader.setAccountName(accountName); + userHeader.setModel(model); + userHeader.setModelKey(modelKey); UserThreadLocal.set(userHeader); }catch (Exception e){ - e.printStackTrace(); - throw new HeaderException(MsgCode.LOGIN_FAILED); + log.info("", e); } return true; @@ -41,8 +44,6 @@ public class HeaderInterceptor implements HandlerInterceptor { if(StringUtils.isEmpty(value)){ return ""; } - byte[] decodedBytes = Base64.getDecoder().decode(value); - value = new String(decodedBytes); return value; } } diff --git a/src/main/java/com/nanyan/securitylink/interceptor/LogResponseTimeInterceptor.java b/src/main/java/com/nanyan/securitylink/interceptor/LogResponseTimeInterceptor.java index bef6eda9bc01d23c927608d93beb140fefd32771..27d5ce9c8f0923712c8d14f2b42b138c248a899d 100644 --- a/src/main/java/com/nanyan/securitylink/interceptor/LogResponseTimeInterceptor.java +++ b/src/main/java/com/nanyan/securitylink/interceptor/LogResponseTimeInterceptor.java @@ -31,10 +31,10 @@ public class LogResponseTimeInterceptor implements HandlerInterceptor { // System.out.println("接å£è€—时:" + time + "ms"); String requestURI = request.getRequestURI(); UserHeader userHeader = UserThreadLocal.get(); - String accountName = ""; + String model = ""; if(userHeader != null){ - accountName = UserThreadLocal.get().getAccountName(); - logger.info("account:{} 接å£{}耗时{} ms", accountName,requestURI, time); + model = UserThreadLocal.get().getModel(); + logger.info("model:{} 接å£{}耗时{} ms", model,requestURI, time); }else { logger.info("接å£{}耗时{} ms",requestURI, time); } diff --git a/src/main/java/com/nanyan/securitylink/interceptor/LoginInterceptor.java b/src/main/java/com/nanyan/securitylink/interceptor/LoginInterceptor.java index 0ed540daa1c25edf2b3367d59706db6bf9888eed..5934e3a572713c96ac0788107a5d8f2424e6e020 100644 --- a/src/main/java/com/nanyan/securitylink/interceptor/LoginInterceptor.java +++ b/src/main/java/com/nanyan/securitylink/interceptor/LoginInterceptor.java @@ -11,10 +11,7 @@ import java.io.IOException; @Component public class LoginInterceptor implements HandlerInterceptor { @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException { - String uri = request.getRequestURI(); - - String token = request.getHeader("token"); // 从请求头ä¸èŽ·å– token + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { return true; } } diff --git a/src/main/java/com/nanyan/securitylink/service/impl/DeepSeekAIServiceImpl.java b/src/main/java/com/nanyan/securitylink/service/impl/DeepSeekAIServiceImpl.java index 943f82b102bf9255c80b518f51be66f989832df9..e3990534f814f84dbb78ffc6e483bc35b2209aad 100644 --- a/src/main/java/com/nanyan/securitylink/service/impl/DeepSeekAIServiceImpl.java +++ b/src/main/java/com/nanyan/securitylink/service/impl/DeepSeekAIServiceImpl.java @@ -6,9 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.nanyan.securitylink.common.MsgCode; import com.nanyan.securitylink.config.AppConfig; import com.nanyan.securitylink.dto.TranslateDTO; -import com.nanyan.securitylink.entity.ChatCompletionResponse; -import com.nanyan.securitylink.entity.ChatInputData; -import com.nanyan.securitylink.entity.Message; +import com.nanyan.securitylink.entity.*; import com.nanyan.securitylink.execption.BaseException; import com.nanyan.securitylink.service.AIService; import com.nanyan.securitylink.vo.AIResponse; @@ -89,7 +87,12 @@ public class DeepSeekAIServiceImpl implements AIService { ChatInputData chatInputData = new ChatInputData(); buildTranslate(chatInputData, translateDTO); - ChatCompletionResponse chatCompletionResponse = aiRequest(chatInputData, appConfig.getApiTranslateKey()); + UserHeader userHeader = UserThreadLocal.get(); + String apiKey = appConfig.getApiTranslateKey(); + if(StringUtils.isNotEmpty(userHeader.getModelKey())){ + apiKey = userHeader.getModelKey(); + } + ChatCompletionResponse chatCompletionResponse = aiRequest(chatInputData, apiKey); if (CollectionUtils.isNotEmpty(chatCompletionResponse.getChoices())) { AIResponse aiResponse = new AIResponse(); @@ -103,7 +106,12 @@ public class DeepSeekAIServiceImpl implements AIService { ChatInputData chatInputData = new ChatInputData(); buildNewsTag(chatInputData, translateDTO); - ChatCompletionResponse chatCompletionResponse = aiRequest(chatInputData, appConfig.getApiTranslateKey()); + UserHeader userHeader = UserThreadLocal.get(); + String apiKey = appConfig.getApiTranslateKey(); + if(StringUtils.isNotEmpty(userHeader.getModelKey())){ + apiKey = userHeader.getModelKey(); + } + ChatCompletionResponse chatCompletionResponse = aiRequest(chatInputData, apiKey); if (CollectionUtils.isNotEmpty(chatCompletionResponse.getChoices())) { AIResponse aiResponse = new AIResponse(); @@ -129,7 +137,12 @@ public class DeepSeekAIServiceImpl implements AIService { } private void buildNewsTag(ChatInputData chatInputData, TranslateDTO translateDTO) { - chatInputData.setModel("deepseek-v3-250324"); + UserHeader userHeader = UserThreadLocal.get(); + if(StringUtils.isNotEmpty(userHeader.getModel())){ + chatInputData.setModel(userHeader.getModel()); + }else { + chatInputData.setModel("deepseek-v3-250324"); + } chatInputData.setStream(false); List<Message> messages = new ArrayList<>(); chatInputData.setMessages(messages); @@ -147,7 +160,7 @@ public class DeepSeekAIServiceImpl implements AIService { } catch (JsonProcessingException e) { throw new BaseException(MsgCode.JSON_ERROR); } - log.info("translate json:{}", writeValueAsString); + log.info("json:{}", writeValueAsString); HttpEntity header = getHeader(apiKey); HttpEntity<String> entity = new HttpEntity<>(writeValueAsString, header.getHeaders()); ResponseEntity<ChatCompletionResponse> response = restTemplate.postForEntity(DEEP_SEEK_URL, entity, ChatCompletionResponse.class); @@ -159,7 +172,12 @@ public class DeepSeekAIServiceImpl implements AIService { } private void buildTranslate(ChatInputData chatInputData, TranslateDTO translateDTO) { - chatInputData.setModel("deepseek-v3-250324"); + UserHeader userHeader = UserThreadLocal.get(); + if(StringUtils.isNotEmpty(userHeader.getModel())){ + chatInputData.setModel(userHeader.getModel()); + }else { + chatInputData.setModel("deepseek-v3-250324"); + } chatInputData.setStream(false); List<Message> messages = new ArrayList<>(); chatInputData.setMessages(messages); @@ -187,7 +205,7 @@ public class DeepSeekAIServiceImpl implements AIService { private static Message getUserTagDeepSeekMessage(TranslateDTO translateDTO) { Message userRole = new Message(); userRole.setRole("user"); - userRole.setContent(translateDTO.getInputs().getRecord_json()); + userRole.setContent(translateDTO.getInputs().getMsg_info()); return userRole; }