From 95ae0c83d2aa58d86b4039e3f7f16ee93afb8f00 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 23 十月 2026 17:01:00 +0800
Subject: [PATCH] feat(ai): 完善模型管理和智能体导入功能

---
 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/api/chat/AiChatApiImpl.java |   16 ++++++++++------
 1 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/api/chat/AiChatApiImpl.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/api/chat/AiChatApiImpl.java
index 22f4291..984b895 100644
--- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/api/chat/AiChatApiImpl.java
+++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/api/chat/AiChatApiImpl.java
@@ -2,6 +2,7 @@
 
 import cn.iocoder.yudao.framework.common.enums.CommonStatusEnum;
 import cn.iocoder.yudao.module.ai.dal.dataobject.model.AiModelDO;
+import cn.iocoder.yudao.module.ai.enums.model.AiModelCapabilityEnum;
 import cn.iocoder.yudao.module.ai.enums.model.AiModelTypeEnum;
 import cn.iocoder.yudao.module.ai.service.model.AiModelService;
 import jakarta.annotation.Resource;
@@ -17,6 +18,9 @@
 
 import java.util.Base64;
 import java.util.List;
+
+import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
+import static cn.iocoder.yudao.module.ai.enums.ErrorCodeConstants.MODEL_VISION_NOT_ENABLED;
 
 @Service
 @Slf4j
@@ -40,13 +44,13 @@
 
     @Override
     public String chatWithImage(String systemPrompt, String userMessage, String imageBase64, String mimeType) {
-        // 浼樺厛閫夋嫨瑙嗚妯″瀷锛堟ā鍨嬪悕鍚� vl锛夛紝鍚﹀垯鍥為��鍒伴粯璁ゅ璇濇ā鍨�
-        List<AiModelDO> chatModels = modelService.getModelListByStatusAndType(
-                CommonStatusEnum.ENABLE.getStatus(), AiModelTypeEnum.CHAT.getType(), null);
-        AiModelDO visionModel = chatModels.stream()
-                .filter(m -> m.getModel() != null && m.getModel().contains("vl"))
+        // 鍥剧墖璇嗗埆蹇呴』璧拌瑙夎兘鍔涚殑妯″瀷锛氭枃鏈ā鍨嬩笉鎺ュ彈鍥剧墖杈撳叆锛屽洖閫�杩囧幓鍙細鎶ラ敊
+        AiModelDO visionModel = modelService.getModelListByStatusAndType(
+                        CommonStatusEnum.ENABLE.getStatus(), AiModelTypeEnum.CHAT.getType(), null)
+                .stream()
+                .filter(m -> AiModelCapabilityEnum.VISION.getCapability().equals(m.getCapability()))
                 .findFirst()
-                .orElseGet(() -> modelService.getRequiredDefaultModel(AiModelTypeEnum.CHAT.getType()));
+                .orElseThrow(() -> exception(MODEL_VISION_NOT_ENABLED));
 
         ChatModel chatModel = modelService.getChatModel(visionModel.getId());
         byte[] imageBytes = Base64.getDecoder().decode(imageBase64);

--
Gitblit v1.9.3