From 02c9768140c1f484bcbb169b99d7918d52b90274 Mon Sep 17 00:00:00 2001 From: LuanY77 <2307984361@qq.com> Date: Thu, 7 Aug 2025 18:08:21 +0800 Subject: [PATCH] =?UTF-8?q?Fix:=20=E8=B6=85=E6=97=B6=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E6=98=A0=E5=B0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transport/impl/DnJsonTransport.java | 5 +-- .../transport/impl/HttpTransport.java | 4 +- .../interact/transport/impl/SseTransport.java | 5 +-- .../liteflow/ai/engine/model/ModelConfig.java | 42 ++++++++++++++----- .../engine/model/chat/entity/ChatConfig.java | 5 ++- .../ollama/model/chat/OllamaChatConfig.java | 5 ++- .../test/ai/model/ollama/OllamaModelTest.java | 6 ++- 7 files changed, 47 insertions(+), 25 deletions(-) diff --git a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/DnJsonTransport.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/DnJsonTransport.java index 4999d32ee..7423e5f0c 100644 --- a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/DnJsonTransport.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/DnJsonTransport.java @@ -47,9 +47,8 @@ public class DnJsonTransport implements Transport, Callback { Request dnJsonRequest = buildDnJsonRequest(config, request); client = new okhttp3.OkHttpClient.Builder() - .connectTimeout(config.getTimeout()) - .readTimeout(config.getTimeout()) - .writeTimeout(config.getTimeout()) + .connectTimeout(config.getConnectTimeout()) + .readTimeout(config.getReadTimeout()) .build(); this.listener.onStart(pipeline.getContext()); diff --git a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java index 202d3a6b1..d3f6299c2 100644 --- a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java @@ -30,8 +30,8 @@ public class HttpTransport implements Transport { public ChatResponse startBlocking(ChatConfig config, ChatRequest request, ChunkProcessPipeline pipeline) { try (HttpUtil httpUtil = HttpUtil .builder() - .connectTimeout(config.getTimeout()) - .readTimeout(config.getTimeout()) + .connectTimeout(config.getConnectTimeout()) + .readTimeout(config.getReadTimeout()) .build()) { // 构建请求体 String requestBody = buildRequestBody(config, request); diff --git a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java index 3f217db0c..5b64e6100 100644 --- a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java @@ -45,9 +45,8 @@ public class SseTransport extends EventSourceListener implements Transport { // 创建EventSource实例 client = new okhttp3.OkHttpClient.Builder() - .connectTimeout(config.getTimeout()) - .readTimeout(config.getTimeout()) - .writeTimeout(config.getTimeout()) + .connectTimeout(config.getConnectTimeout()) + .readTimeout(config.getReadTimeout()) .build(); this.eventSource = EventSources.createFactory(client) 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 65a0033e3..44350c30f 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 @@ -30,7 +30,9 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert protected String model; - protected Duration timeout = Duration.ofSeconds(60); + protected Duration connectTimeout = Duration.ofSeconds(60); + + protected Duration readTimeout = Duration.ofSeconds(60); protected Map headersConfig = new LinkedHashMap<>(); @@ -47,7 +49,8 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert String apiKey, String provider, String model, - Duration timeout, + Duration connectTimeout, + Duration readTimeout, Map headersConfig ) { this.apiUrl = apiUrl; @@ -55,7 +58,8 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert this.apiKey = apiKey; this.provider = provider; this.model = model; - this.timeout = timeout; + this.connectTimeout = connectTimeout; + this.readTimeout = readTimeout; this.headersConfig = headersConfig; } @@ -65,7 +69,8 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert this.apiKey = builder.apiKey; this.provider = builder.provider; this.model = builder.model; - this.timeout = builder.timeout; + this.connectTimeout = builder.connectTimeout; + this.readTimeout = builder.readTimeout; this.headersConfig.putAll(builder.headersConfig); } @@ -133,12 +138,20 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert this.model = model; } - public Duration getTimeout() { - return timeout; + public Duration getConnectTimeout() { + return connectTimeout; } - public void setTimeout(Duration timeout) { - this.timeout = timeout; + public void setConnectTimeout(Duration connectTimeout) { + this.connectTimeout = connectTimeout; + } + + public Duration getReadTimeout() { + return readTimeout; + } + + public void setReadTimeout(Duration readTimeout) { + this.readTimeout = readTimeout; } public Map getHeadersConfig() { @@ -168,7 +181,9 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert protected String model; - protected Duration timeout = Duration.ofSeconds(60); + protected Duration connectTimeout = Duration.ofSeconds(60); + + protected Duration readTimeout = Duration.ofSeconds(60); protected Map headersConfig = new LinkedHashMap<>(); @@ -199,8 +214,13 @@ public class ModelConfig implements RequestBodyConvertible, RequestHeaderConvert return self(); } - public B timeout(Duration timeout) { - this.timeout = timeout; + public B connectTimeout(Duration connectTimeout) { + this.connectTimeout = connectTimeout; + return self(); + } + + public B readTimeout(Duration readTimeout) { + this.readTimeout = readTimeout; return self(); } 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 98d24d4c7..0d6dd6a56 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 @@ -34,13 +34,14 @@ public class ChatConfig extends ModelConfig { String apiKey, String provider, String model, - Duration timeout, + Duration connectTimeout, + Duration readTimeout, Map headersConfig, boolean autoToolCallEnabled, boolean streaming, TransportType transportType ) { - super(apiUrl, endPoint, apiKey, provider, model, timeout, headersConfig); + super(apiUrl, endPoint, apiKey, provider, model, connectTimeout, readTimeout, headersConfig); this.autoToolCallEnabled = autoToolCallEnabled; this.streaming = streaming; this.transportType = transportType; diff --git a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java index 025d4e27e..138f18f13 100644 --- a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java +++ b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatConfig.java @@ -25,13 +25,14 @@ public class OllamaChatConfig extends ChatConfig { String apiKey, String provider, String model, - Duration timeout, + Duration connectTimeout, + Duration readTimeout, Map headersConfig, boolean autoToolCallEnabled, boolean streaming, TransportType transportType ) { - super(apiUrl, endPoint, apiKey, provider, model, timeout, + super(apiUrl, endPoint, apiKey, provider, model, connectTimeout, readTimeout, headersConfig, autoToolCallEnabled, streaming, transportType); } diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/OllamaModelTest.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/OllamaModelTest.java index 8f066f95c..5a03bd674 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/OllamaModelTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/OllamaModelTest.java @@ -40,7 +40,8 @@ public class OllamaModelTest { .provider(OllamaConstant.PROVIDER_NAME) .model("qwen3:32b") .streaming(false) - .timeout(Duration.of(10, ChronoUnit.MINUTES)) + .connectTimeout(Duration.of(10, ChronoUnit.MINUTES)) + .readTimeout(Duration.of(10, ChronoUnit.MINUTES)) .transportType(TransportType.HTTP) .build(); @@ -93,7 +94,8 @@ public class OllamaModelTest { .provider(OllamaConstant.PROVIDER_NAME) .model("qwen3:32b") .streaming(true) - .timeout(Duration.of(10, ChronoUnit.MINUTES)) + .connectTimeout(Duration.of(10, ChronoUnit.MINUTES)) + .readTimeout(Duration.of(10, ChronoUnit.MINUTES)) .transportType(TransportType.DnJson) .build();