This is an automated email from the ASF dual-hosted git repository.

wenjin272 pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git


The following commit(s) were added to refs/heads/main by this push:
     new 167d90aa [api][yaml] Add aliases for six unaliased resource 
implementations (#962)
167d90aa is described below

commit 167d90aa9d9a12da2afa20b6c6e393dcbfea2add
Author: hulincup <[email protected]>
AuthorDate: Wed Aug 5 15:49:57 2026 +0800

    [api][yaml] Add aliases for six unaliased resource implementations (#962)
---
 .../org/apache/flink/agents/api/yaml/Aliases.java  |  8 +++++
 .../apache/flink/agents/api/yaml/AliasesTest.java  | 30 +++++++++++++++++++
 docs/content/docs/development/yaml.md              | 15 ++++++----
 python/flink_agents/api/yaml/aliases.py            |  8 +++++
 python/flink_agents/api/yaml/tests/test_aliases.py | 35 ++++++++++++++++++++++
 5 files changed, 91 insertions(+), 5 deletions(-)

diff --git a/api/src/main/java/org/apache/flink/agents/api/yaml/Aliases.java 
b/api/src/main/java/org/apache/flink/agents/api/yaml/Aliases.java
index 9a60b1ad..8043964c 100644
--- a/api/src/main/java/org/apache/flink/agents/api/yaml/Aliases.java
+++ b/api/src/main/java/org/apache/flink/agents/api/yaml/Aliases.java
@@ -86,6 +86,8 @@ public final class Aliases {
                 "openai_completions", 
ResourceName.ChatModel.OPENAI_COMPLETIONS_CONNECTION);
         chatConnJava.put("openai_responses", 
ResourceName.ChatModel.OPENAI_RESPONSES_CONNECTION);
         chatConnJava.put("anthropic", 
ResourceName.ChatModel.ANTHROPIC_CONNECTION);
+        chatConnJava.put("gemini", ResourceName.ChatModel.GEMINI_CONNECTION);
+        chatConnJava.put("azure_openai", 
ResourceName.ChatModel.AZURE_OPENAI_CONNECTION);
         chatConnJava.put("azure", ResourceName.ChatModel.AZURE_CONNECTION);
         chatConnJava.put("bedrock", ResourceName.ChatModel.BEDROCK_CONNECTION);
         Map<String, String> chatConnPython = new HashMap<>();
@@ -102,6 +104,8 @@ public final class Aliases {
         chatJava.put("openai_completions", 
ResourceName.ChatModel.OPENAI_COMPLETIONS_SETUP);
         chatJava.put("openai_responses", 
ResourceName.ChatModel.OPENAI_RESPONSES_SETUP);
         chatJava.put("anthropic", ResourceName.ChatModel.ANTHROPIC_SETUP);
+        chatJava.put("gemini", ResourceName.ChatModel.GEMINI_SETUP);
+        chatJava.put("azure_openai", 
ResourceName.ChatModel.AZURE_OPENAI_SETUP);
         chatJava.put("azure", ResourceName.ChatModel.AZURE_SETUP);
         chatJava.put("bedrock", ResourceName.ChatModel.BEDROCK_SETUP);
         Map<String, String> chatPython = new HashMap<>();
@@ -137,8 +141,12 @@ public final class Aliases {
         // VECTOR_STORE
         Map<String, String> vsJava = new HashMap<>();
         vsJava.put("elasticsearch", 
ResourceName.VectorStore.ELASTICSEARCH_VECTOR_STORE);
+        vsJava.put("opensearch", 
ResourceName.VectorStore.OPENSEARCH_VECTOR_STORE);
+        vsJava.put("s3_vectors", 
ResourceName.VectorStore.S3_VECTORS_VECTOR_STORE);
+        vsJava.put("milvus", ResourceName.VectorStore.MILVUS_VECTOR_STORE);
         Map<String, String> vsPython = new HashMap<>();
         vsPython.put("chroma", 
ResourceName.VectorStore.Python.CHROMA_VECTOR_STORE);
+        vsPython.put("mem0", 
ResourceName.VectorStore.Python.MEM0_VECTOR_STORE);
         ca.put(ResourceType.VECTOR_STORE, buildLangBuckets(vsJava, vsPython));
 
         CLAZZ_ALIASES = Collections.unmodifiableMap(ca);
diff --git 
a/api/src/test/java/org/apache/flink/agents/api/yaml/AliasesTest.java 
b/api/src/test/java/org/apache/flink/agents/api/yaml/AliasesTest.java
index 38211cb0..3f125ffb 100644
--- a/api/src/test/java/org/apache/flink/agents/api/yaml/AliasesTest.java
+++ b/api/src/test/java/org/apache/flink/agents/api/yaml/AliasesTest.java
@@ -59,6 +59,36 @@ class AliasesTest {
         
assertThat(fqn).isEqualTo(ResourceName.ChatModel.Python.OLLAMA_CONNECTION);
     }
 
+    @Test
+    void clazzAliasCoversChatModelJavaGeminiAndAzureOpenAI() {
+        String geminiConn =
+                Aliases.resolveClazz("gemini", 
ResourceType.CHAT_MODEL_CONNECTION, Language.JAVA);
+        
assertThat(geminiConn).isEqualTo(ResourceName.ChatModel.GEMINI_CONNECTION);
+        String geminiSetup = Aliases.resolveClazz("gemini", 
ResourceType.CHAT_MODEL, Language.JAVA);
+        assertThat(geminiSetup).isEqualTo(ResourceName.ChatModel.GEMINI_SETUP);
+        String azureOpenAIConn =
+                Aliases.resolveClazz(
+                        "azure_openai", ResourceType.CHAT_MODEL_CONNECTION, 
Language.JAVA);
+        
assertThat(azureOpenAIConn).isEqualTo(ResourceName.ChatModel.AZURE_OPENAI_CONNECTION);
+        String azureOpenAISetup =
+                Aliases.resolveClazz("azure_openai", ResourceType.CHAT_MODEL, 
Language.JAVA);
+        
assertThat(azureOpenAISetup).isEqualTo(ResourceName.ChatModel.AZURE_OPENAI_SETUP);
+    }
+
+    @Test
+    void clazzAliasCoversVectorStoreJavaAndPython() {
+        String opensearch =
+                Aliases.resolveClazz("opensearch", ResourceType.VECTOR_STORE, 
Language.JAVA);
+        
assertThat(opensearch).isEqualTo(ResourceName.VectorStore.OPENSEARCH_VECTOR_STORE);
+        String s3Vectors =
+                Aliases.resolveClazz("s3_vectors", ResourceType.VECTOR_STORE, 
Language.JAVA);
+        
assertThat(s3Vectors).isEqualTo(ResourceName.VectorStore.S3_VECTORS_VECTOR_STORE);
+        String milvus = Aliases.resolveClazz("milvus", 
ResourceType.VECTOR_STORE, Language.JAVA);
+        
assertThat(milvus).isEqualTo(ResourceName.VectorStore.MILVUS_VECTOR_STORE);
+        String mem0 = Aliases.resolveClazz("mem0", ResourceType.VECTOR_STORE, 
Language.PYTHON);
+        
assertThat(mem0).isEqualTo(ResourceName.VectorStore.Python.MEM0_VECTOR_STORE);
+    }
+
     @Test
     void clazzAliasMissPassesThrough() {
         String fqn =
diff --git a/docs/content/docs/development/yaml.md 
b/docs/content/docs/development/yaml.md
index 15c2a5c5..fa53551e 100644
--- a/docs/content/docs/development/yaml.md
+++ b/docs/content/docs/development/yaml.md
@@ -528,7 +528,8 @@ Common chat-model aliases:
 | `openai_completions` | —                           | OpenAI Completions 
(Java)   |
 | `openai_responses`   | —                           | OpenAI Responses (Java) 
    |
 | `anthropic`          | Anthropic                   | Anthropic               
    |
-| `azure_openai`       | Azure OpenAI (Python)       | —                       
    |
+| `gemini`             | —                           | Gemini (Java)           
    |
+| `azure_openai`       | Azure OpenAI (Python)       | Azure OpenAI (Java)     
    |
 | `azure`              | —                           | Azure AI (Java)         
    |
 | `bedrock`            | —                           | Bedrock (Java)          
    |
 | `tongyi`             | Tongyi (Python)             | —                       
    |
@@ -544,10 +545,14 @@ Embedding-model aliases (apply to both 
`embedding_model_connections` and `embedd
 
 Vector-store aliases:
 
-| Alias           | `type: python` | `type: java`   |
-| --------------- | -------------- | -------------- |
-| `chroma`        | Chroma         | —              |
-| `elasticsearch` | —              | Elasticsearch  |
+| Alias           | `type: python` | `type: java`    |
+| --------------- | -------------- | --------------- |
+| `chroma`        | Chroma         | —               |
+| `mem0`          | Mem0           | —               |
+| `elasticsearch` | —              | Elasticsearch   |
+| `opensearch`    | —              | OpenSearch      |
+| `s3_vectors`    | —              | S3 Vectors      |
+| `milvus`        | —              | Milvus          |
 
 The full alias tables live in `flink_agents.api.yaml.aliases` (Python) and 
`org.apache.flink.agents.api.yaml.Aliases` (Java).
 
diff --git a/python/flink_agents/api/yaml/aliases.py 
b/python/flink_agents/api/yaml/aliases.py
index cef9b59a..c5dda4bd 100644
--- a/python/flink_agents/api/yaml/aliases.py
+++ b/python/flink_agents/api/yaml/aliases.py
@@ -72,6 +72,8 @@ CLAZZ_ALIASES: Dict[ResourceType, Dict[str, Dict[str, str]]] 
= {
             "openai_completions": 
ResourceName.ChatModel.Java.OPENAI_COMPLETIONS_CONNECTION,
             "openai_responses": 
ResourceName.ChatModel.Java.OPENAI_RESPONSES_CONNECTION,
             "anthropic": ResourceName.ChatModel.Java.ANTHROPIC_CONNECTION,
+            "gemini": ResourceName.ChatModel.Java.GEMINI_CONNECTION,
+            "azure_openai": 
ResourceName.ChatModel.Java.AZURE_OPENAI_CONNECTION,
             "azure": ResourceName.ChatModel.Java.AZURE_CONNECTION,
             "bedrock": ResourceName.ChatModel.Java.BEDROCK_CONNECTION,
         },
@@ -89,6 +91,8 @@ CLAZZ_ALIASES: Dict[ResourceType, Dict[str, Dict[str, str]]] 
= {
             "openai_completions": 
ResourceName.ChatModel.Java.OPENAI_COMPLETIONS_SETUP,
             "openai_responses": 
ResourceName.ChatModel.Java.OPENAI_RESPONSES_SETUP,
             "anthropic": ResourceName.ChatModel.Java.ANTHROPIC_SETUP,
+            "gemini": ResourceName.ChatModel.Java.GEMINI_SETUP,
+            "azure_openai": ResourceName.ChatModel.Java.AZURE_OPENAI_SETUP,
             "azure": ResourceName.ChatModel.Java.AZURE_SETUP,
             "bedrock": ResourceName.ChatModel.Java.BEDROCK_SETUP,
         },
@@ -118,9 +122,13 @@ CLAZZ_ALIASES: Dict[ResourceType, Dict[str, Dict[str, 
str]]] = {
     ResourceType.VECTOR_STORE: {
         "python": {
             "chroma": ResourceName.VectorStore.CHROMA_VECTOR_STORE,
+            "mem0": ResourceName.VectorStore.MEM0_VECTOR_STORE,
         },
         "java": {
             "elasticsearch": 
ResourceName.VectorStore.Java.ELASTICSEARCH_VECTOR_STORE,
+            "opensearch": 
ResourceName.VectorStore.Java.OPENSEARCH_VECTOR_STORE,
+            "s3_vectors": 
ResourceName.VectorStore.Java.S3_VECTORS_VECTOR_STORE,
+            "milvus": ResourceName.VectorStore.Java.MILVUS_VECTOR_STORE,
         },
     },
 }
diff --git a/python/flink_agents/api/yaml/tests/test_aliases.py 
b/python/flink_agents/api/yaml/tests/test_aliases.py
index b43db0d4..a6d728c6 100644
--- a/python/flink_agents/api/yaml/tests/test_aliases.py
+++ b/python/flink_agents/api/yaml/tests/test_aliases.py
@@ -127,6 +127,41 @@ def test_resolve_clazz_default_language_is_python() -> 
None:
     assert default == explicit
 
 
+def test_resolve_clazz_covers_chat_model_java_gemini_and_azure_openai() -> 
None:
+    assert resolve_clazz("gemini", ResourceType.CHAT_MODEL_CONNECTION, 
"java").endswith(
+        "GeminiChatModelConnection"
+    )
+    assert resolve_clazz("gemini", ResourceType.CHAT_MODEL, "java").endswith(
+        "GeminiChatModelSetup"
+    )
+    # `azure_openai` is the only alias whose Java/Python simple names collide
+    # (AzureOpenAIChatModelConnection); pin the package so a Java entry that 
lost
+    # its `.Java` suffix and resolved to the Python class would fail here.
+    azure_conn = resolve_clazz(
+        "azure_openai", ResourceType.CHAT_MODEL_CONNECTION, "java"
+    )
+    assert azure_conn.startswith("org.apache.flink.agents")
+    assert azure_conn.endswith("AzureOpenAIChatModelConnection")
+    azure_setup = resolve_clazz("azure_openai", ResourceType.CHAT_MODEL, 
"java")
+    assert azure_setup.startswith("org.apache.flink.agents")
+    assert azure_setup.endswith("AzureOpenAIChatModelSetup")
+
+
+def test_resolve_clazz_covers_vector_store_java_and_python() -> None:
+    assert resolve_clazz("opensearch", ResourceType.VECTOR_STORE, 
"java").endswith(
+        "OpenSearchVectorStore"
+    )
+    assert resolve_clazz("s3_vectors", ResourceType.VECTOR_STORE, 
"java").endswith(
+        "S3VectorsVectorStore"
+    )
+    assert resolve_clazz("milvus", ResourceType.VECTOR_STORE, "java").endswith(
+        "MilvusVectorStore"
+    )
+    assert resolve_clazz("mem0", ResourceType.VECTOR_STORE, "python").endswith(
+        "Mem0VectorStore"
+    )
+
+
 def test_java_wrapper_clazz_table_covers_supported_types() -> None:
     # The Python-side wrappers must exist for every cross-language type
     expected = {

Reply via email to