You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by xt...@apache.org on 2025/09/17 01:43:19 UTC
(flink-agents) 01/03: [api] Add correspond annotation after sperate chat model abstraction.
This is an automated email from the ASF dual-hosted git repository.
xtsong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git
commit 36df0b4b25f67724d284eb6be4a65c0faea9a2ec
Author: WenjinXie <we...@gmail.com>
AuthorDate: Mon Sep 15 16:11:26 2025 +0800
[api] Add correspond annotation after sperate chat model abstraction.
---
.../{ChatModel.java => ChatModelConnection.java} | 8 ++-----
.../{ChatModel.java => ChatModelSetup.java} | 6 +-----
.../flink/agents/examples/AgentWithResource.java | 4 ++--
.../org/apache/flink/agents/plan/AgentPlan.java | 25 +++++++++++++---------
.../agents/plan/AgentPlanDeclareChatModelTest.java | 4 ++--
.../apache/flink/agents/plan/AgentPlanTest.java | 4 ++--
6 files changed, 24 insertions(+), 27 deletions(-)
diff --git a/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModel.java b/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModelConnection.java
similarity index 85%
copy from api/src/main/java/org/apache/flink/agents/api/annotation/ChatModel.java
copy to api/src/main/java/org/apache/flink/agents/api/annotation/ChatModelConnection.java
index e74d2ef..4331f85 100644
--- a/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModel.java
+++ b/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModelConnection.java
@@ -29,10 +29,6 @@ import java.lang.annotation.Target;
* <p>Fields annotated with @ChatModel will be scanned during agent plan creation and corresponding
* resource providers will be created to manage the chat model instances.
*/
-@Target({ElementType.FIELD, ElementType.METHOD})
+@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
-public @interface ChatModel {
- String CHAT_MODEL_CLASS_NAME = "clazz";
- String CHAT_MODEL_ARGUMENTS = "arguments";
- String CHAT_MODEL_ARGUMENTS_TYPES = "types";
-}
+public @interface ChatModelConnection {}
diff --git a/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModel.java b/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModelSetup.java
similarity index 88%
rename from api/src/main/java/org/apache/flink/agents/api/annotation/ChatModel.java
rename to api/src/main/java/org/apache/flink/agents/api/annotation/ChatModelSetup.java
index e74d2ef..e4f4085 100644
--- a/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModel.java
+++ b/api/src/main/java/org/apache/flink/agents/api/annotation/ChatModelSetup.java
@@ -31,8 +31,4 @@ import java.lang.annotation.Target;
*/
@Target({ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
-public @interface ChatModel {
- String CHAT_MODEL_CLASS_NAME = "clazz";
- String CHAT_MODEL_ARGUMENTS = "arguments";
- String CHAT_MODEL_ARGUMENTS_TYPES = "types";
-}
+public @interface ChatModelSetup {}
diff --git a/examples/src/main/java/org/apache/flink/agents/examples/AgentWithResource.java b/examples/src/main/java/org/apache/flink/agents/examples/AgentWithResource.java
index 1821095..f6d5d97 100644
--- a/examples/src/main/java/org/apache/flink/agents/examples/AgentWithResource.java
+++ b/examples/src/main/java/org/apache/flink/agents/examples/AgentWithResource.java
@@ -22,7 +22,7 @@ import org.apache.flink.agents.api.Agent;
import org.apache.flink.agents.api.InputEvent;
import org.apache.flink.agents.api.OutputEvent;
import org.apache.flink.agents.api.annotation.Action;
-import org.apache.flink.agents.api.annotation.ChatModel;
+import org.apache.flink.agents.api.annotation.ChatModelSetup;
import org.apache.flink.agents.api.annotation.Tool;
import org.apache.flink.agents.api.annotation.ToolParam;
import org.apache.flink.agents.api.chat.messages.ChatMessage;
@@ -95,7 +95,7 @@ public class AgentWithResource extends Agent {
return new Prompt("This is a test prompt");
}
- @ChatModel
+ @ChatModelSetup
public static ResourceDescriptor myChatModel() {
return ResourceDescriptor.Builder.newBuilder(MockChatModel.class.getName())
.addInitialArgument("endpoint", "127.0.0.1")
diff --git a/plan/src/main/java/org/apache/flink/agents/plan/AgentPlan.java b/plan/src/main/java/org/apache/flink/agents/plan/AgentPlan.java
index f46f32e..ffd820c 100644
--- a/plan/src/main/java/org/apache/flink/agents/plan/AgentPlan.java
+++ b/plan/src/main/java/org/apache/flink/agents/plan/AgentPlan.java
@@ -20,7 +20,8 @@ package org.apache.flink.agents.plan;
import org.apache.flink.agents.api.Agent;
import org.apache.flink.agents.api.Event;
-import org.apache.flink.agents.api.annotation.ChatModel;
+import org.apache.flink.agents.api.annotation.ChatModelConnection;
+import org.apache.flink.agents.api.annotation.ChatModelSetup;
import org.apache.flink.agents.api.annotation.Prompt;
import org.apache.flink.agents.api.annotation.Tool;
import org.apache.flink.agents.api.resource.Resource;
@@ -237,6 +238,13 @@ public class AgentPlan implements Serializable {
}
}
+ private void extractResource(ResourceType type, Method method) throws Exception {
+ String name = method.getName();
+ ResourceDescriptor descriptor = (ResourceDescriptor) method.invoke(null);
+ JavaResourceProvider provider = new JavaResourceProvider(name, type, descriptor);
+ addResourceProvider(provider);
+ }
+
private void extractResourceProvidersFromAgent(Agent agent) throws Exception {
Class<?> agentClass = agent.getClass();
@@ -269,8 +277,8 @@ public class AgentPlan implements Serializable {
}
// Check for @ChatModel annotation
- if (field.isAnnotationPresent(ChatModel.class)) {
- ChatModel chatModelAnnotation = field.getAnnotation(ChatModel.class);
+ if (field.isAnnotationPresent(ChatModelSetup.class)) {
+ ChatModelSetup chatModelAnnotation = field.getAnnotation(ChatModelSetup.class);
String resourceName = field.getName();
try {
@@ -320,13 +328,10 @@ public class AgentPlan implements Serializable {
promptName, ResourceType.PROMPT, prompt);
addResourceProvider(provider);
- } else if (method.isAnnotationPresent(ChatModel.class)) {
- String chatModelName = method.getName();
- ResourceDescriptor descriptor = (ResourceDescriptor) method.invoke(null);
- JavaResourceProvider provider =
- new JavaResourceProvider(
- chatModelName, ResourceType.CHAT_MODEL, descriptor);
- addResourceProvider(provider);
+ } else if (method.isAnnotationPresent(ChatModelSetup.class)) {
+ extractResource(ResourceType.CHAT_MODEL, method);
+ } else if (method.isAnnotationPresent(ChatModelConnection.class)) {
+ extractResource(ResourceType.CHAT_MODEL_CONNECTION, method);
}
}
}
diff --git a/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareChatModelTest.java b/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareChatModelTest.java
index 994f6be..4ed0b24 100644
--- a/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareChatModelTest.java
+++ b/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanDeclareChatModelTest.java
@@ -24,7 +24,7 @@ import org.apache.flink.agents.api.Agent;
import org.apache.flink.agents.api.Event;
import org.apache.flink.agents.api.InputEvent;
import org.apache.flink.agents.api.annotation.Action;
-import org.apache.flink.agents.api.annotation.ChatModel;
+import org.apache.flink.agents.api.annotation.ChatModelSetup;
import org.apache.flink.agents.api.chat.messages.ChatMessage;
import org.apache.flink.agents.api.chat.messages.MessageRole;
import org.apache.flink.agents.api.chat.model.BaseChatModelSetup;
@@ -70,7 +70,7 @@ class AgentPlanDeclareChatModelTest {
}
static class ChatAgent extends Agent {
- @ChatModel
+ @ChatModelSetup
public static ResourceDescriptor testChatModel() {
return ResourceDescriptor.Builder.newBuilder(MockChatModel.class.getName())
.addInitialArgument("endpoint", "127.0.0.1")
diff --git a/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanTest.java b/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanTest.java
index 0837f0f..f783b4e 100644
--- a/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanTest.java
+++ b/plan/src/test/java/org/apache/flink/agents/plan/AgentPlanTest.java
@@ -22,7 +22,7 @@ import org.apache.flink.agents.api.Agent;
import org.apache.flink.agents.api.Event;
import org.apache.flink.agents.api.InputEvent;
import org.apache.flink.agents.api.OutputEvent;
-import org.apache.flink.agents.api.annotation.ChatModel;
+import org.apache.flink.agents.api.annotation.ChatModelSetup;
import org.apache.flink.agents.api.annotation.Tool;
import org.apache.flink.agents.api.context.RunnerContext;
import org.apache.flink.agents.api.resource.Resource;
@@ -114,7 +114,7 @@ public class AgentPlanTest {
@Tool private TestTool myTool = new TestTool("myTool");
- @ChatModel
+ @ChatModelSetup
private TestSerializableChatModel chatModel =
new TestSerializableChatModel("defaultChatModel");