Skip to content

Commit 4e36b4a

Browse files
authored
Merge pull request #591 from weaviate/feat/text2vec-endpoint-parameter
feat(vectorizer): add endpoint parameter to text2vec-morph and text2vec-openai
2 parents 3866ce2 + a3fcd12 commit 4e36b4a

3 files changed

Lines changed: 35 additions & 6 deletions

File tree

src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecMorphVectorizer.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
public record Text2VecMorphVectorizer(
1515
@SerializedName("baseURL") String baseUrl,
16+
@SerializedName("endpoint") String endpoint,
1617
@SerializedName("model") String model,
1718

1819
/** Properties included in the embedding. */
@@ -44,6 +45,7 @@ public static Text2VecMorphVectorizer of(
4445
public Text2VecMorphVectorizer(Builder builder) {
4546
this(
4647
builder.baseUrl,
48+
builder.endpoint,
4749
builder.model,
4850
builder.sourceProperties,
4951
builder.vectorIndex,
@@ -56,13 +58,20 @@ public static class Builder implements ObjectBuilder<Text2VecMorphVectorizer> {
5658
private VectorIndex vectorIndex = VectorIndex.DEFAULT_VECTOR_INDEX;
5759

5860
private String baseUrl;
61+
private String endpoint;
5962
private String model;
6063

6164
public Builder baseUrl(String baseUrl) {
6265
this.baseUrl = baseUrl;
6366
return this;
6467
}
6568

69+
/** Defaults to {@code /v1/embeddings} on the server. */
70+
public Builder endpoint(String endpoint) {
71+
this.endpoint = endpoint;
72+
return this;
73+
}
74+
6675
public Builder model(String model) {
6776
this.model = model;
6877
return this;

src/main/java/io/weaviate/client6/v1/api/collections/vectorizers/Text2VecOpenAiVectorizer.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
public record Text2VecOpenAiVectorizer(
1515
@SerializedName("baseURL") String baseUrl,
16+
@SerializedName("endpoint") String endpoint,
1617
@SerializedName("model") String model,
1718
@SerializedName("modelVersion") String modelVersion,
1819
@SerializedName("dimensions") Integer dimensions,
@@ -66,6 +67,7 @@ public static Text2VecOpenAiVectorizer of(
6667
*/
6768
public Text2VecOpenAiVectorizer(
6869
String baseUrl,
70+
String endpoint,
6971
String model,
7072
String modelVersion,
7173
Integer dimensions,
@@ -76,6 +78,7 @@ public Text2VecOpenAiVectorizer(
7678
VectorIndex vectorIndex,
7779
Quantization quantization) {
7880
this.baseUrl = baseUrl;
81+
this.endpoint = endpoint;
7982
this.model = model;
8083
this.modelVersion = modelVersion;
8184
this.dimensions = dimensions;
@@ -90,6 +93,7 @@ public Text2VecOpenAiVectorizer(
9093
public Text2VecOpenAiVectorizer(Builder builder) {
9194
this(
9295
builder.baseUrl,
96+
builder.endpoint,
9397
builder.model,
9498
builder.modelVersion,
9599
builder.dimensions,
@@ -108,6 +112,7 @@ public static class Builder implements ObjectBuilder<Text2VecOpenAiVectorizer> {
108112
private VectorIndex vectorIndex = VectorIndex.DEFAULT_VECTOR_INDEX;
109113

110114
private String baseUrl;
115+
private String endpoint;
111116
private String model;
112117
private String modelVersion;
113118
private Integer dimensions;
@@ -118,6 +123,12 @@ public Builder baseUrl(String baseUrl) {
118123
return this;
119124
}
120125

126+
/** Defaults to {@code /v1/embeddings} on the server. */
127+
public Builder endpoint(String endpoint) {
128+
this.endpoint = endpoint;
129+
return this;
130+
}
131+
121132
public Builder model(String model) {
122133
this.model = model;
123134
return this;

src/test/java/io/weaviate/client6/v1/internal/json/JSONTest.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@
5252
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecAwsVectorizer;
5353
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecCohereVectorizer;
5454
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecDatabricksVectorizer;
55+
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecDigitalOceanVectorizer;
5556
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecGoogleVectorizer;
5657
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecHuggingFaceVectorizer;
5758
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecJinaAiVectorizer;
58-
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecDigitalOceanVectorizer;
5959
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecMistralVectorizer;
6060
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecModel2VecVectorizer;
6161
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecMorphVectorizer;
@@ -68,10 +68,10 @@
6868
import io.weaviate.client6.v1.api.rbac.AliasesPermission;
6969
import io.weaviate.client6.v1.api.rbac.BackupsPermission;
7070
import io.weaviate.client6.v1.api.rbac.ClusterPermission;
71-
import io.weaviate.client6.v1.api.rbac.McpPermission;
7271
import io.weaviate.client6.v1.api.rbac.CollectionsPermission;
7372
import io.weaviate.client6.v1.api.rbac.DataPermission;
7473
import io.weaviate.client6.v1.api.rbac.GroupsPermission;
74+
import io.weaviate.client6.v1.api.rbac.McpPermission;
7575
import io.weaviate.client6.v1.api.rbac.NodesPermission;
7676
import io.weaviate.client6.v1.api.rbac.ReplicatePermission;
7777
import io.weaviate.client6.v1.api.rbac.Role;
@@ -367,7 +367,8 @@ public static Object[][] testCases() {
367367
},
368368
{
369369
VectorConfig.class,
370-
Text2VecDigitalOceanVectorizer.of(v -> v.model("qwen3-embedding-0.6b").baseUrl("https://inference.do-ai.run").sourceProperties("a")),
370+
Text2VecDigitalOceanVectorizer
371+
.of(v -> v.model("qwen3-embedding-0.6b").baseUrl("https://inference.do-ai.run").sourceProperties("a")),
371372
"""
372373
{
373374
"vectorIndexType": "hnsw",
@@ -429,14 +430,18 @@ public static Object[][] testCases() {
429430
},
430431
{
431432
VectorConfig.class,
432-
Text2VecMorphVectorizer.of(v -> v.sourceProperties("a")),
433+
Text2VecMorphVectorizer.of(
434+
v -> v
435+
.sourceProperties("a")
436+
.endpoint("/v0/example")),
433437
"""
434438
{
435439
"vectorIndexType": "hnsw",
436440
"vectorIndexConfig": {},
437441
"vectorizer": {
438442
"text2vec-morph": {
439-
"properties": ["a"]
443+
"properties": ["a"],
444+
"endpoint": "/v0/example"
440445
}
441446
}
442447
}
@@ -507,13 +512,17 @@ public static Object[][] testCases() {
507512
{
508513
VectorConfig.class,
509514
Text2VecOpenAiVectorizer
510-
.of(v -> v.sourceProperties("a").model(Text2VecOpenAiVectorizer.TEXT_EMBEDDING_3_LARGE)),
515+
.of(v -> v
516+
.endpoint("/v0/example")
517+
.sourceProperties("a")
518+
.model(Text2VecOpenAiVectorizer.TEXT_EMBEDDING_3_LARGE)),
511519
"""
512520
{
513521
"vectorIndexType": "hnsw",
514522
"vectorIndexConfig": {},
515523
"vectorizer": {
516524
"text2vec-openai": {
525+
"endpoint": "/v0/example",
517526
"model": "text-embedding-3-large",
518527
"properties": ["a"],
519528
"vectorizeClassName": false

0 commit comments

Comments
 (0)