Commit 97cec236e0c5c1d02fd266ff8cc68a8a334027ae
1 parent
839085ed
reactor:【ai 大模型】独立 FileTypeUtils 工具类,避免 cloud 无法依赖
Showing
2 changed files
with
38 additions
and
1 deletions
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; | @@ -34,7 +34,7 @@ import cn.iocoder.yudao.module.ai.service.model.AiChatRoleService; | ||
| 34 | import cn.iocoder.yudao.module.ai.service.model.AiModelService; | 34 | import cn.iocoder.yudao.module.ai.service.model.AiModelService; |
| 35 | import cn.iocoder.yudao.module.ai.service.model.AiToolService; | 35 | import cn.iocoder.yudao.module.ai.service.model.AiToolService; |
| 36 | import cn.iocoder.yudao.module.ai.util.AiUtils; | 36 | import cn.iocoder.yudao.module.ai.util.AiUtils; |
| 37 | -import cn.iocoder.yudao.module.infra.framework.file.core.utils.FileTypeUtils; | 37 | +import cn.iocoder.yudao.module.ai.util.FileTypeUtils; |
| 38 | import com.google.common.collect.Maps; | 38 | import com.google.common.collect.Maps; |
| 39 | import io.modelcontextprotocol.client.McpSyncClient; | 39 | import io.modelcontextprotocol.client.McpSyncClient; |
| 40 | import jakarta.annotation.Resource; | 40 | import jakarta.annotation.Resource; |
yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/util/FileTypeUtils.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.ai.util; | ||
| 2 | + | ||
| 3 | +import cn.hutool.core.util.StrUtil; | ||
| 4 | +import lombok.extern.slf4j.Slf4j; | ||
| 5 | +import org.apache.tika.Tika; | ||
| 6 | + | ||
| 7 | +/** | ||
| 8 | + * 文件类型 Utils | ||
| 9 | + * | ||
| 10 | + * @author 芋道源码 | ||
| 11 | + */ | ||
| 12 | +@Slf4j | ||
| 13 | +public class FileTypeUtils { | ||
| 14 | + | ||
| 15 | + private static final Tika TIKA = new Tika(); | ||
| 16 | + | ||
| 17 | + /** | ||
| 18 | + * 已知文件名,获取文件类型,在某些情况下比通过字节数组准确,例如使用 jar 文件时,通过名字更为准确 | ||
| 19 | + * | ||
| 20 | + * @param name 文件名 | ||
| 21 | + * @return mineType 无法识别时会返回“application/octet-stream” | ||
| 22 | + */ | ||
| 23 | + public static String getMineType(String name) { | ||
| 24 | + return TIKA.detect(name); | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + /** | ||
| 28 | + * 判断是否是图片 | ||
| 29 | + * | ||
| 30 | + * @param mineType 类型 | ||
| 31 | + * @return 是否是图片 | ||
| 32 | + */ | ||
| 33 | + public static boolean isImage(String mineType) { | ||
| 34 | + return StrUtil.startWith(mineType, "image/"); | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | +} |