From a3fcd12e1cad18dcfad58b835cb062f78756f843 Mon Sep 17 00:00:00 2001 From: dyma solovei Date: Wed, 24 Jun 2026 13:51:51 +0200 Subject: [PATCH] feat(gh-580): add endpoint parameter to text2vec-morph and text2vec-openai --- .../vectorizers/Text2VecMorphVectorizer.java | 9 ++++++++ .../vectorizers/Text2VecOpenAiVectorizer.java | 11 ++++++++++ .../client6/v1/internal/json/JSONTest.java | 21 +++++++++++++------ 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecMorphVectorizer.java b/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecMorphVectorizer.java index 7dfd31f8a..c217341d8 100644 --- a/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecMorphVectorizer.java +++ b/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecMorphVectorizer.java @@ -13,6 +13,7 @@ public record Text2VecMorphVectorizer( @SerializedName("baseURL") String baseUrl, + @SerializedName("endpoint") String endpoint, @SerializedName("model") String model, /** Properties included in the embedding. */ @@ -44,6 +45,7 @@ public static Text2VecMorphVectorizer of( public Text2VecMorphVectorizer(Builder builder) { this( builder.baseUrl, + builder.endpoint, builder.model, builder.sourceProperties, builder.vectorIndex, @@ -56,6 +58,7 @@ public static class Builder implements ObjectBuilder { private VectorIndex vectorIndex = VectorIndex.DEFAULT_VECTOR_INDEX; private String baseUrl; + private String endpoint; private String model; public Builder baseUrl(String baseUrl) { @@ -63,6 +66,12 @@ public Builder baseUrl(String baseUrl) { return this; } + /** Defaults to {@code /v1/embeddings} on the server. */ + public Builder endpoint(String endpoint) { + this.endpoint = endpoint; + return this; + } + public Builder model(String model) { this.model = model; return this; diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecOpenAiVectorizer.java b/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecOpenAiVectorizer.java index 60667d0c6..43f4fdf69 100644 --- a/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecOpenAiVectorizer.java +++ b/src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecOpenAiVectorizer.java @@ -13,6 +13,7 @@ public record Text2VecOpenAiVectorizer( @SerializedName("baseURL") String baseUrl, + @SerializedName("endpoint") String endpoint, @SerializedName("model") String model, @SerializedName("modelVersion") String modelVersion, @SerializedName("dimensions") Integer dimensions, @@ -66,6 +67,7 @@ public static Text2VecOpenAiVectorizer of( */ public Text2VecOpenAiVectorizer( String baseUrl, + String endpoint, String model, String modelVersion, Integer dimensions, @@ -76,6 +78,7 @@ public Text2VecOpenAiVectorizer( VectorIndex vectorIndex, Quantization quantization) { this.baseUrl = baseUrl; + this.endpoint = endpoint; this.model = model; this.modelVersion = modelVersion; this.dimensions = dimensions; @@ -90,6 +93,7 @@ public Text2VecOpenAiVectorizer( public Text2VecOpenAiVectorizer(Builder builder) { this( builder.baseUrl, + builder.endpoint, builder.model, builder.modelVersion, builder.dimensions, @@ -108,6 +112,7 @@ public static class Builder implements ObjectBuilder { private VectorIndex vectorIndex = VectorIndex.DEFAULT_VECTOR_INDEX; private String baseUrl; + private String endpoint; private String model; private String modelVersion; private Integer dimensions; @@ -118,6 +123,12 @@ public Builder baseUrl(String baseUrl) { return this; } + /** Defaults to {@code /v1/embeddings} on the server. */ + public Builder endpoint(String endpoint) { + this.endpoint = endpoint; + return this; + } + public Builder model(String model) { this.model = model; return this; diff --git a/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java b/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java index 552f307eb..560ce8269 100644 --- a/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java +++ b/src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java @@ -52,10 +52,10 @@ import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecAwsVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecCohereVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecDatabricksVectorizer; +import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecDigitalOceanVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecGoogleVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecHuggingFaceVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecJinaAiVectorizer; -import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecDigitalOceanVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecMistralVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecModel2VecVectorizer; import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecMorphVectorizer; @@ -68,10 +68,10 @@ import io.weaviate.client6.v1.api.rbac.AliasesPermission; import io.weaviate.client6.v1.api.rbac.BackupsPermission; import io.weaviate.client6.v1.api.rbac.ClusterPermission; -import io.weaviate.client6.v1.api.rbac.McpPermission; import io.weaviate.client6.v1.api.rbac.CollectionsPermission; import io.weaviate.client6.v1.api.rbac.DataPermission; import io.weaviate.client6.v1.api.rbac.GroupsPermission; +import io.weaviate.client6.v1.api.rbac.McpPermission; import io.weaviate.client6.v1.api.rbac.NodesPermission; import io.weaviate.client6.v1.api.rbac.ReplicatePermission; import io.weaviate.client6.v1.api.rbac.Role; @@ -367,7 +367,8 @@ public static Object[][] testCases() { }, { VectorConfig.class, - Text2VecDigitalOceanVectorizer.of(v -> v.model("qwen3-embedding-0.6b").baseUrl("https://inference.do-ai.run").sourceProperties("a")), + Text2VecDigitalOceanVectorizer + .of(v -> v.model("qwen3-embedding-0.6b").baseUrl("https://inference.do-ai.run").sourceProperties("a")), """ { "vectorIndexType": "hnsw", @@ -429,14 +430,18 @@ public static Object[][] testCases() { }, { VectorConfig.class, - Text2VecMorphVectorizer.of(v -> v.sourceProperties("a")), + Text2VecMorphVectorizer.of( + v -> v + .sourceProperties("a") + .endpoint("/v0/example")), """ { "vectorIndexType": "hnsw", "vectorIndexConfig": {}, "vectorizer": { "text2vec-morph": { - "properties": ["a"] + "properties": ["a"], + "endpoint": "/v0/example" } } } @@ -507,13 +512,17 @@ public static Object[][] testCases() { { VectorConfig.class, Text2VecOpenAiVectorizer - .of(v -> v.sourceProperties("a").model(Text2VecOpenAiVectorizer.TEXT_EMBEDDING_3_LARGE)), + .of(v -> v + .endpoint("/v0/example") + .sourceProperties("a") + .model(Text2VecOpenAiVectorizer.TEXT_EMBEDDING_3_LARGE)), """ { "vectorIndexType": "hnsw", "vectorIndexConfig": {}, "vectorizer": { "text2vec-openai": { + "endpoint": "/v0/example", "model": "text-embedding-3-large", "properties": ["a"], "vectorizeClassName": false