Skip to content

Commit 7c4acac

Browse files
committed
Review comments
1 parent b3da32d commit 7c4acac

File tree

12 files changed

+32
-42
lines changed

12 files changed

+32
-42
lines changed

experimental/ai/impl/pom.xml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,10 @@
1111
<artifactId>serverlessworkflow-experimental-ai-impl</artifactId>
1212
<name>ServelessWorkflow:: Experimental:: AI:: Impl</name>
1313
<dependencies>
14-
<dependency>
15-
<groupId>io.serverlessworkflow</groupId>
16-
<artifactId>serverlessworkflow-experimental-types</artifactId>
17-
</dependency>
1814
<dependency>
1915
<groupId>io.serverlessworkflow</groupId>
2016
<artifactId>serverlessworkflow-impl-core</artifactId>
2117
</dependency>
22-
<dependency>
23-
<groupId>io.serverlessworkflow</groupId>
24-
<artifactId>serverlessworkflow-experimental-types</artifactId>
25-
</dependency>
2618
<dependency>
2719
<groupId>io.serverlessworkflow</groupId>
2820
<artifactId>serverlessworkflow-experimental-ai-types</artifactId>
@@ -31,7 +23,6 @@
3123
<groupId>dev.langchain4j</groupId>
3224
<artifactId>langchain4j</artifactId>
3325
<version>1.1.0</version>
34-
<optional>true</optional>
3526
</dependency>
3627
<dependency>
3728
<groupId>org.junit.jupiter</groupId>

experimental/ai/impl/src/main/java/io/serverlessworkflow/impl/executors/ai/AIChatModelCallExecutor.java

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,10 @@
1616

1717
package io.serverlessworkflow.impl.executors.ai;
1818

19-
import io.serverlessworkflow.ai.api.types.CallAILangChainChatModel;
2019
import io.serverlessworkflow.api.types.TaskBase;
2120
import io.serverlessworkflow.api.types.ai.AbstractCallAIChatModelTask;
2221
import io.serverlessworkflow.api.types.ai.CallAIChatModel;
22+
import io.serverlessworkflow.api.types.ai.CallAILangChainChatModel;
2323
import io.serverlessworkflow.impl.TaskContext;
2424
import io.serverlessworkflow.impl.WorkflowApplication;
2525
import io.serverlessworkflow.impl.WorkflowContext;
@@ -31,27 +31,24 @@
3131

3232
public class AIChatModelCallExecutor implements CallableTask<AbstractCallAIChatModelTask> {
3333

34+
private AIChatModelExecutor executor;
35+
3436
@Override
3537
public void init(
36-
AbstractCallAIChatModelTask task, WorkflowApplication application, ResourceLoader loader) {}
38+
AbstractCallAIChatModelTask task, WorkflowApplication application, ResourceLoader loader) {
39+
if (task instanceof CallAILangChainChatModel model) {
40+
executor = new CallAILangChainChatModelExecutor(model);
41+
} else if (task instanceof CallAIChatModel model) {
42+
executor = new CallAIChatModelExecutor(model);
43+
}
44+
}
3745

3846
@Override
3947
public CompletableFuture<WorkflowModel> apply(
4048
WorkflowContext workflowContext, TaskContext taskContext, WorkflowModel input) {
4149
WorkflowModelFactory modelFactory = workflowContext.definition().application().modelFactory();
42-
if (taskContext.task() instanceof CallAILangChainChatModel callAILangChainChatModel) {
43-
return CompletableFuture.completedFuture(
44-
modelFactory.fromAny(
45-
new CallAILangChainChatModelExecutor()
46-
.apply(callAILangChainChatModel, input.asJavaObject())));
47-
} else if (taskContext.task() instanceof CallAIChatModel callAIChatModel) {
48-
return CompletableFuture.completedFuture(
49-
modelFactory.fromAny(
50-
new CallAIChatModelExecutor().apply(callAIChatModel, input.asJavaObject())));
51-
}
52-
throw new IllegalArgumentException(
53-
"AIChatModelCallExecutor can only process CallAIChatModel tasks, but received: "
54-
+ taskContext.task().getClass().getName());
50+
return CompletableFuture.completedFuture(
51+
modelFactory.fromAny(executor.apply(input.asJavaObject())));
5552
}
5653

