diff --git a/liteflow-ai/liteflow-ai-bom/pom.xml b/liteflow-ai/liteflow-ai-bom/pom.xml new file mode 100644 index 000000000..bde0979a4 --- /dev/null +++ b/liteflow-ai/liteflow-ai-bom/pom.xml @@ -0,0 +1,40 @@ + + + + liteflow-ai + com.yomahub + ${revision} + ../pom.xml + + 4.0.0 + pom + + liteflow-ai-bom + + + + + com.yomahub + liteflow-ai-core + ${revision} + + + + com.yomahub + liteflow-ai-engine + ${revision} + + + + + com.yomahub + liteflow-ai-ollama + ${revision} + + + + + + \ No newline at end of file diff --git a/liteflow-ai/liteflow-ai-core/pom.xml b/liteflow-ai/liteflow-ai-core/pom.xml index a70ee8bfb..5e91db626 100644 --- a/liteflow-ai/liteflow-ai-core/pom.xml +++ b/liteflow-ai/liteflow-ai-core/pom.xml @@ -15,7 +15,8 @@ com.yomahub - liteflow-spring-boot-starter + liteflow-ai-engine + ${revision} @@ -27,21 +28,6 @@ org.springframework.boot spring-boot-configuration-processor - - - com.squareup.okhttp3 - okhttp - - - - com.squareup.okhttp3 - okhttp-sse - - - - com.alibaba.fastjson2 - fastjson2 - \ No newline at end of file diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/annotation/AIComponent.java b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/annotation/AIComponent.java index c1846ba33..2a7049295 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/annotation/AIComponent.java +++ b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/annotation/AIComponent.java @@ -101,16 +101,6 @@ public @interface AIComponent { */ double frequencyPenalty() default -1.0; - // --- Format ---- - /** - * 响应格式 - */ - String responseFormat() default ""; - /** - * 是否严格遵循 JSON Schema - */ - TriState strictJsonSchema() default TriState.UNSET; - // --- Tool Calling ---- /** * 是否并行 ToolCall diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/chat/ChatResult.java b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/chat/ChatResult.java index 32f88649f..8a42320c0 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/chat/ChatResult.java +++ b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/chat/ChatResult.java @@ -1,11 +1,5 @@ package com.yomahub.liteflow.ai.component.chat; -import dev.langchain4j.agent.tool.ToolExecutionRequest; -import dev.langchain4j.model.output.FinishReason; -import dev.langchain4j.model.output.TokenUsage; - -import java.util.List; - /** * 聊天结果 * @@ -14,83 +8,83 @@ import java.util.List; */ public class ChatResult { - - private String text; - - private List toolExecutionRequestList; - - private String id; - - private String modelName; - - private TokenUsage tokenUsage; - - private FinishReason finishReason; - - public ChatResult() { - } - - public ChatResult( - String text, - List toolExecutionRequestList, - String id, - String modelName, - TokenUsage tokenUsage, - FinishReason finishReason - ) { - this.text = text; - this.toolExecutionRequestList = toolExecutionRequestList; - this.id = id; - this.modelName = modelName; - this.tokenUsage = tokenUsage; - this.finishReason = finishReason; - } - - public String getText() { - return text; - } - - public List getToolExecutionRequestList() { - return toolExecutionRequestList; - } - - public String getId() { - return id; - } - - public String getModelName() { - return modelName; - } - - public TokenUsage getTokenUsage() { - return tokenUsage; - } - - public FinishReason getFinishReason() { - return finishReason; - } - - public void setText(String text) { - this.text = text; - } - - public void setToolExecutionRequestList(List toolExecutionRequestList) { - this.toolExecutionRequestList = toolExecutionRequestList; - } - - public void setId(String id) { - this.id = id; - } - - public void setModelName(String modelName) { - this.modelName = modelName; - } - - public void setTokenUsage(TokenUsage tokenUsage) { - this.tokenUsage = tokenUsage; - } - - public void setFinishReason(FinishReason finishReason) { - this.finishReason = finishReason; - } +// +// private String text; +// +// private List toolExecutionRequestList; +// +// private String id; +// +// private String modelName; +// +// private TokenUsage tokenUsage; +// +// private FinishReason finishReason; +// +// public ChatResult() { +// } +// +// public ChatResult( +// String text, +// List toolExecutionRequestList, +// String id, +// String modelName, +// TokenUsage tokenUsage, +// FinishReason finishReason +// ) { +// this.text = text; +// this.toolExecutionRequestList = toolExecutionRequestList; +// this.id = id; +// this.modelName = modelName; +// this.tokenUsage = tokenUsage; +// this.finishReason = finishReason; +// } +// +// public String getText() { +// return text; +// } +// +// public List getToolExecutionRequestList() { +// return toolExecutionRequestList; +// } +// +// public String getId() { +// return id; +// } +// +// public String getModelName() { +// return modelName; +// } +// +// public TokenUsage getTokenUsage() { +// return tokenUsage; +// } +// +// public FinishReason getFinishReason() { +// return finishReason; +// } +// +// public void setText(String text) { +// this.text = text; +// } +// +// public void setToolExecutionRequestList(List toolExecutionRequestList) { +// this.toolExecutionRequestList = toolExecutionRequestList; +// } +// +// public void setId(String id) { +// this.id = id; +// } +// +// public void setModelName(String modelName) { +// this.modelName = modelName; +// } +// +// public void setTokenUsage(TokenUsage tokenUsage) { +// this.tokenUsage = tokenUsage; +// } +// +// public void setFinishReason(FinishReason finishReason) { +// this.finishReason = finishReason; +// } } diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/classifier/ClassifyResult.java b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/classifier/ClassifyResult.java index 0b9ef263d..a2b8160eb 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/classifier/ClassifyResult.java +++ b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/component/classifier/ClassifyResult.java @@ -1,11 +1,5 @@ package com.yomahub.liteflow.ai.component.classifier; -import dev.langchain4j.agent.tool.ToolExecutionRequest; -import dev.langchain4j.model.output.FinishReason; -import dev.langchain4j.model.output.TokenUsage; - -import java.util.List; - /** * 分类结果 * @@ -15,21 +9,21 @@ import java.util.List; public class ClassifyResult { - private List classifyResults; - - private List primaryCategories; - - private String text; - - private List toolExecutionRequestList; - - private String id; - - private String modelName; - - private TokenUsage tokenUsage; - - private FinishReason finishReason; - +// private List classifyResults; +// +// private List primaryCategories; +// +// private String text; +// +// private List toolExecutionRequestList; +// +// private String id; +// +// private String modelName; +// +// private TokenUsage tokenUsage; +// +// private FinishReason finishReason; +// } diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/context/StreamHandler.java b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/context/StreamHandler.java index 44ee82904..538478e04 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/context/StreamHandler.java +++ b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/context/StreamHandler.java @@ -1,13 +1,5 @@ package com.yomahub.liteflow.ai.context; -import dev.langchain4j.model.chat.response.ChatResponse; -import dev.langchain4j.rag.RetrievalAugmentor; -import dev.langchain4j.rag.content.Content; -import dev.langchain4j.service.TokenStream; -import dev.langchain4j.service.tool.ToolExecution; - -import java.util.List; - /** * 流式输出处理器 * @@ -16,59 +8,60 @@ import java.util.List; */ public interface StreamHandler { - - /** - * 当语言模型生成新的部分响应(通常是单个 token)时,将调用此方法。 - * - * @param partialResponse 新生成的部分响应文本。 - */ - void onPartialResponse(String partialResponse); - - /** - * 当使用 {@link RetrievalAugmentor} 检索到任何 {@link Content} 时,将调用此方法。 - *

- * 此调用发生在与语言模型进行任何交互之前。 - * - * @param retrievedContents 所有被检索到的内容列表。 - */ - void onRetrieved(List retrievedContents); - - /** - * 当任何工具被执行后,将调用此方法。 - *

- * 此调用发生在工具方法执行完成之后,下一个工具执行之前。 - * - * @param toolExecution 包含已执行工具的名称、参数和结果的对象。 - */ - void onToolExecuted(ToolExecution toolExecution); - - /** - * 当语言模型完成流式响应时,将调用此方法。 - * - * @param chatResponse 完整的聊天响应结果。 - */ - void onCompleteResponse(ChatResponse chatResponse); - - /** - * 当流式处理过程中发生错误时,将调用此方法。 - * - * @param error 捕获到的异常或错误。 - */ - void onError(Throwable error); - - /** - * 接受一个 {@link TokenStream} 对象,并注册流式处理的回调。 - *

- * 自动开启 TokenStream 的处理流程,并在流式响应的各个阶段调用相应的方法。 - * - * @param tokenStream 要处理的 {@link TokenStream} 对象。 - */ - default void acceptTokenStream(TokenStream tokenStream) { - tokenStream.onPartialResponse(this::onPartialResponse) - .onRetrieved(this::onRetrieved) - .onToolExecuted(this::onToolExecuted) - .onCompleteResponse(this::onCompleteResponse) - .onError(this::onError) - .start(); - } + // TODO streamhandler 接口定义 +// +// /** +// * 当语言模型生成新的部分响应(通常是单个 token)时,将调用此方法。 +// * +// * @param partialResponse 新生成的部分响应文本。 +// */ +// void onPartialResponse(String partialResponse); +// +// /** +// * 当使用 {@link RetrievalAugmentor} 检索到任何 {@link Content} 时,将调用此方法。 +// *

+// * 此调用发生在与语言模型进行任何交互之前。 +// * +// * @param retrievedContents 所有被检索到的内容列表。 +// */ +// void onRetrieved(List retrievedContents); +// +// /** +// * 当任何工具被执行后,将调用此方法。 +// *

+// * 此调用发生在工具方法执行完成之后,下一个工具执行之前。 +// * +// * @param toolExecution 包含已执行工具的名称、参数和结果的对象。 +// */ +// void onToolExecuted(ToolExecution toolExecution); +// +// /** +// * 当语言模型完成流式响应时,将调用此方法。 +// * +// * @param chatResponse 完整的聊天响应结果。 +// */ +// void onCompleteResponse(ChatResponse chatResponse); +// +// /** +// * 当流式处理过程中发生错误时,将调用此方法。 +// * +// * @param error 捕获到的异常或错误。 +// */ +// void onError(Throwable error); +// +// /** +// * 接受一个 {@link TokenStream} 对象,并注册流式处理的回调。 +// *

+// * 自动开启 TokenStream 的处理流程,并在流式响应的各个阶段调用相应的方法。 +// * +// * @param tokenStream 要处理的 {@link TokenStream} 对象。 +// */ +// default void acceptTokenStream(TokenStream tokenStream) { +// tokenStream.onPartialResponse(this::onPartialResponse) +// .onRetrieved(this::onRetrieved) +// .onToolExecuted(this::onToolExecuted) +// .onCompleteResponse(this::onCompleteResponse) +// .onError(this::onError) +// .start(); +// } } diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/ModelConfig.java b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/ModelConfig.java index 2889ac6f6..e8da806d5 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/ModelConfig.java +++ b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/ModelConfig.java @@ -33,8 +33,6 @@ public final class ModelConfig { private final double repeatPenalty; private final double presencePenalty; private final double frequencyPenalty; - private final String responseFormat; - private final TriState strictJsonSchema; private final TriState parallelToolCalls; private final TriState logRequests; private final TriState logResponses; @@ -43,8 +41,8 @@ public final class ModelConfig { public ModelConfig(String provider, String baseUrl, String model, String apiKey, String version, String timeout, int maxRetries, double temperature, double topP, int topK, int maxTokens, List stop, int seed, double repeatPenalty, - double presencePenalty, double frequencyPenalty, String responseFormat, - TriState strictJsonSchema, TriState parallelToolCalls, TriState logRequests, + double presencePenalty, double frequencyPenalty, + TriState parallelToolCalls, TriState logRequests, TriState logResponses, List customHeaders) { this.provider = provider; this.baseUrl = baseUrl; @@ -62,8 +60,6 @@ public final class ModelConfig { this.repeatPenalty = repeatPenalty; this.presencePenalty = presencePenalty; this.frequencyPenalty = frequencyPenalty; - this.responseFormat = responseFormat; - this.strictJsonSchema = strictJsonSchema; this.parallelToolCalls = parallelToolCalls; this.logRequests = logRequests; this.logResponses = logResponses; @@ -74,13 +70,12 @@ public final class ModelConfig { return new ModelConfig( anno.provider(), anno.baseUrl(), anno.model(), anno.apiKey(), anno.version(), anno.timeout(), anno.maxRetries(), anno.temperature(), anno.topP(), anno.topK(), anno.maxTokens(), Arrays.asList(anno.stop()), - anno.seed(), anno.repeatPenalty(), anno.presencePenalty(), anno.frequencyPenalty(), anno.responseFormat(), - anno.strictJsonSchema(), anno.parallelToolCalls(), anno.logRequests(), anno.logResponses(), + anno.seed(), anno.repeatPenalty(), anno.presencePenalty(), anno.frequencyPenalty(), + anno.parallelToolCalls(), anno.logRequests(), anno.logResponses(), Arrays.asList(anno.customHeaders()) ); } - // 3. 为所有字段生成 Getter 方法 public String getProvider() { return provider; } @@ -145,14 +140,6 @@ public final class ModelConfig { return frequencyPenalty; } - public String getResponseFormat() { - return responseFormat; - } - - public TriState getStrictJsonSchema() { - return strictJsonSchema; - } - public TriState getParallelToolCalls() { return parallelToolCalls; } @@ -190,8 +177,6 @@ public final class ModelConfig { Objects.equals(version, that.version) && Objects.equals(timeout, that.timeout) && Objects.equals(stop, that.stop) && - Objects.equals(responseFormat, that.responseFormat) && - strictJsonSchema == that.strictJsonSchema && parallelToolCalls == that.parallelToolCalls && logRequests == that.logRequests && logResponses == that.logResponses && @@ -200,7 +185,7 @@ public final class ModelConfig { @Override public int hashCode() { - return Objects.hash(provider, baseUrl, model, apiKey, version, timeout, maxRetries, temperature, topP, topK, maxTokens, stop, seed, repeatPenalty, presencePenalty, frequencyPenalty, responseFormat, strictJsonSchema, parallelToolCalls, logRequests, logResponses, customHeaders); + return Objects.hash(provider, baseUrl, model, apiKey, version, timeout, maxRetries, temperature, topP, topK, maxTokens, stop, seed, repeatPenalty, presencePenalty, frequencyPenalty, parallelToolCalls, logRequests, logResponses, customHeaders); } @Override @@ -222,8 +207,6 @@ public final class ModelConfig { ", repeatPenalty=" + repeatPenalty + ", presencePenalty=" + presencePenalty + ", frequencyPenalty=" + frequencyPenalty + - ", responseFormat='" + responseFormat + '\'' + - ", strictJsonSchema=" + strictJsonSchema + ", parallelToolCalls=" + parallelToolCalls + ", logRequests=" + logRequests + ", logResponses=" + logResponses + diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/enums/ResponseType.java b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/enums/ResponseType.java index ae7239a22..e813df379 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/enums/ResponseType.java +++ b/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/domain/enums/ResponseType.java @@ -1,7 +1,5 @@ package com.yomahub.liteflow.ai.domain.enums; -import dev.langchain4j.model.chat.request.ResponseFormatType; - /** * AI响应类型枚举 * @@ -12,26 +10,11 @@ public enum ResponseType { /** * 纯文本响应 */ - TEXT(ResponseFormatType.TEXT), + TEXT, /** * JSON格式响应 */ - JSON(ResponseFormatType.JSON), + JSON, ; - - private final ResponseFormatType type; - - ResponseType(ResponseFormatType type) { - this.type = type; - } - - /** - * 获取对应的LangChain4j响应类型 - * - * @return LangChain4j响应类型 - */ - public ResponseFormatType getType() { - return this.type; - } } diff --git a/liteflow-ai/liteflow-ai-engine/pom.xml b/liteflow-ai/liteflow-ai-engine/pom.xml new file mode 100644 index 000000000..d9103fa74 --- /dev/null +++ b/liteflow-ai/liteflow-ai-engine/pom.xml @@ -0,0 +1,47 @@ + + + + liteflow-ai + com.yomahub + ${revision} + ../pom.xml + + 4.0.0 + + liteflow-ai-engine + + + + com.yomahub + liteflow-spring-boot-starter + + + + org.springframework.boot + spring-boot-autoconfigure + + + + org.springframework.boot + spring-boot-configuration-processor + + + + com.squareup.okhttp3 + okhttp + + + + com.squareup.okhttp3 + okhttp-sse + + + + com.alibaba.fastjson2 + fastjson2 + + + + \ No newline at end of file diff --git a/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/exception/LiteFlowAIEngineException.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/exception/LiteFlowAIEngineException.java new file mode 100644 index 000000000..e0212ca72 --- /dev/null +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/exception/LiteFlowAIEngineException.java @@ -0,0 +1,36 @@ +package com.yomahub.liteflow.ai.engine.exception; + +/** + * 大模型异常 + * + * @author 苍镜月 + * @since TODO + */ + +public class LiteFlowAIEngineException extends RuntimeException { + + private static final long serialVersionUID = 1L; + + /** + * 异常信息 + */ + private String message; + + public LiteFlowAIEngineException(String message) { + this.message = message; + } + + public LiteFlowAIEngineException(String message, Throwable cause) { + super(cause); + this.message = message; + } + + @Override + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } +} diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/InteractClient.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/InteractClient.java similarity index 59% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/InteractClient.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/InteractClient.java index c2f32b95c..1aa45f0f9 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/InteractClient.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/InteractClient.java @@ -1,8 +1,8 @@ -package com.yomahub.liteflow.ai.interact; +package com.yomahub.liteflow.ai.engine.interact; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; import java.util.concurrent.CompletableFuture; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/LlmInteractClient.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/LlmInteractClient.java similarity index 83% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/LlmInteractClient.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/LlmInteractClient.java index ef576b214..afd98adcb 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/LlmInteractClient.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/LlmInteractClient.java @@ -1,17 +1,17 @@ -package com.yomahub.liteflow.ai.interact; +package com.yomahub.liteflow.ai.engine.interact; -import com.yomahub.liteflow.ai.exception.LiteFlowAIException; -import com.yomahub.liteflow.ai.interact.callbacks.ResultHandler; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; -import com.yomahub.liteflow.ai.interact.pipeline.ChunkProcessPipeline; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformer; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformerFactory; -import com.yomahub.liteflow.ai.interact.transport.Transport; -import com.yomahub.liteflow.ai.interact.transport.TransportListener; -import com.yomahub.liteflow.ai.interact.transport.TransportType; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.exception.LiteFlowAIEngineException; +import com.yomahub.liteflow.ai.engine.interact.callbacks.ResultHandler; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChunkProcessPipeline; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformer; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformerFactory; +import com.yomahub.liteflow.ai.engine.interact.transport.Transport; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportListener; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportType; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLoggerManager; @@ -40,7 +40,7 @@ public class LlmInteractClient implements InteractClient { try { return chatAsync(config, request).get(); } catch (ExecutionException | InterruptedException e) { - throw new LiteFlowAIException("同步调用大模型失败", e.getCause()); + throw new LiteFlowAIEngineException("同步调用大模型失败", e.getCause()); } } @@ -54,7 +54,7 @@ public class LlmInteractClient implements InteractClient { ChatResponse response = manager.executeBlocking(); future.complete(response); } catch (Exception e) { - future.completeExceptionally(new LiteFlowAIException("异步调用大模型失败", e)); + future.completeExceptionally(new LiteFlowAIEngineException("异步调用大模型失败", e)); } }); diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/callbacks/ChunkCallbackTransformer.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/callbacks/ChunkCallbackTransformer.java similarity index 93% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/callbacks/ChunkCallbackTransformer.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/callbacks/ChunkCallbackTransformer.java index 5eb7ccb0f..fa2149a11 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/callbacks/ChunkCallbackTransformer.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/callbacks/ChunkCallbackTransformer.java @@ -1,8 +1,8 @@ -package com.yomahub.liteflow.ai.interact.callbacks; +package com.yomahub.liteflow.ai.engine.interact.callbacks; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; -import com.yomahub.liteflow.ai.interact.pipeline.ChunkTransformer; -import com.yomahub.liteflow.ai.interact.protocol.StreamingProtocolChunk; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChunkTransformer; +import com.yomahub.liteflow.ai.engine.interact.protocol.StreamingProtocolChunk; /** * 流式消息处理管道的回调接口。根据块数据的类型进行具体回调 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/callbacks/ResultHandler.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/callbacks/ResultHandler.java similarity index 90% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/callbacks/ResultHandler.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/callbacks/ResultHandler.java index e6f7681f6..6a682b38c 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/callbacks/ResultHandler.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/callbacks/ResultHandler.java @@ -1,7 +1,7 @@ -package com.yomahub.liteflow.ai.interact.callbacks; +package com.yomahub.liteflow.ai.engine.interact.callbacks; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; /** * 对消息全部发送完毕并转换后的结果进行处理的接口。 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChatContext.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChatContext.java similarity index 94% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChatContext.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChatContext.java index 1a0d8f62d..5d473bec2 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChatContext.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChatContext.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.interact.pipeline; +package com.yomahub.liteflow.ai.engine.interact.pipeline; import java.util.UUID; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChunkProcessPipeline.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChunkProcessPipeline.java similarity index 89% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChunkProcessPipeline.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChunkProcessPipeline.java index 0cff8a07c..fa23de3c3 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChunkProcessPipeline.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChunkProcessPipeline.java @@ -1,9 +1,9 @@ -package com.yomahub.liteflow.ai.interact.pipeline; +package com.yomahub.liteflow.ai.engine.interact.pipeline; -import com.yomahub.liteflow.ai.interact.callbacks.ChunkCallbackTransformer; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformer; -import com.yomahub.liteflow.ai.interact.protocol.StreamingProtocolChunk; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.interact.callbacks.ChunkCallbackTransformer; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformer; +import com.yomahub.liteflow.ai.engine.interact.protocol.StreamingProtocolChunk; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; /** * 流式消息处理管道 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChunkTransformer.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChunkTransformer.java similarity index 71% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChunkTransformer.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChunkTransformer.java index 86cad4953..12c4d624b 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/pipeline/ChunkTransformer.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/pipeline/ChunkTransformer.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.interact.pipeline; +package com.yomahub.liteflow.ai.engine.interact.pipeline; /** * 消息转换器接口 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformer.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformer.java similarity index 82% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformer.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformer.java index 7bfe03852..292b83309 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformer.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformer.java @@ -1,8 +1,8 @@ -package com.yomahub.liteflow.ai.interact.protocol; +package com.yomahub.liteflow.ai.engine.interact.protocol; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; -import com.yomahub.liteflow.ai.interact.pipeline.ChunkTransformer; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChunkTransformer; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; /** * 协议转换器 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformerFactory.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformerFactory.java similarity index 82% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformerFactory.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformerFactory.java index 543b591a9..547e38b4c 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformerFactory.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformerFactory.java @@ -1,6 +1,6 @@ -package com.yomahub.liteflow.ai.interact.protocol; +package com.yomahub.liteflow.ai.engine.interact.protocol; -import com.yomahub.liteflow.ai.exception.LiteFlowAIException; +import com.yomahub.liteflow.ai.engine.exception.LiteFlowAIEngineException; import java.util.Map; import java.util.Objects; @@ -36,7 +36,7 @@ public class ProtocolTransformerFactory { public static ProtocolTransformer getTransformer(String provider) { ProtocolTransformer protocolTransformer = TRANSFORMER_REGISTRY.get(provider); if (Objects.isNull(protocolTransformer)) { - throw new LiteFlowAIException("不支持的协议转换器: " + provider); + throw new LiteFlowAIEngineException("不支持的协议转换器: " + provider); } return protocolTransformer; } diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformerRegistrar.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformerRegistrar.java similarity index 91% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformerRegistrar.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformerRegistrar.java index 6cbe8f5d6..c2e13361e 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/ProtocolTransformerRegistrar.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/ProtocolTransformerRegistrar.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.interact.protocol; +package com.yomahub.liteflow.ai.engine.interact.protocol; import org.springframework.beans.factory.InitializingBean; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/StreamingProtocolChunk.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/StreamingProtocolChunk.java similarity index 91% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/StreamingProtocolChunk.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/StreamingProtocolChunk.java index 115a66139..32f87be86 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/StreamingProtocolChunk.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/StreamingProtocolChunk.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.interact.protocol; +package com.yomahub.liteflow.ai.engine.interact.protocol; /** * 流式消息块 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/StreamingProtocolType.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/StreamingProtocolType.java similarity index 95% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/StreamingProtocolType.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/StreamingProtocolType.java index 71f8ac2d2..f26a7f9df 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/protocol/StreamingProtocolType.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/protocol/StreamingProtocolType.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.interact.protocol; +package com.yomahub.liteflow.ai.engine.interact.protocol; import java.util.Arrays; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/Transport.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/Transport.java similarity index 79% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/Transport.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/Transport.java index 562fb1bba..363eb2216 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/Transport.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/Transport.java @@ -1,9 +1,9 @@ -package com.yomahub.liteflow.ai.interact.transport; +package com.yomahub.liteflow.ai.engine.interact.transport; -import com.yomahub.liteflow.ai.interact.pipeline.ChunkProcessPipeline; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChunkProcessPipeline; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/TransportListener.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/TransportListener.java similarity index 85% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/TransportListener.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/TransportListener.java index bd8fe7746..55996af86 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/TransportListener.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/TransportListener.java @@ -1,6 +1,6 @@ -package com.yomahub.liteflow.ai.interact.transport; +package com.yomahub.liteflow.ai.engine.interact.transport; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; /** * 传输监听器接口 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/TransportType.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/TransportType.java similarity index 85% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/TransportType.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/TransportType.java index 027147c47..164c30655 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/TransportType.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/TransportType.java @@ -1,7 +1,7 @@ -package com.yomahub.liteflow.ai.interact.transport; +package com.yomahub.liteflow.ai.engine.interact.transport; -import com.yomahub.liteflow.ai.interact.transport.impl.HttpTransport; -import com.yomahub.liteflow.ai.interact.transport.impl.SseTransport; +import com.yomahub.liteflow.ai.engine.interact.transport.impl.HttpTransport; +import com.yomahub.liteflow.ai.engine.interact.transport.impl.SseTransport; import java.util.Arrays; import java.util.Set; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/impl/HttpTransport.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java similarity index 67% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/impl/HttpTransport.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java index 974d96831..b084693b6 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/impl/HttpTransport.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/HttpTransport.java @@ -1,13 +1,13 @@ -package com.yomahub.liteflow.ai.interact.transport.impl; +package com.yomahub.liteflow.ai.engine.interact.transport.impl; -import com.yomahub.liteflow.ai.exception.LiteFlowAIException; -import com.yomahub.liteflow.ai.interact.pipeline.ChunkProcessPipeline; -import com.yomahub.liteflow.ai.interact.transport.Transport; -import com.yomahub.liteflow.ai.interact.transport.TransportListener; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; -import com.yomahub.liteflow.ai.util.HttpUtil; +import com.yomahub.liteflow.ai.engine.exception.LiteFlowAIEngineException; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChunkProcessPipeline; +import com.yomahub.liteflow.ai.engine.interact.transport.Transport; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportListener; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.util.HttpUtil; import java.io.IOException; import java.util.Map; @@ -45,7 +45,7 @@ public class HttpTransport implements Transport { // 处理响应 return pipeline.processBlocking(responseBody); } catch (IOException e) { - throw new LiteFlowAIException("阻塞调用大模型失败", e); + throw new LiteFlowAIEngineException("阻塞调用大模型失败", e); } } diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/impl/SseTransport.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java similarity index 87% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/impl/SseTransport.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java index fa4488da3..7ad832a83 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/interact/transport/impl/SseTransport.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/interact/transport/impl/SseTransport.java @@ -1,15 +1,15 @@ -package com.yomahub.liteflow.ai.interact.transport.impl; +package com.yomahub.liteflow.ai.engine.interact.transport.impl; import okhttp3.Headers; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import com.yomahub.liteflow.ai.interact.pipeline.ChunkProcessPipeline; -import com.yomahub.liteflow.ai.interact.transport.Transport; -import com.yomahub.liteflow.ai.interact.transport.TransportListener; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChunkProcessPipeline; +import com.yomahub.liteflow.ai.engine.interact.transport.Transport; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportListener; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; import okhttp3.OkHttpClient; import okhttp3.Request; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/BaseModel.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/BaseModel.java similarity index 83% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/BaseModel.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/BaseModel.java index f5bdb78b6..60371813a 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/BaseModel.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/BaseModel.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model; +package com.yomahub.liteflow.ai.engine.model; /** * 大模型标识接口 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelConfig.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java similarity index 94% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelConfig.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java index fa6150ca3..65a0033e3 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelConfig.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelConfig.java @@ -1,10 +1,10 @@ -package com.yomahub.liteflow.ai.model; +package com.yomahub.liteflow.ai.engine.model; import cn.hutool.core.util.StrUtil; -import com.yomahub.liteflow.ai.util.request.RequestBody; -import com.yomahub.liteflow.ai.util.request.RequestBodyConvertible; -import com.yomahub.liteflow.ai.util.request.RequestHeader; -import com.yomahub.liteflow.ai.util.request.RequestHeaderConvertible; +import com.yomahub.liteflow.ai.engine.util.request.RequestBody; +import com.yomahub.liteflow.ai.engine.util.request.RequestBodyConvertible; +import com.yomahub.liteflow.ai.engine.util.request.RequestHeader; +import com.yomahub.liteflow.ai.engine.util.request.RequestHeaderConvertible; import java.time.Duration; import java.util.LinkedHashMap; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelOptions.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelOptions.java similarity index 53% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelOptions.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelOptions.java index 66c21c990..f7de516aa 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelOptions.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelOptions.java @@ -1,6 +1,6 @@ -package com.yomahub.liteflow.ai.model; +package com.yomahub.liteflow.ai.engine.model; -import com.yomahub.liteflow.ai.util.request.RequestBodyConvertible; +import com.yomahub.liteflow.ai.engine.util.request.RequestBodyConvertible; /** * 大模型选项配置 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelRequest.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelRequest.java similarity index 52% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelRequest.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelRequest.java index d65f7b0ff..8016c6a6e 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelRequest.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelRequest.java @@ -1,6 +1,6 @@ -package com.yomahub.liteflow.ai.model; +package com.yomahub.liteflow.ai.engine.model; -import com.yomahub.liteflow.ai.util.request.RequestBodyConvertible; +import com.yomahub.liteflow.ai.engine.util.request.RequestBodyConvertible; /** * 大模型请求 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelResponse.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelResponse.java similarity index 69% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelResponse.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelResponse.java index caecd316c..0cf21dfc0 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/ModelResponse.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/ModelResponse.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model; +package com.yomahub.liteflow.ai.engine.model; /** * 大模型响应 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/ChatModel.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/ChatModel.java similarity index 68% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/ChatModel.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/ChatModel.java index 756f9f9e6..65d49d784 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/ChatModel.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/ChatModel.java @@ -1,9 +1,9 @@ -package com.yomahub.liteflow.ai.model.chat; +package com.yomahub.liteflow.ai.engine.model.chat; -import com.yomahub.liteflow.ai.model.BaseModel; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.model.BaseModel; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; import java.util.concurrent.CompletableFuture; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatConfig.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java similarity index 93% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatConfig.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java index 81568a859..c63e70371 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatConfig.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatConfig.java @@ -1,8 +1,8 @@ -package com.yomahub.liteflow.ai.model.chat.entity; +package com.yomahub.liteflow.ai.engine.model.chat.entity; -import com.yomahub.liteflow.ai.interact.transport.TransportType; -import com.yomahub.liteflow.ai.model.ModelConfig; -import com.yomahub.liteflow.ai.util.request.RequestBody; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportType; +import com.yomahub.liteflow.ai.engine.model.ModelConfig; +import com.yomahub.liteflow.ai.engine.util.request.RequestBody; import java.time.Duration; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatOptions.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatOptions.java similarity index 96% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatOptions.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatOptions.java index 40ef7ca9f..79f24c2ae 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatOptions.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatOptions.java @@ -1,7 +1,7 @@ -package com.yomahub.liteflow.ai.model.chat.entity; +package com.yomahub.liteflow.ai.engine.model.chat.entity; -import com.yomahub.liteflow.ai.model.ModelOptions; -import com.yomahub.liteflow.ai.util.request.RequestBody; +import com.yomahub.liteflow.ai.engine.model.ModelOptions; +import com.yomahub.liteflow.ai.engine.util.request.RequestBody; /** * 对话选项配置 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatRequest.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatRequest.java similarity index 95% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatRequest.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatRequest.java index 680f18bfc..73d25a5a9 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatRequest.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatRequest.java @@ -1,12 +1,12 @@ -package com.yomahub.liteflow.ai.model.chat.entity; +package com.yomahub.liteflow.ai.engine.model.chat.entity; -import com.yomahub.liteflow.ai.interact.callbacks.ChunkCallbackTransformer; -import com.yomahub.liteflow.ai.interact.callbacks.ResultHandler; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; -import com.yomahub.liteflow.ai.interact.transport.TransportListener; -import com.yomahub.liteflow.ai.model.ModelRequest; -import com.yomahub.liteflow.ai.util.request.RequestBody; -import com.yomahub.liteflow.ai.model.chat.message.Message; +import com.yomahub.liteflow.ai.engine.interact.callbacks.ChunkCallbackTransformer; +import com.yomahub.liteflow.ai.engine.interact.callbacks.ResultHandler; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportListener; +import com.yomahub.liteflow.ai.engine.model.ModelRequest; +import com.yomahub.liteflow.ai.engine.util.request.RequestBody; +import com.yomahub.liteflow.ai.engine.model.chat.message.Message; import org.apache.commons.lang3.function.TriFunction; import java.util.ArrayList; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatResponse.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatResponse.java similarity index 86% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatResponse.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatResponse.java index 35f535e4d..33ef51d90 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ChatResponse.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ChatResponse.java @@ -1,7 +1,7 @@ -package com.yomahub.liteflow.ai.model.chat.entity; +package com.yomahub.liteflow.ai.engine.model.chat.entity; -import com.yomahub.liteflow.ai.model.ModelResponse; -import com.yomahub.liteflow.ai.model.chat.message.AssistantMessage; +import com.yomahub.liteflow.ai.engine.model.ModelResponse; +import com.yomahub.liteflow.ai.engine.model.chat.message.AssistantMessage; /** * chat 响应体 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ToolCall.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ToolCall.java similarity index 83% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ToolCall.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ToolCall.java index 06e0aba37..11940e65f 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/entity/ToolCall.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/entity/ToolCall.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.entity; +package com.yomahub.liteflow.ai.engine.model.chat.entity; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/AbstractMessage.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/AbstractMessage.java similarity index 82% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/AbstractMessage.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/AbstractMessage.java index a622ffcad..7d6d1229d 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/AbstractMessage.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/AbstractMessage.java @@ -1,6 +1,7 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; -import com.yomahub.liteflow.ai.exception.LiteFlowAIException; + +import com.yomahub.liteflow.ai.engine.exception.LiteFlowAIEngineException; import java.util.HashMap; import java.util.Map; @@ -43,10 +44,10 @@ public abstract class AbstractMessage implements Message { */ protected AbstractMessage(MessageType messageType, String textContent, Map metadata) { if (Objects.isNull(messageType)) { - throw new LiteFlowAIException("消息类型不能为 null"); + throw new LiteFlowAIEngineException("消息类型不能为 null"); } if (Objects.isNull(metadata)) { - throw new LiteFlowAIException("Metadata 不能为null"); + throw new LiteFlowAIEngineException("Metadata 不能为null"); } this.messageType = messageType; this.textContent = textContent; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/AssistantMessage.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/AssistantMessage.java similarity index 89% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/AssistantMessage.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/AssistantMessage.java index 3af0223b4..88fe68a57 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/AssistantMessage.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/AssistantMessage.java @@ -1,10 +1,10 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; import java.util.HashMap; import java.util.List; import java.util.Map; -import com.yomahub.liteflow.ai.model.chat.entity.ToolCall; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ToolCall; /** * 大模型消息 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/Content.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/Content.java similarity index 84% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/Content.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/Content.java index ad5a46e23..d46f99ac9 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/Content.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/Content.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/Message.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/Message.java similarity index 78% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/Message.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/Message.java index b34acd413..a94fb7f96 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/Message.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/Message.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; /** * 消息接口 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/MessageType.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/MessageType.java similarity index 93% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/MessageType.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/MessageType.java index 1cd9ffd54..8f17c67d8 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/MessageType.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/MessageType.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; import java.util.Arrays; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/SystemMessage.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/SystemMessage.java similarity index 87% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/SystemMessage.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/SystemMessage.java index 2aff2fcc7..e4a8c39a7 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/SystemMessage.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/SystemMessage.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; import java.util.HashMap; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/ToolMessage.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/ToolMessage.java similarity index 95% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/ToolMessage.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/ToolMessage.java index f3e22e7fa..c322a9805 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/ToolMessage.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/ToolMessage.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; import java.util.HashMap; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/UserMessage.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/UserMessage.java similarity index 88% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/UserMessage.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/UserMessage.java index bb8d02409..369ac8bdd 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/chat/message/UserMessage.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/chat/message/UserMessage.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.chat.message; +package com.yomahub.liteflow.ai.engine.model.chat.message; import java.util.HashMap; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/EmbeddingModel.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/EmbeddingModel.java similarity index 61% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/EmbeddingModel.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/EmbeddingModel.java index bbb554696..d73364cd0 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/EmbeddingModel.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/EmbeddingModel.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.embedding; +package com.yomahub.liteflow.ai.engine.model.embedding; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/entity/EmbeddingOptions.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/entity/EmbeddingOptions.java similarity index 59% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/entity/EmbeddingOptions.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/entity/EmbeddingOptions.java index 4256a9390..f7d4fa162 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/entity/EmbeddingOptions.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/entity/EmbeddingOptions.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.embedding.entity; +package com.yomahub.liteflow.ai.engine.model.embedding.entity; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/entity/EmbeddingRequest.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/entity/EmbeddingRequest.java similarity index 59% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/entity/EmbeddingRequest.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/entity/EmbeddingRequest.java index d58d39e42..a621f9294 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/embedding/entity/EmbeddingRequest.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/embedding/entity/EmbeddingRequest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.embedding.entity; +package com.yomahub.liteflow.ai.engine.model.embedding.entity; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/RerankModel.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/RerankModel.java similarity index 61% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/RerankModel.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/RerankModel.java index 90eb145cf..28a65844c 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/RerankModel.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/RerankModel.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.rerank; +package com.yomahub.liteflow.ai.engine.model.rerank; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/entity/RerankOptions.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/entity/RerankOptions.java similarity index 59% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/entity/RerankOptions.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/entity/RerankOptions.java index b26cae2d3..5796b984c 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/entity/RerankOptions.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/entity/RerankOptions.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.rerank.entity; +package com.yomahub.liteflow.ai.engine.model.rerank.entity; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/entity/RerankPayloads.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/entity/RerankPayloads.java similarity index 59% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/entity/RerankPayloads.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/entity/RerankPayloads.java index 31fef6ee3..bc6ef3868 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/rerank/entity/RerankPayloads.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/rerank/entity/RerankPayloads.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.rerank.entity; +package com.yomahub.liteflow.ai.engine.model.rerank.entity; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/LiteFlowAIModel.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/LiteFlowAIModel.java similarity index 92% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/LiteFlowAIModel.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/LiteFlowAIModel.java index 134be3d6a..b18bd7593 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/LiteFlowAIModel.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/LiteFlowAIModel.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.runtime; +package com.yomahub.liteflow.ai.engine.model.runtime; import org.springframework.beans.factory.config.ConfigurableBeanFactory; import org.springframework.context.annotation.Scope; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelRuntimeFactory.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelRuntimeFactory.java similarity index 78% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelRuntimeFactory.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelRuntimeFactory.java index f09ae0f40..7590f220c 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelRuntimeFactory.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelRuntimeFactory.java @@ -1,12 +1,12 @@ -package com.yomahub.liteflow.ai.model.runtime; +package com.yomahub.liteflow.ai.engine.model.runtime; -import com.yomahub.liteflow.ai.exception.LiteFlowAIException; -import com.yomahub.liteflow.ai.model.BaseModel; -import com.yomahub.liteflow.ai.model.ModelConfig; -import com.yomahub.liteflow.ai.model.chat.ChatModel; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; -import com.yomahub.liteflow.ai.model.embedding.EmbeddingModel; -import com.yomahub.liteflow.ai.util.SpringUtil; +import com.yomahub.liteflow.ai.engine.exception.LiteFlowAIEngineException; +import com.yomahub.liteflow.ai.engine.model.BaseModel; +import com.yomahub.liteflow.ai.engine.model.ModelConfig; +import com.yomahub.liteflow.ai.engine.model.chat.ChatModel; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.model.embedding.EmbeddingModel; +import com.yomahub.liteflow.ai.engine.util.SpringUtil; import java.util.Map; import java.util.Objects; @@ -48,7 +48,7 @@ public class ModelRuntimeFactory { return RUNTIME_CACHE.computeIfAbsent(cacheKey, key -> { Class> runtimeClass = PROVIDER_REGISTRY.get(provider); if (Objects.isNull(runtimeClass)) { - throw new LiteFlowAIException("不支持的模型提供者: " + provider); + throw new LiteFlowAIEngineException("不支持的模型提供者: " + provider); } try { @@ -69,7 +69,7 @@ public class ModelRuntimeFactory { public static ChatModel createChatRuntime(String provider, ChatConfig config) { BaseModel model = createRuntime(provider + ModelType.CHAT_MODEL, config); if (!(model instanceof ChatModel)) { - throw new LiteFlowAIException("提供者 " + provider + " 不支持聊天模型"); + throw new LiteFlowAIEngineException("提供者 " + provider + " 不支持聊天模型"); } return (ChatModel) model; } @@ -84,7 +84,7 @@ public class ModelRuntimeFactory { public static EmbeddingModel createEmbeddingRuntime(String provider, ModelConfig config) { BaseModel model = createRuntime(provider + ModelType.EMBEDDING_MODEL, config); if (!(model instanceof EmbeddingModel)) { - throw new LiteFlowAIException("提供者 " + provider + " 不支持嵌入模型"); + throw new LiteFlowAIEngineException("提供者 " + provider + " 不支持嵌入模型"); } return (EmbeddingModel) model; } diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelRuntimeRegistrar.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelRuntimeRegistrar.java similarity index 84% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelRuntimeRegistrar.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelRuntimeRegistrar.java index 3a726cf6e..786de161a 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelRuntimeRegistrar.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelRuntimeRegistrar.java @@ -1,8 +1,8 @@ -package com.yomahub.liteflow.ai.model.runtime; +package com.yomahub.liteflow.ai.engine.model.runtime; -import com.yomahub.liteflow.ai.model.BaseModel; -import com.yomahub.liteflow.ai.model.ModelConfig; -import com.yomahub.liteflow.ai.util.SpringUtil; +import com.yomahub.liteflow.ai.engine.model.BaseModel; +import com.yomahub.liteflow.ai.engine.model.ModelConfig; +import com.yomahub.liteflow.ai.engine.util.SpringUtil; import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLoggerManager; import org.springframework.beans.factory.SmartInitializingSingleton; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelType.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelType.java similarity index 76% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelType.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelType.java index 650efe0a2..a66b93444 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/model/runtime/ModelType.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/model/runtime/ModelType.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.model.runtime; +package com.yomahub.liteflow.ai.engine.model.runtime; /** * 模型类型 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolCall.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolCall.java similarity index 64% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolCall.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolCall.java index ac607bb1a..c2c08a1e1 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolCall.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolCall.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.tool; +package com.yomahub.liteflow.ai.engine.tool; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolContinuation.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolContinuation.java similarity index 80% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolContinuation.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolContinuation.java index 50a3b8728..1766e38b2 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolContinuation.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolContinuation.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.tool; +package com.yomahub.liteflow.ai.engine.tool; import java.util.List; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolResult.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolResult.java similarity index 65% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolResult.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolResult.java index 79dce2b19..615faba33 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/tool/ToolResult.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/tool/ToolResult.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.tool; +package com.yomahub.liteflow.ai.engine.tool; /** * TODO diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/HttpUtil.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/HttpUtil.java similarity index 99% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/HttpUtil.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/HttpUtil.java index 15a06ac20..d28ffb8db 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/HttpUtil.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/HttpUtil.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util; +package com.yomahub.liteflow.ai.engine.util; import com.alibaba.fastjson2.JSON; import com.yomahub.liteflow.log.LFLog; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/SpringUtil.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/SpringUtil.java similarity index 98% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/SpringUtil.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/SpringUtil.java index 36923e9c5..96fd9a01a 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/SpringUtil.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/SpringUtil.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util; +package com.yomahub.liteflow.ai.engine.util; import cn.hutool.core.lang.TypeReference; import org.springframework.beans.BeansException; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/HttpPartBuilder.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/HttpPartBuilder.java similarity index 99% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/HttpPartBuilder.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/HttpPartBuilder.java index 6a24c784b..4bd7c8680 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/HttpPartBuilder.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/HttpPartBuilder.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util.request; +package com.yomahub.liteflow.ai.engine.util.request; import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONWriter; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestBody.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestBody.java similarity index 96% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestBody.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestBody.java index 42a8708d8..030f46cf2 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestBody.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestBody.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util.request; +package com.yomahub.liteflow.ai.engine.util.request; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestBodyConvertible.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestBodyConvertible.java similarity index 85% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestBodyConvertible.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestBodyConvertible.java index e744e7587..f5592fb69 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestBodyConvertible.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestBodyConvertible.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util.request; +package com.yomahub.liteflow.ai.engine.util.request; /** * 实现该接口的类可以转换为请求体。 diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestHeader.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestHeader.java similarity index 96% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestHeader.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestHeader.java index 6158e7dcb..fad31afcc 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestHeader.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestHeader.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util.request; +package com.yomahub.liteflow.ai.engine.util.request; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestHeaderConvertible.java b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestHeaderConvertible.java similarity index 86% rename from liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestHeaderConvertible.java rename to liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestHeaderConvertible.java index e8ce951f9..574fbb96a 100644 --- a/liteflow-ai/liteflow-ai-core/src/main/java/com/yomahub/liteflow/ai/util/request/RequestHeaderConvertible.java +++ b/liteflow-ai/liteflow-ai-engine/src/main/java/com/yomahub/liteflow/ai/engine/util/request/RequestHeaderConvertible.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.ai.util.request; +package com.yomahub.liteflow.ai.engine.util.request; /** * 实现该接口的类可以转换为请求头 diff --git a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/interact/OllamaProtocolTransformer.java b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/interact/OllamaProtocolTransformer.java index 6b17c26e3..94daad133 100644 --- a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/interact/OllamaProtocolTransformer.java +++ b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/interact/OllamaProtocolTransformer.java @@ -1,11 +1,11 @@ package com.yomahub.liteflow.ai.model.ollama.interact; -import com.yomahub.liteflow.ai.interact.pipeline.ChatContext; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformer; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformerRegistrar; -import com.yomahub.liteflow.ai.interact.protocol.StreamingProtocolChunk; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; -import com.yomahub.liteflow.ai.model.chat.message.AssistantMessage; +import com.yomahub.liteflow.ai.engine.interact.pipeline.ChatContext; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformer; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformerRegistrar; +import com.yomahub.liteflow.ai.engine.interact.protocol.StreamingProtocolChunk; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.model.chat.message.AssistantMessage; import static com.yomahub.liteflow.ai.model.ollama.constants.OllamaConstant.PROVIDER_NAME; 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 10da6e2df..9daed8c46 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 @@ -1,7 +1,7 @@ package com.yomahub.liteflow.ai.model.ollama.model.chat; -import com.yomahub.liteflow.ai.interact.transport.TransportType; -import com.yomahub.liteflow.ai.model.chat.entity.ChatConfig; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportType; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatConfig; import java.time.Duration; import java.util.Map; diff --git a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatModel.java b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatModel.java index 5a9b47159..423d0b5c7 100644 --- a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatModel.java +++ b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatModel.java @@ -1,16 +1,16 @@ package com.yomahub.liteflow.ai.model.ollama.model.chat; -import com.yomahub.liteflow.ai.interact.InteractClient; -import com.yomahub.liteflow.ai.interact.LlmInteractClient; -import com.yomahub.liteflow.ai.model.chat.ChatModel; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; -import com.yomahub.liteflow.ai.model.runtime.LiteFlowAIModel; +import com.yomahub.liteflow.ai.engine.interact.InteractClient; +import com.yomahub.liteflow.ai.engine.interact.LlmInteractClient; +import com.yomahub.liteflow.ai.engine.model.chat.ChatModel; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.model.runtime.LiteFlowAIModel; import java.util.concurrent.CompletableFuture; import static com.yomahub.liteflow.ai.model.ollama.constants.OllamaConstant.PROVIDER_NAME; -import static com.yomahub.liteflow.ai.model.runtime.ModelType.CHAT_MODEL; +import static com.yomahub.liteflow.ai.engine.model.runtime.ModelType.CHAT_MODEL; /** * TODO diff --git a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatRequest.java b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatRequest.java index 586a5f418..c07298502 100644 --- a/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatRequest.java +++ b/liteflow-ai/liteflow-ai-ollama/src/main/java/com/yomahub/liteflow/ai/model/ollama/model/chat/OllamaChatRequest.java @@ -1,12 +1,12 @@ package com.yomahub.liteflow.ai.model.ollama.model.chat; -import com.yomahub.liteflow.ai.interact.callbacks.ChunkCallbackTransformer; -import com.yomahub.liteflow.ai.interact.callbacks.ResultHandler; -import com.yomahub.liteflow.ai.interact.transport.TransportListener; -import com.yomahub.liteflow.ai.util.request.RequestBody; -import com.yomahub.liteflow.ai.model.chat.entity.ChatOptions; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.message.Message; +import com.yomahub.liteflow.ai.engine.interact.callbacks.ChunkCallbackTransformer; +import com.yomahub.liteflow.ai.engine.interact.callbacks.ResultHandler; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportListener; +import com.yomahub.liteflow.ai.engine.util.request.RequestBody; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatOptions; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.message.Message; import java.util.List; diff --git a/liteflow-ai/pom.xml b/liteflow-ai/pom.xml index d093bf65f..337122a90 100644 --- a/liteflow-ai/pom.xml +++ b/liteflow-ai/pom.xml @@ -14,6 +14,8 @@ liteflow-ai-core liteflow-ai-ollama + liteflow-ai-engine + liteflow-ai-bom liteflow-ai diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/ProxyTest.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/ProxyTest.java similarity index 87% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/ProxyTest.java rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/ProxyTest.java index 66e3b8a59..05e76386a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/ProxyTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/ProxyTest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.ai.proxy; +package com.yomahub.liteflow.test.ai.core.proxy; import com.yomahub.liteflow.ai.context.ChatContext; import com.yomahub.liteflow.core.FlowExecutor; @@ -20,10 +20,10 @@ import javax.annotation.Resource; * @since TODO */ -@TestPropertySource(properties = {"spring.config.location=classpath:/proxy/application.yaml"}) +@TestPropertySource(properties = {"spring.config.location=classpath:core/proxy/application.yaml"}) @SpringBootTest(classes = {ProxyTest.class}) @EnableAutoConfiguration -@ComponentScan({"com.yomahub.liteflow.test.ai.proxy.cmp"}) +@ComponentScan({"com.yomahub.liteflow.test.ai.core.proxy.cmp"}) public class ProxyTest { @Resource diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/TTMPTest.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/TTMPTest.java new file mode 100644 index 000000000..9d7f47138 --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/TTMPTest.java @@ -0,0 +1,240 @@ +package com.yomahub.liteflow.test.ai.core.proxy; + +/** + * TODO + * + * @author 苍镜月 + * @since TODO + */ + +public class TTMPTest { + +// static class Output { +// private String content; +// } +// +// @Test +// public void test3() throws Exception { +// Class clazz = createLiteFlowAIAssistant(String.class); +// Object assitant = AiServices.builder(clazz) +// .chatModel(null) +// .build(); +// +// } +// +// @Test +// public void test2() throws Exception { +// // --- 准备阶段 --- +// // 我们期望的动态类型是 String.class +// Class expectedDynamicType = Output.class; +// System.out.println("期望的泛型参数: " + expectedDynamicType.getName()); +// System.out.println("------------------------------------------"); +// +// // --- 执行阶段 --- +// // 动态创建接口,并传入 String.class +// Class dynamicInterface = createLiteFlowAIAssistant(expectedDynamicType); +// +// // --- 验证阶段 --- +// System.out.println("开始验证动态生成的接口: " + dynamicInterface.getName()); +// +// // 1. 获取 chat(String, String) 方法的 Method 对象 +// Method chatMethod = dynamicInterface.getMethod("chat", String.class, String.class); +// System.out.println("\n成功获取到方法: " + chatMethod.getName()); +// +// // 2. 获取方法的泛型返回类型 +// Type genericReturnType = chatMethod.getGenericReturnType(); +// System.out.println("方法的 getGenericReturnType() 返回: " + genericReturnType.getTypeName()); +// +// // 3. 检查返回类型是否是参数化类型 (例如 Result 而不是 Result) +// if (genericReturnType instanceof ParameterizedType) { +// System.out.println("✅ 类型检查通过: 返回类型是 ParameterizedType"); +// +// // 4. 将其转换为 ParameterizedType +// ParameterizedType parameterizedType = (ParameterizedType) genericReturnType; +// +// // 5. 验证原始类型是否为 Result.class +// Type rawType = parameterizedType.getRawType(); +// System.out.println(" - 原始类型 (Raw Type): " + rawType.getTypeName()); +// if (rawType.equals(Result.class)) { +// System.out.println(" - ✅ 原始类型验证成功: 是 Result.class"); +// } else { +// System.out.println(" - ❌ 原始类型验证失败: 不是 Result.class"); +// } +// +// // 6. 获取所有泛型参数 (例如 中的 String 和 Integer) +// Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); +// System.out.println(" - 泛型参数列表 (Actual Type Arguments): " + Arrays.toString(actualTypeArguments)); +// +// // 7. 验证泛型参数的数量和类型 +// if (actualTypeArguments.length == 1) { +// System.out.println(" - ✅ 泛型参数数量验证成功: 数量为 1"); +// Type actualTypeArgument = actualTypeArguments[0]; +// +// if (actualTypeArgument.equals(expectedDynamicType)) { +// System.out.println(" - ✅✅✅ 最终验证成功: 泛型参数与期望的 " + expectedDynamicType.getName() + " 完全匹配!"); +// } else { +// System.out.println(" - ❌❌❌ 最终验证失败: 泛型参数是 " + actualTypeArgument.getTypeName() + " 而不是期望的 " + expectedDynamicType.getName()); +// } +// } else { +// System.out.println(" - ❌ 泛型参数数量验证失败: 数量不为 1"); +// } +// +// } else { +// System.out.println("❌ 类型检查失败: 返回类型不是 ParameterizedType,无法进行泛型验证。"); +// } +// } +// +// @Test +// public void test1() throws Exception { +// // --- 准备阶段 --- +// // 我们期望的动态类型是 String.class +// Class expectedDynamicType = String.class; +// System.out.println("期望的泛型参数: " + expectedDynamicType.getName()); +// System.out.println("------------------------------------------"); +// +// // --- 执行阶段 --- +// // 动态创建接口,并传入 String.class +// Class dynamicInterface = createLiteFlowAIAssistant(expectedDynamicType); +// +// // --- 验证阶段 --- +// System.out.println("开始验证动态生成的接口: " + dynamicInterface.getName()); +// +// // 1. 获取 chat(String, String) 方法的 Method 对象 +// Method chatMethod = dynamicInterface.getMethod("chat", String.class, String.class); +// System.out.println("\n成功获取到方法: " + chatMethod.getName()); +// +// // 2. 获取方法的泛型返回类型 +// Type genericReturnType = chatMethod.getGenericReturnType(); +// System.out.println("方法的 getGenericReturnType() 返回: " + genericReturnType.getTypeName()); +// +// // 3. 检查返回类型是否是参数化类型 (例如 Result 而不是 Result) +// if (genericReturnType instanceof ParameterizedType) { +// System.out.println("✅ 类型检查通过: 返回类型是 ParameterizedType"); +// +// // 4. 将其转换为 ParameterizedType +// ParameterizedType parameterizedType = (ParameterizedType) genericReturnType; +// +// // 5. 验证原始类型是否为 Result.class +// Type rawType = parameterizedType.getRawType(); +// System.out.println(" - 原始类型 (Raw Type): " + rawType.getTypeName()); +// if (rawType.equals(Result.class)) { +// System.out.println(" - ✅ 原始类型验证成功: 是 Result.class"); +// } else { +// System.out.println(" - ❌ 原始类型验证失败: 不是 Result.class"); +// } +// +// // 6. 获取所有泛型参数 (例如 中的 String 和 Integer) +// Type[] actualTypeArguments = parameterizedType.getActualTypeArguments(); +// System.out.println(" - 泛型参数列表 (Actual Type Arguments): " + Arrays.toString(actualTypeArguments)); +// +// // 7. 验证泛型参数的数量和类型 +// if (actualTypeArguments.length == 1) { +// System.out.println(" - ✅ 泛型参数数量验证成功: 数量为 1"); +// Type actualTypeArgument = actualTypeArguments[0]; +// +// if (actualTypeArgument.equals(expectedDynamicType)) { +// System.out.println(" - ✅✅✅ 最终验证成功: 泛型参数与期望的 " + expectedDynamicType.getName() + " 完全匹配!"); +// } else { +// System.out.println(" - ❌❌❌ 最终验证失败: 泛型参数是 " + actualTypeArgument.getTypeName() + " 而不是期望的 " + expectedDynamicType.getName()); +// } +// } else { +// System.out.println(" - ❌ 泛型参数数量验证失败: 数量不为 1"); +// } +// +// } else { +// System.out.println("❌ 类型检查失败: 返回类型不是 ParameterizedType,无法进行泛型验证。"); +// } +// } +// +// +// @Test +// public void test() throws Exception { +// Class liteFlowAIAssistant = createLiteFlowAIAssistant(Output.class); +// System.out.println(liteFlowAIAssistant); +// } +// +// /** +// * 动态创建一个 LiteFlowAIAssistant 接口的实现。 +// * +// * @param dynamicResultType 动态指定的 chat 方法返回结果类型,例如 String.class +// * @return 动态生成的接口 Class 对象 +// * @throws Exception 如果创建失败 +// */ +// public static Class createLiteFlowAIAssistant(Class dynamicResultType) throws Exception { +// +// // 1. 使用 TypeDescription.Generic.Builder 来创建参数化的返回类型 +// // 这是处理泛型的关键步骤,我们构建一个表示 Result 的类型 +// TypeDescription.Generic genericResultType = TypeDescription.Generic.Builder +// .parameterizedType(Result.class, dynamicResultType) +// .build(); +// +// // 2. 使用 ByteBuddy 开始创建接口 +// DynamicType.Unloaded dynamicType = new ByteBuddy() +// // 明确指定我们要创建一个接口 +// .makeInterface() +// // 为接口命名 +// .name("com.example.generated.DynamicLiteFlowAIAssistant") +// +// // --- 定义第一个方法: chat --- +// .defineMethod("chat", genericResultType, Visibility.PUBLIC) +// // 为此方法定义一个泛型参数 +// // 注意:即使我们已经将返回类型具体化为 Result, +// // 原始接口的方法签名中仍有 ,我们在这里进行保留。 +// // 如果你的目标是完全擦除方法签名中的 ,可以省略此行。 +//// .withTypeVariable("T") +// // 添加第一个参数: String userMessage +// .withParameter(String.class, "userMessage") +// // 为第一个参数添加注解: @V("userMessage") +// .annotateParameter(AnnotationDescription.Builder.ofType(V.class) +// .define("value", "userMessage") +// .build()) +// // 添加第二个参数: String systemMessage +// .withParameter(String.class, "systemMessage") +// // 为第二个参数添加注解: @V("systemMessage") +// .annotateParameter(AnnotationDescription.Builder.ofType(V.class) +// .define("value", "systemMessage") +// .build()) +// .withoutCode() +// // 为 chat 方法本身添加注解 +// .annotateMethod( +// // @SystemMessage("{{systemMessage}}") +// AnnotationDescription.Builder.ofType(SystemMessage.class) +// .defineArray("value", "{{systemMessage}}") +// .build(), +// // @UserMessage("{{userMessage}}") +// AnnotationDescription.Builder.ofType(UserMessage.class) +// .defineArray("value", "{{userMessage}}") +// .build() +// ) +// +// // --- 定义第二个方法: chatStream --- +// .defineMethod("chatStream", TokenStream.class, Visibility.PUBLIC) +// // 添加参数和注解,逻辑同上 +// .withParameter(String.class, "userMessage") +// .annotateParameter(AnnotationDescription.Builder.ofType(V.class) +// .define("value", "userMessage") +// .build()) +// .withParameter(String.class, "systemMessage") +// .annotateParameter(AnnotationDescription.Builder.ofType(V.class) +// .define("value", "systemMessage") +// .build()) +// .withoutCode() +// // 为 chatStream 方法添加注解 +// .annotateMethod( +// AnnotationDescription.Builder.ofType(SystemMessage.class) +// .defineArray("value", "{{systemMessage}}") +// .build(), +// AnnotationDescription.Builder.ofType(UserMessage.class) +// .defineArray("value", "{{userMessage}}") +// .build() +// ) +// +// // 3. 完成创建 +// .make(); +// +// // 4. 加载生成的类并返回 Class 对象 +// return dynamicType +// .load(AiServiceFactory.class.getClassLoader(), ClassLoadingStrategy.Default.WRAPPER) +// .getLoaded(); +// } +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/TmpTest.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/TmpTest.java new file mode 100644 index 000000000..904c2ea8c --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/TmpTest.java @@ -0,0 +1,58 @@ +package com.yomahub.liteflow.test.ai.core.proxy; + +/** + * TODO + * + * @author 苍镜月 + * @since TODO + */ + +public class TmpTest { +// +// @Test +// public void test1() { +// Provider provider = new Provider() { +// @Override +// public Optional getString() { +// return Optional.empty(); +// } +// +// @Override +// public Optional getDouble() { +// return Optional.empty(); +// } +// }; +// +// System.out.println(provider.getDouble().orElseThrow(() -> new RuntimeException("No value present"))); +// +// } +// +// +// static interface Provider { +// Optional getString(); +// +// Optional getDouble(); +// } +// +// +// +// @Test +// public void testProxyFactoryBean() throws Exception { +//// AIComponentProxyFactoryBean factoryBean = new AIComponentProxyFactoryBean<>(cmp.class); +//// +//// System.out.println(cmp.class.getAnnotations()); +//// Class interfaceClass = factoryBean.getInterfaceClass(); +//// Class objectType = factoryBean.getObjectType(); +//// +//// System.out.println(interfaceClass); +//// System.out.println(Arrays.toString(interfaceClass.getAnnotations())); +//// +//// System.out.println(objectType); +//// System.out.println(Arrays.toString(objectType.getAnnotations())); +// } +// +// @AIComponent +// @AIChat +// @AIInput +// public interface cmp {} +} diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/ACmp.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/ACmp.java similarity index 86% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/ACmp.java rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/ACmp.java index 4e7d59d56..4e7f4fdad 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/ACmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/ACmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.ai.proxy.cmp; +package com.yomahub.liteflow.test.ai.core.proxy.cmp; import com.yomahub.liteflow.core.NodeComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/AICmp.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/AICmp.java similarity index 88% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/AICmp.java rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/AICmp.java index 0c69b821a..34f1e012d 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/AICmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/AICmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.ai.proxy.cmp; +package com.yomahub.liteflow.test.ai.core.proxy.cmp; import com.yomahub.liteflow.ai.annotation.*; import com.yomahub.liteflow.ai.domain.enums.ResponseType; @@ -18,7 +18,7 @@ import com.yomahub.liteflow.ai.domain.enums.ResponseType; model = "qwen3:32b" ) @AIChat( - systemPrompt = "classpath:proxy/system_prompt.txt", + systemPrompt = "classpath:core/proxy/system_prompt.txt", userPrompt = "{{question}}, {{answer}}" ) @AIInput( diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/BCmp.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/BCmp.java similarity index 86% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/BCmp.java rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/BCmp.java index c00097127..8153c9b7a 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/BCmp.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/BCmp.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.ai.proxy.cmp; +package com.yomahub.liteflow.test.ai.core.proxy.cmp; import com.yomahub.liteflow.core.NodeComponent; import org.springframework.stereotype.Component; diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/Output.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/Output.java similarity index 87% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/Output.java rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/Output.java index e9c714c62..05ea5bafb 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/proxy/cmp/Output.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/proxy/cmp/Output.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.ai.proxy.cmp; +package com.yomahub.liteflow.test.ai.core.proxy.cmp; /** * 测试结构化输出使用 diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/util/SetUtilTest.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/util/SetUtilTest.java similarity index 99% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/util/SetUtilTest.java rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/util/SetUtilTest.java index 8dcceb527..e7bfe1a6b 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/util/SetUtilTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/core/util/SetUtilTest.java @@ -1,4 +1,4 @@ -package com.yomahub.liteflow.test.ai.util; +package com.yomahub.liteflow.test.ai.core.util; import com.yomahub.liteflow.ai.util.SetUtil; import com.yomahub.liteflow.ai.util.TriState; diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelConfiguration.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelConfiguration.java index 5ac873548..76dd1fe80 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelConfiguration.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelConfiguration.java @@ -1,6 +1,6 @@ package com.yomahub.liteflow.test.ai.model.ollama; -import com.yomahub.liteflow.ai.interact.transport.TransportType; +import com.yomahub.liteflow.ai.engine.interact.transport.TransportType; import com.yomahub.liteflow.ai.model.ollama.constants.OllamaConstant; import com.yomahub.liteflow.ai.model.ollama.interact.OllamaProtocolTransformer; import com.yomahub.liteflow.ai.model.ollama.model.chat.OllamaChatConfig; diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelFactoryTest.java b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelFactoryTest.java index 6040970ae..f1557acf2 100644 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelFactoryTest.java +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/java/com/yomahub/liteflow/test/ai/model/ollama/ModelFactoryTest.java @@ -1,19 +1,19 @@ package com.yomahub.liteflow.test.ai.model.ollama; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformer; -import com.yomahub.liteflow.ai.interact.protocol.ProtocolTransformerFactory; -import com.yomahub.liteflow.ai.model.chat.ChatModel; -import com.yomahub.liteflow.ai.model.chat.entity.ChatOptions; -import com.yomahub.liteflow.ai.model.chat.entity.ChatRequest; -import com.yomahub.liteflow.ai.model.chat.entity.ChatResponse; -import com.yomahub.liteflow.ai.model.chat.message.AssistantMessage; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformer; +import com.yomahub.liteflow.ai.engine.interact.protocol.ProtocolTransformerFactory; +import com.yomahub.liteflow.ai.engine.model.chat.ChatModel; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatOptions; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatRequest; +import com.yomahub.liteflow.ai.engine.model.chat.entity.ChatResponse; +import com.yomahub.liteflow.ai.engine.model.chat.message.AssistantMessage; import com.yomahub.liteflow.ai.model.ollama.constants.OllamaConstant; import com.yomahub.liteflow.ai.model.ollama.model.chat.OllamaChatConfig; import com.yomahub.liteflow.ai.model.ollama.model.chat.OllamaChatModel; import com.yomahub.liteflow.ai.model.ollama.model.chat.OllamaChatRequest; -import com.yomahub.liteflow.ai.model.runtime.ModelRuntimeFactory; -import com.yomahub.liteflow.ai.model.runtime.ModelRuntimeRegistrar; -import com.yomahub.liteflow.ai.util.SpringUtil; +import com.yomahub.liteflow.ai.engine.model.runtime.ModelRuntimeFactory; +import com.yomahub.liteflow.ai.engine.model.runtime.ModelRuntimeRegistrar; +import com.yomahub.liteflow.ai.engine.util.SpringUtil; import com.yomahub.liteflow.log.LFLog; import com.yomahub.liteflow.log.LFLoggerManager; import org.junit.jupiter.api.Test; @@ -96,8 +96,8 @@ public class ModelFactoryTest { } ========================================= 2025-07-19 18:43:01.505 INFO 71216 --- [onPool-worker-1] c.y.l.ai.model.ollama.ModelFactoryTest : chat start - 2025-07-19 18:43:37.115 INFO 71216 --- [onPool-worker-1] com.yomahub.liteflow.ai.util.HttpUtil : 正在关闭 OkHttp 客户端。 - 2025-07-19 18:43:37.117 INFO 71216 --- [onPool-worker-1] com.yomahub.liteflow.ai.util.HttpUtil : OkHttp 客户端已成功关闭。 + 2025-07-19 18:43:37.115 INFO 71216 --- [onPool-worker-1] com.yomahub.liteflow.ai.engine.util.HttpUtil : 正在关闭 OkHttp 客户端。 + 2025-07-19 18:43:37.117 INFO 71216 --- [onPool-worker-1] com.yomahub.liteflow.ai.engine.util.HttpUtil : OkHttp 客户端已成功关闭。 2025-07-19 18:43:37.117 INFO 71216 --- [onPool-worker-1] c.y.l.ai.model.ollama.ModelFactoryTest : chat completion: {"model":"qwen3:32b","created_at":"2025-07-19T10:43:37.097945Z","response":"The sky appears blue due to a phenomenon called **Rayleigh scattering**, which involves the way light interacts with the Earth's atmosphere.\n\n### Here's a simple explanation:\n\n1. **Sunlight is made of many colors** — each color has a different wavelength.\n2. When sunlight enters Earth's atmosphere, it collides with molecules and small particles in the air.\n3. **Blue light (shorter wavelengths)** is scattered in all directions by the gases and particles in the atmosphere **much more effectively** than other colors like red or yellow (which have longer wavelengths).\n4. This scattered blue light is what we see when we look up — hence, the **sky appears blue** during the day.\n\n### Why not violet?\nViolet light has an even shorter wavelength than blue and is scattered even more. However, our eyes are less sensitive to violet, and the sun emits less violet light compared to blue. Also, our eyes' cone cells are more responsive to blue light, so we perceive the sky as blue rather than violet.\n\n### Fun facts:\n- During sunrise or sunset, the sky appears red or orange because the sunlight has to pass through more of the Earth's atmosphere, scattering out the blue light and leaving the longer wavelengths (reds and oranges) to dominate.\n\nLet me know if you'd like a more detailed scientific explanation!","done":true,"done_reason":"stop","context":[151644,872,198,10234,12884,374,6303,30,608,2152,5854,766,151645,198,151644,77091,198,151667,271,151668,271,785,12884,7952,6303,4152,311,264,24844,2598,3070,29187,62969,71816,97219,892,17601,279,1616,3100,83161,448,279,9237,594,16566,382,14374,5692,594,264,4285,16148,1447,16,13,3070,30092,4145,374,1865,315,1657,7987,334,1959,1817,1894,702,264,2155,45306,624,17,13,3197,39020,28833,9237,594,16566,11,432,4530,3341,448,34615,323,2613,18730,304,279,3720,624,18,13,3070,10331,3100,320,8676,261,92859,32295,374,36967,304,678,17961,553,279,44512,323,18730,304,279,16566,3070,58078,803,13444,334,1091,1008,7987,1075,2518,476,13753,320,8206,614,5021,92859,4292,19,13,1096,36967,6303,3100,374,1128,582,1490,979,582,1401,705,1959,16085,11,279,3070,26684,7952,6303,334,2337,279,1899,382,14374,8429,537,79736,5267,53,30912,3100,702,458,1496,23327,45306,1091,6303,323,374,36967,1496,803,13,4354,11,1039,6414,525,2686,16216,311,79736,11,323,279,7015,72780,2686,79736,3100,7707,311,6303,13,7281,11,1039,6414,6,22161,7761,525,803,25988,311,6303,3100,11,773,582,44393,279,12884,438,6303,4751,1091,79736,382,14374,16071,13064,510,12,11954,63819,476,42984,11,279,12884,7952,2518,476,18575,1576,279,39020,702,311,1494,1526,803,315,279,9237,594,16566,11,71816,700,279,6303,3100,323,9380,279,5021,92859,320,53369,323,84038,8,311,40736,382,10061,752,1414,421,498,4172,1075,264,803,11682,12344,16148,0],"total_duration":34312626292,"load_duration":3694902292,"prompt_eval_count":21,"prompt_eval_duration":4762227958,"eval_count":270,"eval_duration":25851820750} */ diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/application.yaml b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/application.yaml new file mode 100644 index 000000000..33b093acc --- /dev/null +++ b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/application.yaml @@ -0,0 +1,6 @@ +liteflow: + rule-source: core/proxy/flow.el.xml + ai: + base-packages: + - com.liteflow.test.ai.core.proxy.cmp + enable: true \ No newline at end of file diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/flow.el.xml b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/flow.el.xml similarity index 100% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/flow.el.xml rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/flow.el.xml diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/system_prompt.txt b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/system_prompt.txt similarity index 100% rename from liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/system_prompt.txt rename to liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/core/proxy/system_prompt.txt diff --git a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/application.yaml b/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/application.yaml deleted file mode 100644 index 1e0490e13..000000000 --- a/liteflow-testcase-el/liteflow-testcase-el-ai/src/test/resources/proxy/application.yaml +++ /dev/null @@ -1,6 +0,0 @@ -liteflow: - rule-source: proxy/flow.el.xml - ai: - base-packages: - - com.liteflow.test.ai.proxy.cmp - enable: true \ No newline at end of file