Files
SmartJavaAI/smartjavaai-common/src/main/java/cn/smartjavaai/common/config/Config.java
dengwenjie 1914e2c316 - 新增OCR文字识别模块:支持最新 PP-OCRv5
- OCR文本识别:支持文字方向检测与自动校正
2025-05-26 16:24:24 +08:00

87 lines
2.7 KiB
Java

package cn.smartjavaai.common.config;
import cn.hutool.core.io.FileUtil;
import cn.hutool.system.SystemUtil;
import cn.hutool.system.UserInfo;
import cn.smartjavaai.common.utils.FileUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
/**
* 全局配置
* @author dwj
* @date 2025/4/15
*/
@Slf4j
public class Config {
/**
* 默认缓存文件夹
*/
private static final String CACHE_DIR = "smartjavaai_cache";
private static String cachePath;
static{
createCachePath();
if(StringUtils.isNotBlank(cachePath)){
System.setProperty("DJL_CACHE_DIR", cachePath);
}
System.setProperty("ai.djl.default_engine", "PyTorch");
log.info("设置默认引擎:{}", "PyTorch");
}
// 设置缓存路径的方法
public static void setCachePath(String customeCachePath) {
if (StringUtils.isNotBlank(customeCachePath)) {
/*if(!FileUtils.isValidDirectory(customeCachePath)){
throw new IllegalArgumentException("无效的缓存路径");
}*/
cachePath = customeCachePath;
FileUtil.mkdir(cachePath);
// 如果需要在此时直接设置系统属性
System.setProperty("DJL_CACHE_DIR", cachePath);
} else {
throw new IllegalArgumentException("缓存路径不允许为空");
}
}
// 获取缓存路径的方法
public static String getCachePath() {
if(StringUtils.isBlank(cachePath)){
createCachePath();
}
if(StringUtils.isNotBlank(cachePath)){
System.setProperty("DJL_CACHE_DIR", cachePath);
}
return cachePath;
}
// 获取当前缓存路径的系统属性(如果需要在其他地方使用)
public static String getCachePathFromSystem() {
return System.getProperty("DJL_CACHE_DIR");
}
private static void createCachePath(){
String osName = SystemUtil.getOsInfo().getName();
log.info("当前操作系统:{}", osName);
if(osName.toLowerCase().contains("windows")){
cachePath = SystemUtil.getUserInfo().getHomeDir() + CACHE_DIR;
FileUtil.mkdir(cachePath);
}else if(osName.toLowerCase().contains("linux")){
cachePath = "/root/" + CACHE_DIR;
FileUtil.mkdir(cachePath);
}else if(osName.toLowerCase().contains("mac")){
cachePath = SystemUtil.getUserInfo().getHomeDir() + CACHE_DIR;
FileUtil.mkdir(cachePath);
}else{
cachePath = SystemUtil.getUserInfo().getHomeDir() + CACHE_DIR;
FileUtil.mkdir(cachePath);
}
}
}