5754
@Override
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package io.serverlessworkflow.impl.executors.ai;
1818

19-
public abstract class AbstractCallAIChatModelExecutor<T> {
19+
import java.util.function.UnaryOperator;
2020

21-
public abstract Object apply(T callAIChatModel, Object javaObject);
22-
}
21+
public interface AIChatModelExecutor extends UnaryOperator<Object> {}

experimental/ai/impl/src/main/java/io/serverlessworkflow/impl/executors/ai/CallAIChatModelExecutor.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,18 @@
3535
import java.util.regex.Matcher;
3636
import java.util.regex.Pattern;
3737

38-
public class CallAIChatModelExecutor extends AbstractCallAIChatModelExecutor<CallAIChatModel> {
38+
public class CallAIChatModelExecutor implements AIChatModelExecutor {
3939

4040
private static final Pattern VARIABLE_PATTERN = Pattern.compile("\\{\\{\\s*(.+?)\\s*\\}\\}");
4141

42+
private final CallAIChatModel callAIChatModel;
43+
44+
public CallAIChatModelExecutor(CallAIChatModel callAIChatModel) {
45+
this.callAIChatModel = callAIChatModel;
46+
}
47+
4248
@Override
43-
public Object apply(CallAIChatModel callAIChatModel, Object javaObject) {
49+
public Object apply(Object javaObject) {
4450
validate(callAIChatModel, javaObject);
4551

4652
ChatModel chatModel = createChatModel(callAIChatModel);

experimental/ai/impl/src/main/java/io/serverlessworkflow/impl/executors/ai/CallAILangChainChatModelExecutor.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,23 @@
1919
import dev.langchain4j.model.chat.ChatModel;
2020
import dev.langchain4j.service.AiServices;
2121
import dev.langchain4j.service.V;
22-
import io.serverlessworkflow.ai.api.types.CallAILangChainChatModel;
22+
import io.serverlessworkflow.api.types.ai.CallAILangChainChatModel;
2323
import java.lang.reflect.Method;
2424
import java.lang.reflect.Parameter;
2525
import java.util.ArrayList;
2626
import java.util.List;
2727
import java.util.Map;
2828

29-
public class CallAILangChainChatModelExecutor
30-
extends AbstractCallAIChatModelExecutor<CallAILangChainChatModel> {
29+
public class CallAILangChainChatModelExecutor implements AIChatModelExecutor {
30+
31+
private final CallAILangChainChatModel callAIChatModel;
32+
33+
public CallAILangChainChatModelExecutor(CallAILangChainChatModel callAIChatModel) {
34+
this.callAIChatModel = callAIChatModel;
35+
}
3136

3237
@Override
33-
public Object apply(CallAILangChainChatModel callAIChatModel, Object javaObject) {
38+
public Object apply(Object javaObject) {
3439
ChatModel chatModel = callAIChatModel.getChatModel();
3540
Class<?> chatModelRequest = callAIChatModel.getChatModelRequest();
3641
Map<String, Object> substitutions = (Map<String, Object>) javaObject;

experimental/ai/impl/src/main/java/io/serverlessworkflow/impl/services/ChatModelService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,5 @@
2020
import io.serverlessworkflow.api.types.ai.CallAIChatModel;
2121

2222
public interface ChatModelService {
23-
2423
ChatModel getChatModel(CallAIChatModel.ChatModelPreferences chatModelPreferences);
2524
}

experimental/ai/impl/src/main/resources/META-INF/services/io.serverlessworkflow.impl.executors.TaskExecutorFactory

Lines changed: 0 additions & 1 deletion
This file was deleted.

experimental/ai/types/pom.xml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,10 @@
1616
<groupId>io.serverlessworkflow</groupId>
1717
<artifactId>serverlessworkflow-experimental-types</artifactId>
1818
</dependency>
19-
<dependency>
20-
<groupId>io.serverlessworkflow</groupId>
21-
<artifactId>serverlessworkflow-impl-core</artifactId>
22-
</dependency>
2319
<dependency>
2420
<groupId>dev.langchain4j</groupId>
2521
<artifactId>langchain4j</artifactId>
2622
<version>1.1.0</version>
27-
<optional>true</optional>
2823
</dependency>
2924
<dependency>
3025
<groupId>org.junit.jupiter</groupId>

0 commit comments

Comments
 (0)