From 815058dcf398a1c8647da43f3afe88d2aceb17cd Mon Sep 17 00:00:00 2001 From: qianbao Date: Wed, 8 Apr 2026 15:39:17 +0800 Subject: [PATCH] 添加向量库 --- src/main/java/com/xly/exception/TtsExceptionFilter.java | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------- src/main/java/com/xly/ocr/service/OcrService.java | 2 +- src/main/java/com/xly/tool/DynamicToolProvider.java | 14 +++++++++++++- src/main/resources/application.yml | 9 ++++++++- 4 files changed, 85 insertions(+), 66 deletions(-) diff --git a/src/main/java/com/xly/exception/TtsExceptionFilter.java b/src/main/java/com/xly/exception/TtsExceptionFilter.java index e8e5e46..d7e0c58 100644 --- a/src/main/java/com/xly/exception/TtsExceptionFilter.java +++ b/src/main/java/com/xly/exception/TtsExceptionFilter.java @@ -1,63 +1,63 @@ -package com.xly.exception; - -import com.fasterxml.jackson.databind.ObjectMapper; -import com.xly.tts.bean.TTSResponseDTO; -import jakarta.servlet.*; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.core.annotation.Order; -import org.springframework.http.HttpStatus; -import org.springframework.http.MediaType; -import org.springframework.stereotype.Component; - -import java.io.IOException; - -@Slf4j -@Component -@Order(1) -@RequiredArgsConstructor -public class TtsExceptionFilter implements Filter { - - private final ObjectMapper objectMapper; - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException { - - HttpServletRequest httpRequest = (HttpServletRequest) request; - HttpServletResponse httpResponse = (HttpServletResponse) response; - - // 只处理 TTS 相关接口 - if (!httpRequest.getRequestURI().contains("/api/tts/")) { - chain.doFilter(request, response); - return; - } - - try { - chain.doFilter(request, response); - } catch (Exception ex) { - log.error("TTS接口异常: {}", httpRequest.getRequestURI(), ex); - - // 清除之前的响应 - if (httpResponse.isCommitted()) { - return; - } - - httpResponse.reset(); - httpResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); - httpResponse.setContentType(MediaType.APPLICATION_JSON_VALUE); - httpResponse.setCharacterEncoding("UTF-8"); - - TTSResponseDTO errorResult = TTSResponseDTO.error( - HttpStatus.INTERNAL_SERVER_ERROR.value(), - "语音合成服务异常: " + ex.getMessage() - ); - - String jsonResponse = objectMapper.writeValueAsString(errorResult); - httpResponse.getWriter().write(jsonResponse); - httpResponse.getWriter().flush(); - } - } -} \ No newline at end of file +//package com.xly.exception; +// +//import com.fasterxml.jackson.databind.ObjectMapper; +//import com.xly.tts.bean.TTSResponseDTO; +//import jakarta.servlet.*; +//import jakarta.servlet.http.HttpServletRequest; +//import jakarta.servlet.http.HttpServletResponse; +//import lombok.RequiredArgsConstructor; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.core.annotation.Order; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.MediaType; +//import org.springframework.stereotype.Component; +// +//import java.io.IOException; +// +//@Slf4j +//@Component +//@Order(1) +//@RequiredArgsConstructor +//public class TtsExceptionFilter implements Filter { +// +// private final ObjectMapper objectMapper; +// +// @Override +// public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) +// throws IOException, ServletException { +// +// HttpServletRequest httpRequest = (HttpServletRequest) request; +// HttpServletResponse httpResponse = (HttpServletResponse) response; +// +// // 只处理 TTS 相关接口 +// if (!httpRequest.getRequestURI().contains("/api/tts/")) { +// chain.doFilter(request, response); +// return; +// } +// +// try { +// chain.doFilter(request, response); +// } catch (Exception ex) { +// log.error("TTS接口异常: {}", httpRequest.getRequestURI(), ex); +// +// // 清除之前的响应 +// if (httpResponse.isCommitted()) { +// return; +// } +// +// httpResponse.reset(); +// httpResponse.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value()); +// httpResponse.setContentType(MediaType.APPLICATION_JSON_VALUE); +// httpResponse.setCharacterEncoding("UTF-8"); +// +// TTSResponseDTO errorResult = TTSResponseDTO.error( +// HttpStatus.INTERNAL_SERVER_ERROR.value(), +// "语音合成服务异常: " + ex.getMessage() +// ); +// +// String jsonResponse = objectMapper.writeValueAsString(errorResult); +// httpResponse.getWriter().write(jsonResponse); +// httpResponse.getWriter().flush(); +// } +// } +//} \ No newline at end of file diff --git a/src/main/java/com/xly/ocr/service/OcrService.java b/src/main/java/com/xly/ocr/service/OcrService.java index 965fd95..985ba59 100644 --- a/src/main/java/com/xly/ocr/service/OcrService.java +++ b/src/main/java/com/xly/ocr/service/OcrService.java @@ -19,7 +19,7 @@ public class OcrService { private static final List ALLOWED_EXTENSIONS = Arrays.asList( ".jpg", ".jpeg", ".png", ".bmp", ".tiff", ".gif" ); - private static final long MAX_FILE_SIZE = 10 * 1024 * 1024; // 10MB + private static final long MAX_FILE_SIZE = 100 * 1024 * 1024; // 10MB /** * 从 MultipartFile 中提取文字 diff --git a/src/main/java/com/xly/tool/DynamicToolProvider.java b/src/main/java/com/xly/tool/DynamicToolProvider.java index c34dc47..3203956 100644 --- a/src/main/java/com/xly/tool/DynamicToolProvider.java +++ b/src/main/java/com/xly/tool/DynamicToolProvider.java @@ -909,8 +909,20 @@ public class DynamicToolProvider implements ToolProvider { } private Boolean checkMiss(Map returnMap,ParamRule pd) { + if(ObjectUtil.isEmpty(returnMap)){ + returnMap = new HashMap<>(); + } Boolean bBhcs = (ObjectUtil.isEmpty(returnMap.get(pd.getSParam()))); - Boolean bDbZero = (pd.getSParamValue().startsWith("d") && 0 == Double.valueOf(returnMap.get(pd.getSParam()).toString())); + Boolean bDbZero = false; + if(pd.getSParamValue().startsWith("d")){ + try{ + String sParam = pd.getSParam().toString(); + Object sParamV = returnMap.get(sParam); + bDbZero = (ObjectUtil.isEmpty(sParamV) || 0 ==Double.valueOf(sParamV.toString())); + }catch (Exception e){ + bDbZero = true; + } + } return bDbZero || bBhcs || (!returnMap.containsKey(pd.getSParamValue()) || (ObjectUtil.isEmpty(returnMap.get(pd.getSParamValue())))); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index d9678da..373c681 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -9,7 +9,6 @@ logging: org.springframework: warn ai.djl: DEBUG dev.langchain4j: DEBUG - server: port: 8099 servlet: @@ -21,6 +20,14 @@ server: enabled: true mime-types: audio/mpeg spring: + # 将 multipart + servlet: + multipart: + max-file-size: 100MB + max-request-size: 100MB +# enabled: true +# location: D:/xlyweberp/ai/upload-temp # 可选:指定临时文件目录 +# file-size-threshold: 2MB # 可选:超过2MB才写入磁盘 main: allow-bean-definition-overriding: true application: -- libgit2 0.22.2