From 6e97712ecb260438f0ae251ee5e9a5bc295399b5 Mon Sep 17 00:00:00 2001 From: LuanY77 <2307984361@qq.com> Date: Wed, 17 Sep 2025 23:26:25 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20API-Key=20=E7=A9=BA=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../liteflow/ai/engine/model/ModelConfig.java | 20 +++++++++++-------- .../engine/model/chat/entity/ChatConfig.java | 1 - .../model/chat/DashScopeChatConfig.java | 8 +++++++- .../ollama/model/chat/OllamaChatConfig.java | 1 - .../openai/model/chat/OpenAIChatConfig.java | 8 +++++++- 5 files changed, 26 insertions(+), 12 deletions(-) diff --git a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java index fc47fb5bd..8f9e2db24 100644 --- a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java @@ -63,6 +63,7 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert this.connectTimeout = connectTimeout; this.readTimeout = readTimeout; this.headersConfig = headersConfig; + checkRequiredFields(); } protected ModelConfig(Builder builder) { @@ -74,6 +75,17 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert this.connectTimeout = builder.connectTimeout; this.readTimeout = builder.readTimeout; this.headersConfig.putAll(builder.headersConfig); + checkRequiredFields(); + } + + /** + * 检查必填字段 + */ + protected void checkRequiredFields() { + Objects.requireNonNull(this.apiUrl, "API URL must not be null"); + Objects.requireNonNull(this.endPoint, "End Point must not be null"); + Objects.requireNonNull(this.provider, "Provider must not be null"); + Objects.requireNonNull(this.model, "Model must not be null"); } @Override @@ -231,13 +243,6 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert return self(); } - protected void checkRequiredFields() { - Objects.requireNonNull(apiUrl, "API URL must not be null"); - Objects.requireNonNull(endPoint, "End Point must not be null"); - Objects.requireNonNull(provider, "Provider must not be null"); - Objects.requireNonNull(model, "Model must not be null"); - } - public abstract ModelConfig build(); private static class BuilderImpl extends Builder { @@ -249,7 +254,6 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert @Override public ModelConfig build() { - checkRequiredFields(); return new ModelConfig(this); } } diff --git a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java index a592ea02f..3225d2846 100644 --- a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java @@ -69,7 +69,6 @@ public class ChatConfig extends ModelConfig { @Override public ChatConfig build() { - checkRequiredFields(); return new ChatConfig(this); } } diff --git a/liteflow-ai/liteflow-ai-model/liteflow-ai-dashscope/src/main/java/com/yomahub/liteflow/ai/model/dashscope/model/chat/DashScopeChatConfig.java b/liteflow-ai/liteflow-ai-model/liteflow-ai-dashscope/src/main/java/com/yomahub/liteflow/ai/model/dashscope/model/chat/DashScopeChatConfig.java index 01da9beb5..e8ccff937 100644 --- a/liteflow-ai/liteflow-ai-model/liteflow-ai-dashscope/src/main/java/com/yomahub/liteflow/ai/model/dashscope/model/chat/DashScopeChatConfig.java +++ b/liteflow-ai/liteflow-ai-model/liteflow-ai-dashscope/src/main/java/com/yomahub/liteflow/ai/model/dashscope/model/chat/DashScopeChatConfig.java @@ -4,6 +4,7 @@ import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; import java.time.Duration; import java.util.Map; +import java.util.Objects; /** * DashScope 聊天配置类 @@ -36,6 +37,12 @@ public class DashScopeChatConfig extends ChatConfig { super(builder); } + @Override + protected void checkRequiredFields() { + super.checkRequiredFields(); + Objects.requireNonNull(this.apiKey, "API Key must not be null, please set it via configuration: {liteflow.ai.dashscope.api-key}"); + } + public static Builder builder() { return new Builder(); } @@ -49,7 +56,6 @@ public class DashScopeChatConfig extends ChatConfig { @Override public DashScopeChatConfig build() { - checkRequiredFields(); return new DashScopeChatConfig(this); } } diff --git a/liteflow-ai/liteflow-ai-model/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java b/liteflow-ai/liteflow-ai-model/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java index fe144acc0..753c03979 100644 --- a/liteflow-ai/liteflow-ai-model/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java +++ b/liteflow-ai/liteflow-ai-model/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java @@ -49,7 +49,6 @@ public class OllamaChatConfig extends ChatConfig { @Override public OllamaChatConfig build() { - checkRequiredFields(); return new OllamaChatConfig(this); } } diff --git a/liteflow-ai/liteflow-ai-model/liteflow-ai-openai/src/main/java/com/yomahub/liteflow/ai/model/openai/model/chat/OpenAIChatConfig.java b/liteflow-ai/liteflow-ai-model/liteflow-ai-openai/src/main/java/com/yomahub/liteflow/ai/model/openai/model/chat/OpenAIChatConfig.java index a43bd329e..0b29d57b7 100644 --- a/liteflow-ai/liteflow-ai-model/liteflow-ai-openai/src/main/java/com/yomahub/liteflow/ai/model/openai/model/chat/OpenAIChatConfig.java +++ b/liteflow-ai/liteflow-ai-model/liteflow-ai-openai/src/main/java/com/yomahub/liteflow/ai/model/openai/model/chat/OpenAIChatConfig.java @@ -4,6 +4,7 @@ import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; import java.time.Duration; import java.util.Map; +import java.util.Objects; /** * OpenAI 聊天配置类 @@ -32,6 +33,12 @@ public class OpenAIChatConfig extends ChatConfig { super(apiUrl, endPoint, apiKey, provider, model, connectTimeout, readTimeout, headersConfig, autoToolCallEnabled); } + @Override + protected void checkRequiredFields() { + super.checkRequiredFields(); + Objects.requireNonNull(this.apiKey, "API Key must not be null, please set it via configuration: {liteflow.ai.openai.api-key}"); + } + public OpenAIChatConfig(Builder builder) { super(builder); } @@ -49,7 +56,6 @@ public class OpenAIChatConfig extends ChatConfig { @Override public OpenAIChatConfig build() { - checkRequiredFields(); return new OpenAIChatConfig(this); } }