From e42d35f3bf2554b4c479d15d512829958bbc1da0 Mon Sep 17 00:00:00 2001 From: ageerle Date: Tue, 21 Jul 2026 15:43:36 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=B7=A5=E4=BD=9C=E6=B5=81=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E4=BF=9D=E7=95=99=E5=AD=97=E8=BD=AC=E4=B9=89=20+=20?= =?UTF-8?q?=E5=8D=83=E9=97=AE=E5=90=91=E9=87=8F=E6=A8=A1=E5=9E=8B=E5=8E=82?= =?UTF-8?q?=E5=95=86=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. WorkflowRuntimeNode/WorkflowRuntime: input/output/status 字段加反引号, 修复 MySQL 8.0 保留字导致 MyBatis-Plus SQL 解析异常 (#307) 2. EmbeddingModelFactory: 新增 providerCode→BeanName 映射, qianwen→alibailian,修复千问向量模型找不到 Bean 的问题 (#301) Closes #307 #301 Co-Authored-By: Claude --- .../org/ruoyi/workflow/entity/WorkflowRuntime.java | 6 +++--- .../ruoyi/workflow/entity/WorkflowRuntimeNode.java | 6 +++--- .../org/ruoyi/factory/EmbeddingModelFactory.java | 12 +++++++++++- 3 files changed, 17 insertions(+), 7 deletions(-) diff --git a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntime.java b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntime.java index dada5dea..bde74b30 100644 --- a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntime.java +++ b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntime.java @@ -27,13 +27,13 @@ public class WorkflowRuntime extends BaseEntity { @TableField("workflow_id") private Long workflowId; - @TableField(value = "input") + @TableField(value = "`input`") private String input; - @TableField(value = "output") + @TableField(value = "`output`") private String output; - @TableField("status") + @TableField("`status`") private Integer status; @TableField("status_remark") diff --git a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntimeNode.java b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntimeNode.java index a472b5a1..00550a73 100644 --- a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntimeNode.java +++ b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/entity/WorkflowRuntimeNode.java @@ -29,13 +29,13 @@ public class WorkflowRuntimeNode extends BaseEntity { @TableField("node_id") private Long nodeId; - @TableField(value = "input") + @TableField(value = "`input`") private String input; - @TableField(value = "output") + @TableField(value = "`output`") private String output; - @TableField("status") + @TableField("`status`") private Integer status; @TableField("status_remark") diff --git a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/factory/EmbeddingModelFactory.java b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/factory/EmbeddingModelFactory.java index 19ef4337..0db9d859 100644 --- a/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/factory/EmbeddingModelFactory.java +++ b/ruoyi-modules/ruoyi-chat/src/main/java/org/ruoyi/factory/EmbeddingModelFactory.java @@ -25,6 +25,14 @@ import java.util.concurrent.ConcurrentHashMap; @Slf4j public class EmbeddingModelFactory { + /** + * 厂商 providerCode → Spring Bean 名称映射 + * 处理 providerCode 与 @Component 注册名不一致的情况 + */ + private static final Map PROVIDER_BEAN_MAPPING = Map.of( + "qianwen", "alibailian" + ); + private final ApplicationContext applicationContext; private final IChatModelService chatModelService; @@ -116,8 +124,10 @@ public class EmbeddingModelFactory { */ private BaseEmbedModelService createModelInstance(String factory, ChatModelVo config) { try { + // 解析实际的 Bean 名称(处理 providerCode 与 @Component 注册名不一致的情况) + String beanName = PROVIDER_BEAN_MAPPING.getOrDefault(factory, factory); // 从Spring上下文中获取模型实例 - BaseEmbedModelService model = applicationContext.getBean(factory, BaseEmbedModelService.class); + BaseEmbedModelService model = applicationContext.getBean(beanName, BaseEmbedModelService.class); // 配置模型参数 model.configure(config); // 增加嵌入模型监听器