From 97cec236e0c5c1d02fd266ff8cc68a8a334027ae Mon Sep 17 00:00:00 2001 From: YunaiV Date: Fri, 29 Aug 2025 20:26:42 +0800 Subject: [PATCH] reactor:【ai 大模型】独立 FileTypeUtils 工具类,避免 cloud 无法依赖 --- yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java | 2 +- yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/util/FileTypeUtils.java | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/util/FileTypeUtils.java diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java index 399ca5a..0f44eac 100644 --- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/service/chat/AiChatMessageServiceImpl.java @@ -34,7 +34,7 @@ import cn.iocoder.yudao.module.ai.service.model.AiChatRoleService; import cn.iocoder.yudao.module.ai.service.model.AiModelService; import cn.iocoder.yudao.module.ai.service.model.AiToolService; import cn.iocoder.yudao.module.ai.util.AiUtils; -import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils; +import cn.iocoder.yudao.module.ai.util.FileTypeUtils; import com.google.common.collect.Maps; import io.modelcontextprotocol.client.McpSyncClient; import jakarta.annotation.Resource; diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/util/FileTypeUtils.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/util/FileTypeUtils.java new file mode 100644 index 0000000..9c3b202 --- /dev/null +++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/util/FileTypeUtils.java @@ -0,0 +1,37 @@ +package cn.iocoder.yudao.module.ai.util; + +import cn.hutool.core.util.StrUtil; +import lombok.extern.slf4j.Slf4j; +import org.apache.tika.Tika; + +/** + * 文件类型 Utils + * + * @author 芋道源码 + */ +@Slf4j +public class FileTypeUtils { + + private static final Tika TIKA = new Tika(); + + /** + * 已知文件名,获取文件类型,在某些情况下比通过字节数组准确,例如使用 jar 文件时,通过名字更为准确 + * + * @param name 文件名 + * @return mineType 无法识别时会返回“application/octet-stream” + */ + public static String getMineType(String name) { + return TIKA.detect(name); + } + + /** + * 判断是否是图片 + * + * @param mineType 类型 + * @return 是否是图片 + */ + public static boolean isImage(String mineType) { + return StrUtil.startWith(mineType, "image/"); + } + +} -- libgit2 0.21.4