diff --git a/pom.xml b/pom.xml
index a8ffa1fa5..2bb5f2e68 100644
--- a/pom.xml
+++ b/pom.xml
@@ -52,26 +52,26 @@
17
17
17
- 1.18.38
- 2.13.1
- 5.5
- 3.18.0
+ 1.18.42
+ 2.13.2
+ 5.5.1
+ 3.19.0
5.13.4
1.21.3
- 3.27.4
+ 3.27.6
1.0.4
- 5.19.0
- 1.7.36
+ 5.20.0
+ 2.0.17
1.5.18
5.14.0
- 2.19.2
- 11.27.1
+ 2.20
+ 11.30
5.15.0
- 4.32.0
- 4.32.0
- 1.75.0
- 1.75.0
- 1.75.0
+ 4.33.0
+ 4.33.0
+ 1.76.0
+ 1.76.0
+ 1.76.0
6.0.53
diff --git a/src/it/java/io/weaviate/containers/Container.java b/src/it/java/io/weaviate/containers/Container.java
index 81b450389..7c71ed980 100644
--- a/src/it/java/io/weaviate/containers/Container.java
+++ b/src/it/java/io/weaviate/containers/Container.java
@@ -14,7 +14,7 @@
public class Container {
public static final Weaviate WEAVIATE = Weaviate.createDefault();
- public static final Contextionary CONTEXTIONARY = Contextionary.createDefault();
+ public static final Model2Vec MODEL2VEC = Model2Vec.createDefault();
public static final Img2VecNeural IMG2VEC_NEURAL = Img2VecNeural.createDefault();
public static final MinIo MINIO = MinIo.createDefault();
diff --git a/src/it/java/io/weaviate/containers/Contextionary.java b/src/it/java/io/weaviate/containers/Contextionary.java
deleted file mode 100644
index 69abde7df..000000000
--- a/src/it/java/io/weaviate/containers/Contextionary.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package io.weaviate.containers;
-
-import org.testcontainers.containers.GenericContainer;
-
-public class Contextionary extends GenericContainer {
- public static final String VERSION = "en0.16.0-v1.2.1";
- public static final String DOCKER_IMAGE = "semitechnologies/contextionary";
- public static final String MODULE = "text2vec-contextionary";
-
- public static final String HOST_NAME = "contextionary";
- public static final String URL = HOST_NAME + ":9999";
-
- static Contextionary createDefault() {
- return new Builder().build();
- }
-
- static Contextionary.Builder custom() {
- return new Builder();
- }
-
- public static class Builder {
- private String versionTag;
-
- public Builder() {
- this.versionTag = VERSION;
- }
-
- public Contextionary build() {
- var container = new Contextionary(DOCKER_IMAGE + ":" + versionTag);
- container
- .withEnv("OCCURRENCE_WEIGHT_LINEAR_FACTOR", "true")
- .withEnv("PERSISTENCE_DATA_PATH", "/var/lib/weaviate")
- .withEnv("OCCURRENCE_WEIGHT_LINEAR_FACTOR", "0.75")
- .withEnv("EXTENSIONS_STORAGE_MODE", "weaviate")
- .withEnv("EXTENSIONS_STORAGE_ORIGIN", "http://weaviate:8080")
- .withEnv("NEIGHBOR_OCCURRENCE_IGNORE_PERCENTILE", "5")
- .withEnv("ENABLE_COMPOUND_SPLITTING", "'false'");
- container.withCreateContainerCmdModifier(cmd -> cmd.withHostName(HOST_NAME));
- return container;
- }
- }
-
- public Contextionary(String image) {
- super(image);
- }
-}
diff --git a/src/it/java/io/weaviate/containers/MinIo.java b/src/it/java/io/weaviate/containers/MinIo.java
index 451d7ac9c..86d0d649a 100644
--- a/src/it/java/io/weaviate/containers/MinIo.java
+++ b/src/it/java/io/weaviate/containers/MinIo.java
@@ -7,6 +7,9 @@ public class MinIo extends MinIOContainer {
public static final String ACCESS_KEY = "minioadmin";
public static final String SECRET_KEY = "minioadmin";
+ public static final String HOST_NAME = "minio";
+ public static final String URL = HOST_NAME + ":9000";
+
static MinIo createDefault() {
return new MinIo();
}
diff --git a/src/it/java/io/weaviate/containers/Model2Vec.java b/src/it/java/io/weaviate/containers/Model2Vec.java
new file mode 100644
index 000000000..980a65a81
--- /dev/null
+++ b/src/it/java/io/weaviate/containers/Model2Vec.java
@@ -0,0 +1,40 @@
+package io.weaviate.containers;
+
+import org.testcontainers.containers.GenericContainer;
+
+import io.weaviate.client6.v1.api.collections.VectorConfig;
+
+public class Model2Vec extends GenericContainer {
+ public static final String VERSION = "minishlab-potion-base-4M";
+ public static final String DOCKER_IMAGE = "cr.weaviate.io/semitechnologies/model2vec-inference";
+ public static final String MODULE = VectorConfig.Kind.TEXT2VEC_MODEL2VEC.jsonValue();
+
+ public static final String HOST_NAME = "model2vec";
+ public static final String URL = HOST_NAME + ":8080";
+
+ static Model2Vec createDefault() {
+ return new Builder().build();
+ }
+
+ static Model2Vec.Builder custom() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private String versionTag;
+
+ public Builder() {
+ this.versionTag = VERSION;
+ }
+
+ public Model2Vec build() {
+ var container = new Model2Vec(DOCKER_IMAGE + ":" + versionTag);
+ container.withCreateContainerCmdModifier(cmd -> cmd.withHostName(HOST_NAME));
+ return container;
+ }
+ }
+
+ public Model2Vec(String image) {
+ super(image);
+ }
+}
diff --git a/src/it/java/io/weaviate/containers/Weaviate.java b/src/it/java/io/weaviate/containers/Weaviate.java
index a89714bd6..154901660 100644
--- a/src/it/java/io/weaviate/containers/Weaviate.java
+++ b/src/it/java/io/weaviate/containers/Weaviate.java
@@ -112,9 +112,9 @@ public Builder withDefaultVectorizer(String module) {
return this;
}
- public Builder withContextionaryUrl(String url) {
- addModules(Contextionary.MODULE);
- environment.put("CONTEXTIONARY_URL", url);
+ public Builder withModel2VecUrl(String url) {
+ addModules(Model2Vec.MODULE);
+ environment.put("MODEL2VEC_INFERENCE_API", "http://" + url);
return this;
}
@@ -126,7 +126,7 @@ public Builder withImageInference(String url, String module) {
public Builder withOffloadS3(String accessKey, String secretKey) {
addModules("offload-s3");
- environment.put("OFFLOAD_S3_ENDPOINT", "http://minio:9000");
+ environment.put("OFFLOAD_S3_ENDPOINT", "http://" + MinIo.URL);
environment.put("OFFLOAD_S3_BUCKET_AUTO_CREATE", "true");
environment.put("AWS_ACCESS_KEY_ID", accessKey);
environment.put("AWS_SECRET_KEY", secretKey);
@@ -138,6 +138,7 @@ public Builder withFilesystemBackup(String fsPath) {
environment.put("BACKUP_FILESYSTEM_PATH", fsPath);
return this;
}
+
public Builder withAdminUsers(String... admins) {
adminUsers.addAll(Arrays.asList(admins));
return this;
diff --git a/src/it/java/io/weaviate/integration/SearchITest.java b/src/it/java/io/weaviate/integration/SearchITest.java
index 46a2ded83..92185a121 100644
--- a/src/it/java/io/weaviate/integration/SearchITest.java
+++ b/src/it/java/io/weaviate/integration/SearchITest.java
@@ -41,19 +41,19 @@
import io.weaviate.client6.v1.api.collections.vectorindex.MultiVector;
import io.weaviate.containers.Container;
import io.weaviate.containers.Container.ContainerGroup;
-import io.weaviate.containers.Contextionary;
import io.weaviate.containers.Img2VecNeural;
+import io.weaviate.containers.Model2Vec;
import io.weaviate.containers.Weaviate;
public class SearchITest extends ConcurrentTest {
private static final ContainerGroup compose = Container.compose(
Weaviate.custom()
- .withContextionaryUrl(Contextionary.URL)
+ .withModel2VecUrl(Model2Vec.URL)
.withImageInference(Img2VecNeural.URL, Img2VecNeural.MODULE)
.addModules("generative-dummy")
.build(),
Container.IMG2VEC_NEURAL,
- Container.CONTEXTIONARY);
+ Container.MODEL2VEC);
@ClassRule // Bind containers to the lifetime of the test
public static final TestRule _rule = compose.asTestRule();
private static final WeaviateClient client = compose.getClient();
@@ -151,7 +151,7 @@ public void testNearText() throws IOException {
client.collections.create(nsSongs,
col -> col
.properties(Property.text("title"))
- .vectorConfig(VectorConfig.text2vecContextionary()));
+ .vectorConfig(VectorConfig.text2vecModel2Vec()));
var songs = client.collections.use(nsSongs);
var submarine = songs.data.insert(Map.of("title", "Yellow Submarine"));
@@ -160,7 +160,7 @@ public void testNearText() throws IOException {
var result = songs.query.nearText("forest",
opt -> opt
- .distance(0.5f)
+ .distance(0.9f)
.moveTo(.98f, to -> to.concepts("tropical"))
.moveAway(.4f, away -> away.uuids(submarine.metadata().uuid()))
.returnProperties("title"));
@@ -173,7 +173,7 @@ public void testNearText() throws IOException {
@Test
public void testNearText_groupBy() throws IOException {
- var vectorizer = VectorConfig.text2vecContextionary();
+ var vectorizer = VectorConfig.text2vecModel2Vec();
var nsArtists = ns("Artists");
client.collections.create(nsArtists,
@@ -370,7 +370,7 @@ public void testNearObject() throws IOException {
client.collections.create(nsAnimals,
collection -> collection
.properties(Property.text("kind"))
- .vectorConfig(VectorConfig.text2vecContextionary()));
+ .vectorConfig(VectorConfig.text2vecModel2Vec()));
var animals = client.collections.use(nsAnimals);
@@ -399,7 +399,7 @@ public void testHybrid() throws IOException {
client.collections.create(nsHobbies,
collection -> collection
.properties(Property.text("name"), Property.text("description"))
- .vectorConfig(VectorConfig.text2vecContextionary()));
+ .vectorConfig(VectorConfig.text2vecModel2Vec()));
var hobbies = client.collections.use(nsHobbies);
@@ -432,7 +432,7 @@ public void testBadRequest() throws IOException {
client.collections.create(nsThings,
collection -> collection
.properties(Property.text("name"))
- .vectorConfig(VectorConfig.text2vecContextionary()));
+ .vectorConfig(VectorConfig.text2vecModel2Vec()));
var things = client.collections.use(nsThings);
var balloon = things.data.insert(Map.of("name", "balloon"));
@@ -449,7 +449,7 @@ public void testBadRequest_async() throws Throwable {
async.collections.create(nsThings,
collection -> collection
.properties(Property.text("name"))
- .vectorConfig(VectorConfig.text2vecContextionary()))
+ .vectorConfig(VectorConfig.text2vecModel2Vec()))
.join();
var things = async.collections.use(nsThings);
@@ -470,7 +470,7 @@ public void testMetadataAll() throws IOException {
client.collections.create(nsThings,
c -> c
.properties(Property.text("name"))
- .vectorConfig(VectorConfig.text2vecContextionary(
+ .vectorConfig(VectorConfig.text2vecModel2Vec(
t2v -> t2v.sourceProperties("name"))));
var things = client.collections.use(nsThings);
@@ -563,7 +563,7 @@ public void testGenerative_bm25() throws IOException {
c -> c
.properties(Property.text("title"))
.generativeModule(new DummyGenerative())
- .vectorConfig(VectorConfig.text2vecContextionary(
+ .vectorConfig(VectorConfig.text2vecModel2Vec(
t2v -> t2v.sourceProperties("title"))));
var things = client.collections.use(nsThings);
@@ -604,7 +604,7 @@ public void testGenerative_bm25_groupBy() throws IOException {
c -> c
.properties(Property.text("title"))
.generativeModule(new DummyGenerative())
- .vectorConfig(VectorConfig.text2vecContextionary(
+ .vectorConfig(VectorConfig.text2vecModel2Vec(
t2v -> t2v.sourceProperties("title"))));
var things = client.collections.use(nsThings);
diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/Generative.java b/src/main/java/io/weaviate/client6/v1/api/collections/Generative.java
index da7818c75..ce160b7f3 100644
--- a/src/main/java/io/weaviate/client6/v1/api/collections/Generative.java
+++ b/src/main/java/io/weaviate/client6/v1/api/collections/Generative.java
@@ -94,27 +94,47 @@ public static Generative anyscale(Function> fn) {
+ return AwsGenerative.bedrock(region, model, fn);
+ }
+
+ /**
+ * Configure a default {@code generative-aws} module with Sagemaker integration.
*
* @param region AWS region.
- * @param service AWS service to use, e.g. {@code "bedrock"} or
- * {@code "sagemaker"}.
+ * @param baseUrl Base inference URL.
*/
- public static Generative aws(String region, String service) {
- return AwsGenerative.of(region, service);
+ public static Generative awsSagemaker(String region, String baseUrl) {
+ return AwsGenerative.sagemaker(region, baseUrl);
}
/**
- * Configure a {@code generative-aws} module.
+ * Configure a {@code generative-aws} module with Sagemaker integration.
*
* @param region AWS region.
- * @param service AWS service to use, e.g. {@code "bedrock"} or
- * {@code "sagemaker"}.
+ * @param baseUrl Base inference URL.
* @param fn Lambda expression for optional parameters.
*/
- public static Generative aws(String region, String service,
- Function> fn) {
- return AwsGenerative.of(region, service, fn);
+ public static Generative awsSagemaker(String region, String baseUrl,
+ Function> fn) {
+ return AwsGenerative.sagemaker(region, baseUrl, fn);
}
/** Configure a default {@code generative-cohere} module. */
@@ -166,8 +186,8 @@ public static Generative friendliai(Function> fn) {
- return GoogleGenerative.of(projectId, fn);
+ public static Generative googleVertex(String projectId,
+ Function> fn) {
+ return GoogleGenerative.vertex(projectId, fn);
+ }
+
+ /** Configure a default {@code generative-palm} module. */
+ public static Generative googleAiStudio() {
+ return GoogleGenerative.aiStudio();
+ }
+
+ /**
+ * Configure a {@code generative-palm} module.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Generative googleAiStudio(
+ Function> fn) {
+ return GoogleGenerative.aiStudio(fn);
}
/** Configure a default {@code generative-mistral} module. */
diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/VectorConfig.java b/src/main/java/io/weaviate/client6/v1/api/collections/VectorConfig.java
index ae13f70ce..8425ba8b7 100644
--- a/src/main/java/io/weaviate/client6/v1/api/collections/VectorConfig.java
+++ b/src/main/java/io/weaviate/client6/v1/api/collections/VectorConfig.java
@@ -16,193 +16,1195 @@
import com.google.gson.stream.JsonWriter;
import io.weaviate.client6.v1.api.collections.vectorizers.Img2VecNeuralVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2MultiVecJinaAiVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecAwsVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecBindVectorizer;
import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecClipVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecCohereVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecGoogleVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecJinaAiVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecNvidiaVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Multi2VecVoyageAiVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Ref2VecCentroidVectorizer;
import io.weaviate.client6.v1.api.collections.vectorizers.SelfProvidedVectorizer;
-import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecContextionaryVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2MultiVecJinaAiVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecAwsVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecAzureOpenAiVectorizer;
+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.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.Text2VecMistralVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecModel2VecVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecMorphVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecNvidiaVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecOllamaVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecOpenAiVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecTransformersVectorizer;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecVoyageAiVectorizer;
import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecWeaviateVectorizer;
import io.weaviate.client6.v1.internal.ObjectBuilder;
+import io.weaviate.client6.v1.internal.TaggedUnion;
import io.weaviate.client6.v1.internal.json.JsonEnum;
-public interface VectorConfig {
+public interface VectorConfig extends TaggedUnion {
public enum Kind implements JsonEnum {
NONE("none"),
- IMG2VEC_NEURAL("img2vec-neural"),
- TEXT2VEC_CONTEXTIONARY("text2vec-contextionary"),
+ TEXT2VEC_AWS("text2vec-aws"),
+ TEXT2VEC_COHERE("text2vec-cohere"),
+ TEXT2VEC_DATABRICKS("text2vec-databricks"),
+ TEXT2VEC_GOOGLE("text2vec-google"),
+ TEXT2VEC_HUGGINGFACE("text2vec-huggingface"),
+ REF2VEC_CENTROID("ref2vec-centroid"),
+ TEXT2VEC_JINAAI("text2vec-jinaai"),
+ TEXT2VEC_MISTRAL("text2vec-mistral"),
+ TEXT2VEC_MORPH("text2vec-morph"),
+ TEXT2VEC_MODEL2VEC("text2vec-model2vec"),
+ TEXT2VEC_NVIDIA("text2vec-nvidia"),
+ TEXT2VEC_OPENAI("text2vec-openai"),
+ TEXT2VEC_AZURE_OPENAI("text2vec-openai"),
+ TEXT2VEC_OLLAMA("text2vec-ollama"),
+ TEXT2VEC_TRANSFORMERS("text2vec-transformers"),
+ TEXT2VEC_VOYAGEAI("text2vec-voyageai"),
TEXT2VEC_WEAVIATE("text2vec-weaviate"),
- MULTI2VEC_CLIP("multi2vec-clip");
+ IMG2VEC_NEURAL("img2vec-neural"),
+ MULTI2VEC_AWS("multi2vec-aws"),
+ MULTI2VEC_BIND("multi2vec-bind"),
+ MULTI2VEC_CLIP("multi2vec-clip"),
+ MULTI2VEC_GOOGLE("multi2vec-google"),
+ MULTI2VEC_COHERE("multi2vec-cohere"),
+ MULTI2VEC_JINAAI("multi2vec-jinaai"),
+ MULTI2VEC_NVIDIA("multi2vec-nvidia"),
+ MULTI2VEC_VOYAGEAI("multi2vec-voyageai"),
+ TEXT2MULTIVEC_JINAAI("text2multivec-jinaai"),
+ MULTI2MULTIVEC_JINAAI("multi2multivec-jinaai");
+
+ private static final Map jsonValueMap = JsonEnum.collectNames(Kind.values());
+ private final String jsonValue;
+
+ private Kind(String jsonValue) {
+ this.jsonValue = jsonValue;
+ }
+
+ @Override
+ public String jsonValue() {
+ return this.jsonValue;
+ }
+
+ public static Kind valueOfJson(String jsonValue) {
+ return JsonEnum.valueOfJson(jsonValue, jsonValueMap, Kind.class);
+ }
+ }
+
+ /** Get vector index configuration for this vector. */
+ VectorIndex vectorIndex();
+
+ /** Get quantization configuration for this vector. */
+ Quantization quantization();
+
+ /** Create a bring-your-own-vector vector index. */
+ public static Map.Entry selfProvided() {
+ return selfProvided(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a bring-your-own-vector vector index.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry selfProvided(
+ Function> fn) {
+ return selfProvided(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named bring-your-own-vector vector index.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry selfProvided(String vectorName) {
+ return Map.entry(vectorName, SelfProvidedVectorizer.of());
+ }
+
+ /**
+ * Create a named bring-your-own-vector vector index.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry selfProvided(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, SelfProvidedVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code img2vec-neural} vectorizer. */
+ public static Map.Entry img2vecNeural() {
+ return img2vecNeural(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code img2vec-neural} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry img2vecNeural(
+ Function> fn) {
+ return img2vecNeural(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code img2vec-neural} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry img2vecNeural(String vectorName) {
+ return Map.entry(vectorName, Img2VecNeuralVectorizer.of());
+ }
+
+ /**
+ * Create a vector index with an {@code img2vec-neural} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry img2vecNeural(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Img2VecNeuralVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2multivec-jinaai} vectorizer. */
+ public static Map.Entry multi2multivecJinaai() {
+ return multi2multivecJinaai(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2multivec-jinaai} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2multivecJinaai(
+ Function> fn) {
+ return multi2multivecJinaai(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2multivec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2multivecJinaai(String vectorName) {
+ return Map.entry(vectorName, Multi2MultiVecJinaAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2multivec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2multivecJinaai(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2MultiVecJinaAiVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-aws} vectorizer. */
+ public static Map.Entry multi2vecAws() {
+ return multi2vecAws(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-aws} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecAws(
+ Function> fn) {
+ return multi2vecAws(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-aws} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecAws(String vectorName) {
+ return Map.entry(vectorName, Multi2VecAwsVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-aws} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecAws(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecAwsVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-bind} vectorizer. */
+ public static Map.Entry multi2vecBind() {
+ return multi2vecBind(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-bind} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecBind(
+ Function> fn) {
+ return multi2vecBind(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-bind} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecBind(String vectorName) {
+ return Map.entry(vectorName, Multi2VecBindVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-bind} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecBind(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecBindVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-clip} vectorizer. */
+ public static Map.Entry multi2vecClip() {
+ return multi2vecClip(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-clip} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecClip(
+ Function> fn) {
+ return multi2vecClip(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-clip} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecClip(String vectorName) {
+ return Map.entry(vectorName, Multi2VecClipVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-clip} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecClip(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecClipVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-cohere} vectorizer. */
+ public static Map.Entry multi2vecCohere() {
+ return multi2vecBind(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-cohere} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecCohere(
+ Function> fn) {
+ return multi2vecCohere(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-cohere} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecCohere(String vectorName) {
+ return Map.entry(vectorName, Multi2VecCohereVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-cohere} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecCohere(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecCohereVectorizer.of(fn));
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-google} vectorizer.
+ *
+ * @param location Geographic region the Google Cloud model runs in.
+ */
+ public static Map.Entry multi2vecGoogle(String location) {
+ return multi2vecGoogle(VectorIndex.DEFAULT_VECTOR_NAME, location);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-google} vectorizer.
+ *
+ * @param location Geographic region the Google Cloud model runs in.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecGoogle(
+ String location,
+ Function> fn) {
+ return multi2vecGoogle(VectorIndex.DEFAULT_VECTOR_NAME, location, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-google} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param location Geographic region the Google Cloud model runs in.
+ */
+ public static Map.Entry multi2vecGoogle(String vectorName, String location) {
+ return Map.entry(vectorName, Multi2VecGoogleVectorizer.of(location));
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-google} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param location Geographic region the Google Cloud model runs in.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecGoogle(String vectorName,
+ String location,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecGoogleVectorizer.of(location, fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-jinaai} vectorizer. */
+ public static Map.Entry multi2vecJinaAi() {
+ return multi2vecJinaAi(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-jinaai} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecJinaAi(
+ Function> fn) {
+ return multi2vecJinaAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecJinaAi(String vectorName) {
+ return Map.entry(vectorName, Multi2VecJinaAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecJinaAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecJinaAiVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-nvidia} vectorizer. */
+ public static Map.Entry multi2vecNvidia() {
+ return multi2vecNvidia(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-nvidia} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecNvidia(
+ Function> fn) {
+ return multi2vecNvidia(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-nvidia} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecNvidia(String vectorName) {
+ return Map.entry(vectorName, Multi2VecNvidiaVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-nvidia} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecNvidia(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecNvidiaVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code multi2vec-voyageai} vectorizer. */
+ public static Map.Entry multi2vecVoyageAi() {
+ return multi2vecVoyageAi(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code multi2vec-voyageai} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecVoyageAi(
+ Function> fn) {
+ return multi2vecVoyageAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-voyageai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry multi2vecVoyageAi(String vectorName) {
+ return Map.entry(vectorName, Multi2VecVoyageAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code multi2vec-voyageai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry multi2vecVoyageAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Multi2VecVoyageAiVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code ref2vec-centroid} vectorizer. */
+ public static Map.Entry ref2vecCentroid() {
+ return ref2vecCentroid(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code ref2vec-centroid} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry ref2vecCentroid(
+ Function> fn) {
+ return ref2vecCentroid(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code ref2vec-centroid} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry ref2vecCentroid(String vectorName) {
+ return Map.entry(vectorName, Ref2VecCentroidVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code ref2vec-centroid} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry ref2vecCentroid(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Ref2VecCentroidVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2multivec-jinaai} vectorizer. */
+ public static Map.Entry text2multivecJinaAi() {
+ return text2multivecJinaAi(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2multivec-jinaai} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2multivecJinaAi(
+ Function> fn) {
+ return text2multivecJinaAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2multivec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2multivecJinaAi(String vectorName) {
+ return Map.entry(vectorName, Text2MultiVecJinaAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2multivec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2multivecJinaAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2MultiVecJinaAiVectorizer.of(fn));
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-aws} vectorizer with Bedrock
+ * integration.
+ *
+ * @param model Inference model.
+ */
+ public static Map.Entry text2vecAwsBedrock(String model) {
+ return text2vecAwsBedrock(VectorIndex.DEFAULT_VECTOR_NAME, model);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-aws} vectorizer with Bedrock
+ * integration.
+ *
+ * @param model Inference model.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecAwsBedrock(
+ String model,
+ Function> fn) {
+ return text2vecAwsBedrock(VectorIndex.DEFAULT_VECTOR_NAME, model, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-aws}
+ * vectorizer with Bedrock integration.
+ *
+ * @param vectorName Vector name.
+ * @param model Inference model.
+ */
+ public static Map.Entry text2vecAwsBedrock(String vectorName, String model) {
+ return Map.entry(vectorName, Text2VecAwsVectorizer.bedrock(model));
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-aws}
+ * vectorizer with Bedrock integration.
+ *
+ * @param vectorName Vector name.
+ * @param model Inference model.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecAwsBedrock(String vectorName,
+ String model,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecAwsVectorizer.bedrock(model, fn));
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-aws} vectorizer with Sagemaker
+ * integration.
+ *
+ * @param baseUrl Base URL of the inference service.
+ */
+ public static Map.Entry text2vecAwsSagemaker(String baseUrl) {
+ return text2vecAwsSagemaker(VectorIndex.DEFAULT_VECTOR_NAME, baseUrl);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-aws} vectorizer with Sagemaker
+ * integration.
+ *
+ * @param baseUrl Base URL of the inference service.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecAwsSagemaker(
+ String baseUrl,
+ Function> fn) {
+ return text2vecAwsSagemaker(VectorIndex.DEFAULT_VECTOR_NAME, baseUrl, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-aws}
+ * vectorizer with Sagemaker integration.
+ *
+ * @param vectorName Vector name.
+ * @param baseUrl Base URL of the inference service.
+ */
+ public static Map.Entry text2vecAwsSagemaker(String vectorName, String baseUrl) {
+ return Map.entry(vectorName, Text2VecAwsVectorizer.sagemaker(baseUrl));
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-aws}
+ * vectorizer with Sagemaker integration.
+ *
+ * @param vectorName Vector name.
+ * @param baseUrl Base URL of the inference service.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecAwsSagemaker(String vectorName,
+ String baseUrl,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecAwsVectorizer.sagemaker(baseUrl, fn));
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-openai} vectorizer deployed on
+ * Azure.
+ */
+ public static Map.Entry text2vecAzureOpenAi() {
+ return text2vecAzureOpenAi(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-openai} vectorizer deployed on
+ * Azure.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecAzureOpenAi(
+ Function> fn) {
+ return text2vecAzureOpenAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-openai} vectorizer
+ * deployed on Azure.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecAzureOpenAi(String vectorName) {
+ return Map.entry(vectorName, Text2VecAzureOpenAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-openai} vectorizer
+ * deployed on Azure.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecAzureOpenAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecAzureOpenAiVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-cohere} vectorizer. */
+ public static Map.Entry text2vecCohere() {
+ return text2vecCohere(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-cohere} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecCohere(
+ Function> fn) {
+ return text2vecCohere(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-cohere}
+ * vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecCohere(String vectorName) {
+ return Map.entry(vectorName, Text2VecCohereVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-cohere}
+ * vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecCohere(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecCohereVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-databricks} vectorizer. */
+ public static Map.Entry text2vecDatabricks() {
+ return text2vecDatabricks(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-databricks} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecDatabricks(
+ Function> fn) {
+ return text2vecDatabricks(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-databricks} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecDatabricks(String vectorName) {
+ return Map.entry(vectorName, Text2VecDatabricksVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-databricks} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecDatabricks(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecDatabricksVectorizer.of(fn));
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-google} vectorizer with Google
+ * AI Studio integration.
+ */
+ public static Map.Entry text2vecGoogleAiStudio() {
+ return text2vecGoogleAiStudio(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-google} vectorizer with Google
+ * AI Studio integration.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecGoogleAiStudio(
+ Function> fn) {
+ return text2vecGoogleAiStudio(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-google} vectorizer with
+ * Google AI Studio integration.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecGoogleAiStudio(String vectorName) {
+ return Map.entry(vectorName, Text2VecGoogleVectorizer.aiStudio());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-google} vectorizer with
+ * Google AI Studio integration.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecGoogleAiStudio(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecGoogleVectorizer.aiStudio(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-google} vectorizer. */
+ public static Map.Entry text2vecGoogleVertex(String projectId) {
+ return text2vecGoogleVertex(VectorIndex.DEFAULT_VECTOR_NAME, projectId);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-google} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecGoogleVertex(String projectId,
+ Function> fn) {
+ return text2vecGoogleVertex(VectorIndex.DEFAULT_VECTOR_NAME, projectId, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-google} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecGoogleVertex(String vectorName, String projectId) {
+ return Map.entry(vectorName, Text2VecGoogleVectorizer.vertex(projectId));
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-google} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecGoogleVertex(String vectorName, String projectId,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecGoogleVectorizer.vertex(projectId, fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-huggingface} vectorizer. */
+ public static Map.Entry text2vecHuggingFace() {
+ return text2vecHuggingFace(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-huggingface} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecHuggingFace(
+ Function> fn) {
+ return text2vecHuggingFace(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-huggingface} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecHuggingFace(String vectorName) {
+ return Map.entry(vectorName, Text2VecHuggingFaceVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-huggingface} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecHuggingFace(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecHuggingFaceVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-jinaai} vectorizer. */
+ public static Map.Entry text2vecJinaAi() {
+ return text2vecJinaAi(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-jinaai} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecJinaAi(
+ Function> fn) {
+ return text2vecJinaAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecJinaAi(String vectorName) {
+ return Map.entry(vectorName, Text2VecJinaAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-jinaai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecJinaAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecJinaAiVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-mistral} vectorizer. */
+ public static Map.Entry text2vecMistral() {
+ return text2vecMistral(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
- private static final Map jsonValueMap = JsonEnum.collectNames(Kind.values());
- private final String jsonValue;
+ /**
+ * Create a vector index with an {@code text2vec-mistral} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecMistral(
+ Function> fn) {
+ return text2vecMistral(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
- private Kind(String jsonValue) {
- this.jsonValue = jsonValue;
- }
+ /**
+ * Create a named vector index with an {@code text2vec-mistral} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecMistral(String vectorName) {
+ return Map.entry(vectorName, Text2VecMistralVectorizer.of());
+ }
- @Override
- public String jsonValue() {
- return this.jsonValue;
- }
+ /**
+ * Create a named vector index with an {@code text2vec-mistral} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecMistral(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecMistralVectorizer.of(fn));
+ }
- public static Kind valueOfJson(String jsonValue) {
- return JsonEnum.valueOfJson(jsonValue, jsonValueMap, Kind.class);
- }
+ /** Create a vector index with an {@code text2vec-model2vec} vectorizer. */
+ public static Map.Entry text2vecModel2Vec() {
+ return text2vecModel2Vec(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-model2vec} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecModel2Vec(
+ Function> fn) {
+ return text2vecModel2Vec(VectorIndex.DEFAULT_VECTOR_NAME, fn);
}
- Kind _kind();
+ /**
+ * Create a named vector index with an {@code text2vec-model2vec} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecModel2Vec(String vectorName) {
+ return Map.entry(vectorName, Text2VecModel2VecVectorizer.of());
+ }
- Object _self();
+ /**
+ * Create a named vector index with an {@code text2vec-model2vec} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecModel2Vec(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecModel2VecVectorizer.of(fn));
+ }
- /** Get vector index configuration for this vector. */
- VectorIndex vectorIndex();
+ /** Create a vector index with an {@code text2vec-morph} vectorizer. */
+ public static Map.Entry text2vecMorph() {
+ return text2vecMorph(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
- /** Get quantization configuration for this vector. */
- Quantization quantization();
+ /**
+ * Create a vector index with an {@code text2vec-morph} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecMorph(
+ Function> fn) {
+ return text2vecMorph(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
- /** Create a bring-your-own-vector vector index. */
- public static Map.Entry selfProvided() {
- return selfProvided(VectorIndex.DEFAULT_VECTOR_NAME);
+ /**
+ * Create a named vector index with an {@code text2vec-morph} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecMorph(String vectorName) {
+ return Map.entry(vectorName, Text2VecMorphVectorizer.of());
}
/**
- * Create a bring-your-own-vector vector index.
+ * Create a named vector index with an {@code text2vec-morph} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecMorph(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecMorphVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-nvidia} vectorizer. */
+ public static Map.Entry text2vecNvidia() {
+ return text2vecNvidia(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-nvidia} vectorizer.
*
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry selfProvided(
- Function> fn) {
- return selfProvided(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ public static Map.Entry text2vecNvidia(
+ Function> fn) {
+ return text2vecNvidia(VectorIndex.DEFAULT_VECTOR_NAME, fn);
}
/**
- * Create a named bring-your-own-vector vector index.
+ * Create a named vector index with an {@code text2vec-nvidia} vectorizer.
*
* @param vectorName Vector name.
*/
- public static Map.Entry selfProvided(String vectorName) {
- return Map.entry(vectorName, SelfProvidedVectorizer.of());
+ public static Map.Entry text2vecNvidia(String vectorName) {
+ return Map.entry(vectorName, Text2VecNvidiaVectorizer.of());
}
/**
- * Create a named bring-your-own-vector vector index.
+ * Create a named vector index with an {@code text2vec-nvidia} vectorizer.
*
* @param vectorName Vector name.
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry selfProvided(String vectorName,
- Function> fn) {
- return Map.entry(vectorName, SelfProvidedVectorizer.of(fn));
+ public static Map.Entry text2vecNvidia(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecNvidiaVectorizer.of(fn));
}
- /** Create a vector index with an {@code img2vec-neural} vectorizer. */
- public static Map.Entry img2vecNeural() {
- return img2vecNeural(VectorIndex.DEFAULT_VECTOR_NAME);
+ /** Create a vector index with an {@code text2vec-ollama} vectorizer. */
+ public static Map.Entry text2vecOllama() {
+ return text2vecOllama(VectorIndex.DEFAULT_VECTOR_NAME);
}
/**
- * Create a vector index with an {@code img2vec-neural} vectorizer.
+ * Create a vector index with an {@code text2vec-ollama} vectorizer.
*
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry img2vecNeural(
- Function> fn) {
- return img2vecNeural(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ public static Map.Entry text2vecOllama(
+ Function> fn) {
+ return text2vecOllama(VectorIndex.DEFAULT_VECTOR_NAME, fn);
}
/**
- * Create a named vector index with an {@code img2vec-neural} vectorizer.
+ * Create a named vector index with an {@code text2vec-ollama} vectorizer.
*
* @param vectorName Vector name.
*/
- public static Map.Entry img2vecNeural(String vectorName) {
- return Map.entry(vectorName, Img2VecNeuralVectorizer.of());
+ public static Map.Entry text2vecOllama(String vectorName) {
+ return Map.entry(vectorName, Text2VecOllamaVectorizer.of());
}
/**
- * Create a vector index with an {@code img2vec-neural} vectorizer.
+ * Create a named vector index with an {@code text2vec-ollama} vectorizer.
*
* @param vectorName Vector name.
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry img2vecNeural(String vectorName,
- Function> fn) {
- return Map.entry(vectorName, Img2VecNeuralVectorizer.of(fn));
+ public static Map.Entry text2vecOllama(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecOllamaVectorizer.of(fn));
}
- /** Create a vector index with an {@code multi2vec-clip} vectorizer. */
- public static Map.Entry multi2vecClip() {
- return multi2vecClip(VectorIndex.DEFAULT_VECTOR_NAME);
+ /** Create a vector index with an {@code text2vec-openai} vectorizer. */
+ public static Map.Entry text2vecOpenAi() {
+ return text2vecOpenAi(VectorIndex.DEFAULT_VECTOR_NAME);
}
/**
- * Create a vector index with an {@code multi2vec-clip} vectorizer.
+ * Create a vector index with an {@code text2vec-openai} vectorizer.
*
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry multi2vecClip(
- Function> fn) {
- return multi2vecClip(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ public static Map.Entry text2vecOpenAi(
+ Function> fn) {
+ return text2vecOpenAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
}
/**
- * Create a named vector index with an {@code multi2vec-clip} vectorizer.
+ * Create a named vector index with an {@code text2vec-openai} vectorizer.
*
* @param vectorName Vector name.
*/
- public static Map.Entry multi2vecClip(String vectorName) {
- return Map.entry(vectorName, Multi2VecClipVectorizer.of());
+ public static Map.Entry text2vecOpenAi(String vectorName) {
+ return Map.entry(vectorName, Text2VecOpenAiVectorizer.of());
}
/**
- * Create a named vector index with an {@code multi2vec-clip} vectorizer.
+ * Create a named vector index with an {@code text2vec-openai} vectorizer.
*
* @param vectorName Vector name.
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry multi2vecClip(String vectorName,
- Function> fn) {
- return Map.entry(vectorName, Multi2VecClipVectorizer.of(fn));
+ public static Map.Entry text2vecOpenAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecOpenAiVectorizer.of(fn));
}
- /** Create a vector index with an {@code text2vec-contextionary} vectorizer. */
- public static Map.Entry text2vecContextionary() {
- return text2vecContextionary(VectorIndex.DEFAULT_VECTOR_NAME);
+ /** Create a vector index with an {@code text2vec-transformers} vectorizer. */
+ public static Map.Entry text2vecTransformers() {
+ return text2vecTransformers(VectorIndex.DEFAULT_VECTOR_NAME);
}
/**
- * Create a vector index with an {@code text2vec-contextionary} vectorizer.
+ * Create a vector index with an {@code text2vec-transformers} vectorizer.
*
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry text2vecContextionary(
- Function> fn) {
- return text2vecContextionary(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ public static Map.Entry text2vecTransformers(
+ Function> fn) {
+ return text2vecTransformers(VectorIndex.DEFAULT_VECTOR_NAME, fn);
}
/**
- * Create a named vector index with an {@code text2vec-contextionary}
- * vectorizer.
+ * Create a named vector index with an {@code text2vec-transformers} vectorizer.
*
* @param vectorName Vector name.
*/
- public static Map.Entry text2vecContextionary(String vectorName) {
- return Map.entry(vectorName, Text2VecContextionaryVectorizer.of());
+ public static Map.Entry text2vecTransformers(String vectorName) {
+ return Map.entry(vectorName, Text2VecTransformersVectorizer.of());
}
/**
- * Create a named vector index with an {@code text2vec-contextionary}
- * vectorizer.
+ * Create a named vector index with an {@code text2vec-transformers} vectorizer.
+ *
+ * @param vectorName Vector name.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecTransformers(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecTransformersVectorizer.of(fn));
+ }
+
+ /** Create a vector index with an {@code text2vec-voyageai} vectorizer. */
+ public static Map.Entry text2vecVoyageAi() {
+ return text2vecVoyageAi(VectorIndex.DEFAULT_VECTOR_NAME);
+ }
+
+ /**
+ * Create a vector index with an {@code text2vec-voyageai} vectorizer.
+ *
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static Map.Entry text2vecVoyageAi(
+ Function> fn) {
+ return text2vecVoyageAi(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-voyageai} vectorizer.
+ *
+ * @param vectorName Vector name.
+ */
+ public static Map.Entry text2vecVoyageAi(String vectorName) {
+ return Map.entry(vectorName, Text2VecVoyageAiVectorizer.of());
+ }
+
+ /**
+ * Create a named vector index with an {@code text2vec-voyageai} vectorizer.
*
* @param vectorName Vector name.
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry text2vecContextionary(String vectorName,
- Function> fn) {
- return Map.entry(vectorName, Text2VecContextionaryVectorizer.of(fn));
+ public static Map.Entry text2vecVoyageAi(String vectorName,
+ Function> fn) {
+ return Map.entry(vectorName, Text2VecVoyageAiVectorizer.of(fn));
}
/** Create a vector index with an {@code text2vec-weaviate} vectorizer. */
- public static Map.Entry text2VecWeaviate() {
- return text2VecWeaviate(VectorIndex.DEFAULT_VECTOR_NAME);
+ public static Map.Entry text2vecWeaviate() {
+ return text2vecWeaviate(VectorIndex.DEFAULT_VECTOR_NAME);
}
/**
@@ -210,9 +1212,9 @@ public static Map.Entry text2VecWeaviate() {
*
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry text2VecWeaviate(
+ public static Map.Entry text2vecWeaviate(
Function> fn) {
- return text2VecWeaviate(VectorIndex.DEFAULT_VECTOR_NAME, fn);
+ return text2vecWeaviate(VectorIndex.DEFAULT_VECTOR_NAME, fn);
}
/**
@@ -220,7 +1222,7 @@ public static Map.Entry text2VecWeaviate(
*
* @param vectorName Vector name.
*/
- public static Map.Entry text2VecWeaviate(String vectorName) {
+ public static Map.Entry text2vecWeaviate(String vectorName) {
return Map.entry(vectorName, Text2VecWeaviateVectorizer.of());
}
@@ -230,11 +1232,291 @@ public static Map.Entry text2VecWeaviate(String vectorName
* @param vectorName Vector name.
* @param fn Lambda expression for optional parameters.
*/
- public static Map.Entry text2VecWeaviate(String vectorName,
+ public static Map.Entry text2vecWeaviate(String vectorName,
Function> fn) {
return Map.entry(vectorName, Text2VecWeaviateVectorizer.of(fn));
}
+ /** Is this an instance of {@link Img2VecNeuralVectorizer}? */
+ default public boolean isImg2VecNeural() {
+ return _is(VectorConfig.Kind.IMG2VEC_NEURAL);
+ }
+
+ /** Convert this instance to {@link Img2VecNeuralVectorizer}. */
+ default public Img2VecNeuralVectorizer asImg2VecNeural() {
+ return _as(VectorConfig.Kind.IMG2VEC_NEURAL);
+ }
+
+ /** Is this an instance of {@link Multi2MultiVecJinaAiVectorizer}? */
+ default public boolean isMulti2MultiVecJinaAi() {
+ return _is(VectorConfig.Kind.MULTI2MULTIVEC_JINAAI);
+ }
+
+ /** Convert this instance to {@link Multi2MultiVecJinaAiVectorizer}. */
+ default public Multi2MultiVecJinaAiVectorizer asMulti2MultiVecJinaAi() {
+ return _as(VectorConfig.Kind.MULTI2MULTIVEC_JINAAI);
+ }
+
+ /** Is this an instance of {@link Multi2VecAwsVectorizer}? */
+ default public boolean isMulti2VecAws() {
+ return _is(VectorConfig.Kind.MULTI2VEC_AWS);
+ }
+
+ /** Convert this instance to {@link Multi2VecAwsVectorizer}. */
+ default public Multi2VecAwsVectorizer asMulti2VecAws() {
+ return _as(VectorConfig.Kind.MULTI2VEC_AWS);
+ }
+
+ /** Is this an instance of {@link Multi2VecBindVectorizer}? */
+ default public boolean isMulti2VecBind() {
+ return _is(VectorConfig.Kind.MULTI2VEC_BIND);
+ }
+
+ /** Convert this instance to {@link Multi2VecBindVectorizer}. */
+ default public Multi2VecBindVectorizer asMulti2VecBind() {
+ return _as(VectorConfig.Kind.MULTI2VEC_BIND);
+ }
+
+ /** Is this an instance of {@link Multi2VecClipVectorizer}? */
+ default public boolean isMulti2VecClip() {
+ return _is(VectorConfig.Kind.MULTI2VEC_CLIP);
+ }
+
+ /** Convert this instance to {@link Multi2VecClipVectorizer}. */
+ default public Multi2VecClipVectorizer asMulti2VecClip() {
+ return _as(VectorConfig.Kind.MULTI2VEC_CLIP);
+ }
+
+ /** Is this an instance of {@link Multi2VecCohereVectorizer}? */
+ default public boolean isMulti2VecCohere() {
+ return _is(VectorConfig.Kind.MULTI2VEC_COHERE);
+ }
+
+ /** Convert this instance to {@link Multi2VecCohereVectorizer}. */
+ default public Multi2VecCohereVectorizer asMulti2VecCohere() {
+ return _as(VectorConfig.Kind.MULTI2VEC_COHERE);
+ }
+
+ /** Is this an instance of {@link Multi2VecGoogleVectorizer}? */
+ default public boolean isMulti2VecGoogle() {
+ return _is(VectorConfig.Kind.MULTI2VEC_GOOGLE);
+ }
+
+ /** Convert this instance to {@link Multi2VecGoogleVectorizer}. */
+ default public Multi2VecGoogleVectorizer asMulti2VecGoogle() {
+ return _as(VectorConfig.Kind.MULTI2VEC_GOOGLE);
+ }
+
+ /** Is this an instance of {@link Multi2VecJinaAiVectorizer}? */
+ default public boolean isMulti2VecJinaAi() {
+ return _is(VectorConfig.Kind.MULTI2VEC_JINAAI);
+ }
+
+ /** Convert this instance to {@link Multi2VecJinaAiVectorizer}. */
+ default public Multi2VecJinaAiVectorizer asMulti2VecJinaAi() {
+ return _as(VectorConfig.Kind.MULTI2VEC_JINAAI);
+ }
+
+ /** Is this an instance of {@link Multi2VecNvidiaVectorizer}? */
+ default public boolean isMulti2VecNvidia() {
+ return _is(VectorConfig.Kind.MULTI2VEC_NVIDIA);
+ }
+
+ /** Convert this instance to {@link Multi2VecNvidiaVectorizer}. */
+ default public Multi2VecNvidiaVectorizer asMulti2VecNvidia() {
+ return _as(VectorConfig.Kind.MULTI2VEC_NVIDIA);
+ }
+
+ /** Is this an instance of {@link Multi2VecVoyageAiVectorizer}? */
+ default public boolean isMulti2VecVoyageAi() {
+ return _is(VectorConfig.Kind.MULTI2VEC_VOYAGEAI);
+ }
+
+ /** Convert this instance to {@link Multi2VecVoyageAiVectorizer}. */
+ default public Multi2VecVoyageAiVectorizer asMulti2VecVoyageAi() {
+ return _as(VectorConfig.Kind.MULTI2VEC_VOYAGEAI);
+ }
+
+ /** Is this an instance of {@link Ref2VecCentroidVectorizer}? */
+ default public boolean isRef2VecCentroid() {
+ return _is(VectorConfig.Kind.REF2VEC_CENTROID);
+ }
+
+ /** Convert this instance to {@link Ref2VecCentroidVectorizer}. */
+ default public Ref2VecCentroidVectorizer asRef2VecCentroid() {
+ return _as(VectorConfig.Kind.REF2VEC_CENTROID);
+ }
+
+ /** Is this an instance of {@link Text2VecAwsVectorizer}? */
+ default public boolean isText2VecAws() {
+ return _is(VectorConfig.Kind.TEXT2VEC_AWS);
+ }
+
+ /** Convert this instance to {@link Text2VecAwsVectorizer}. */
+ default public Text2VecAwsVectorizer asText2VecAws() {
+ return _as(VectorConfig.Kind.TEXT2VEC_AWS);
+ }
+
+ /** Is this an instance of {@link Text2VecAzureOpenAiVectorizer}? */
+ default public boolean isText2VecAzureOpenAi() {
+ return _is(VectorConfig.Kind.TEXT2VEC_AZURE_OPENAI);
+ }
+
+ /** Convert this instance to {@link Text2VecAzureOpenAiVectorizer}. */
+ default public Text2VecAzureOpenAiVectorizer asText2VecAzureOpenAi() {
+ return _as(VectorConfig.Kind.TEXT2VEC_AZURE_OPENAI);
+ }
+
+ /** Is this an instance of {@link Text2VecCohereVectorizer}? */
+ default public boolean isText2VecCohere() {
+ return _is(VectorConfig.Kind.TEXT2VEC_COHERE);
+ }
+
+ /** Convert this instance to {@link Text2VecCohereVectorizer}. */
+ default public Text2VecCohereVectorizer asText2VecCohere() {
+ return _as(VectorConfig.Kind.TEXT2VEC_COHERE);
+ }
+
+ /** Is this an instance of {@link Text2VecDatabricksVectorizer}? */
+ default public boolean isText2VecDatabricks() {
+ return _is(VectorConfig.Kind.TEXT2VEC_DATABRICKS);
+ }
+
+ /** Convert this instance to {@link Text2VecDatabricksVectorizer}. */
+ default public Text2VecDatabricksVectorizer asText2VecDatabricks() {
+ return _as(VectorConfig.Kind.TEXT2VEC_DATABRICKS);
+ }
+
+ /** Is this an instance of {@link Text2VecGoogleVectorizer}? */
+ default public boolean isText2VecGoogle() {
+ return _is(VectorConfig.Kind.TEXT2VEC_GOOGLE);
+ }
+
+ /** Convert this instance to {@link Text2VecGoogleVectorizer}. */
+ default public Text2VecGoogleVectorizer asText2VecGoogle() {
+ return _as(VectorConfig.Kind.TEXT2VEC_GOOGLE);
+ }
+
+ /** Is this an instance of {@link Text2VecHuggingFaceVectorizer}? */
+ default public boolean isText2VecHuggingFace() {
+ return _is(VectorConfig.Kind.TEXT2VEC_HUGGINGFACE);
+ }
+
+ /** Convert this instance to {@link Text2VecHuggingFaceVectorizer}. */
+ default public Text2VecHuggingFaceVectorizer asText2VecHuggingFace() {
+ return _as(VectorConfig.Kind.TEXT2VEC_HUGGINGFACE);
+ }
+
+ /** Is this an instance of {@link Text2MultiVecJinaAiVectorizer}? */
+ default public boolean isText2MultiVecJinaAi() {
+ return _is(VectorConfig.Kind.TEXT2MULTIVEC_JINAAI);
+ }
+
+ /** Convert this instance to {@link Text2MultiVecJinaAiVectorizer}. */
+ default public Text2MultiVecJinaAiVectorizer asText2MultiVecJinaAi() {
+ return _as(VectorConfig.Kind.TEXT2MULTIVEC_JINAAI);
+ }
+
+ /** Is this an instance of {@link Text2VecJinaAiVectorizer}? */
+ default public boolean isText2VecJinaAi() {
+ return _is(VectorConfig.Kind.TEXT2VEC_JINAAI);
+ }
+
+ /** Convert this instance to {@link Text2VecJinaAiVectorizer}. */
+ default public Text2VecJinaAiVectorizer asText2VecJinaAi() {
+ return _as(VectorConfig.Kind.TEXT2VEC_JINAAI);
+ }
+
+ /** Is this an instance of {@link Text2VecMistralVectorizer}? */
+ default public boolean isText2VecMistral() {
+ return _is(VectorConfig.Kind.TEXT2VEC_MISTRAL);
+ }
+
+ /** Convert this instance to {@link Text2VecMistralVectorizer}. */
+ default public Text2VecMistralVectorizer asText2VecMistral() {
+ return _as(VectorConfig.Kind.TEXT2VEC_MISTRAL);
+ }
+
+ /** Is this an instance of {@link Text2VecModel2VecVectorizer}? */
+ default public boolean isText2VecModel2Vec() {
+ return _is(VectorConfig.Kind.TEXT2VEC_MODEL2VEC);
+ }
+
+ /** Convert this instance to {@link Text2VecModel2VecVectorizer}. */
+ default public Text2VecModel2VecVectorizer asText2VecModel2Vec() {
+ return _as(VectorConfig.Kind.TEXT2VEC_MODEL2VEC);
+ }
+
+ /** Is this an instance of {@link Text2VecMorphVectorizer}? */
+ default public boolean isText2VecMorph() {
+ return _is(VectorConfig.Kind.TEXT2VEC_MORPH);
+ }
+
+ /** Convert this instance to {@link Text2VecMorphVectorizer}. */
+ default public Text2VecMorphVectorizer asText2VecMorph() {
+ return _as(VectorConfig.Kind.TEXT2VEC_MORPH);
+ }
+
+ /** Is this an instance of {@link Text2VecNvidiaVectorizer}? */
+ default public boolean isText2VecNvidia() {
+ return _is(VectorConfig.Kind.TEXT2VEC_NVIDIA);
+ }
+
+ /** Convert this instance to {@link Text2VecNvidiaVectorizer}. */
+ default public Text2VecNvidiaVectorizer asText2VecNvidia() {
+ return _as(VectorConfig.Kind.TEXT2VEC_NVIDIA);
+ }
+
+ /** Is this an instance of {@link Text2VecOllamaVectorizer}? */
+ default public boolean isText2VecOllama() {
+ return _is(VectorConfig.Kind.TEXT2VEC_OLLAMA);
+ }
+
+ /** Convert this instance to {@link Text2VecOllamaVectorizer}. */
+ default public Text2VecOllamaVectorizer asText2VecOllama() {
+ return _as(VectorConfig.Kind.TEXT2VEC_OLLAMA);
+ }
+
+ /** Is this an instance of {@link Text2VecOpenAiVectorizer}? */
+ default public boolean isText2VecOpenAi() {
+ return _is(VectorConfig.Kind.TEXT2VEC_OPENAI);
+ }
+
+ /** Convert this instance to {@link Text2VecOpenAiVectorizer}. */
+ default public Text2VecOpenAiVectorizer asText2VecOpenAi() {
+ return _as(VectorConfig.Kind.TEXT2VEC_OPENAI);
+ }
+
+ /** Is this an instance of {@link Text2VecTransformersVectorizer}? */
+ default public boolean isText2VecTransformers() {
+ return _is(VectorConfig.Kind.TEXT2VEC_TRANSFORMERS);
+ }
+
+ /** Convert this instance to {@link Text2VecTransformersVectorizer}. */
+ default public Text2VecTransformersVectorizer asText2VecTransformers() {
+ return _as(VectorConfig.Kind.TEXT2VEC_TRANSFORMERS);
+ }
+
+ /** Is this an instance of {@link Text2VecVoyageAiVectorizer}? */
+ default public boolean isText2VecVoyageAi() {
+ return _is(VectorConfig.Kind.TEXT2VEC_VOYAGEAI);
+ }
+
+ /** Convert this instance to {@link Text2VecVoyageAiVectorizer}. */
+ default public Text2VecVoyageAiVectorizer asText2VecVoyageAi() {
+ return _as(VectorConfig.Kind.TEXT2VEC_VOYAGEAI);
+ }
+
+ /** Is this an instance of {@link Text2VecWeaviateVectorizer}? */
+ default public boolean isText2VecWeaviate() {
+ return _is(VectorConfig.Kind.TEXT2VEC_WEAVIATE);
+ }
+
+ /** Convert this instance to {@link Text2VecWeaviateVectorizer}. */
+ default public Text2VecWeaviateVectorizer asText2VecWeaviate() {
+ return _as(VectorConfig.Kind.TEXT2VEC_WEAVIATE);
+ }
+
public static enum CustomTypeAdapterFactory implements TypeAdapterFactory {
INSTANCE;
@@ -248,10 +1530,34 @@ private final void addAdapter(Gson gson, VectorConfig.Kind kind, Class extends
private final void init(Gson gson) {
addAdapter(gson, VectorConfig.Kind.NONE, SelfProvidedVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_AWS, Text2VecAwsVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_COHERE, Text2VecCohereVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_DATABRICKS, Text2VecDatabricksVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_GOOGLE, Text2VecGoogleVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_HUGGINGFACE, Text2VecHuggingFaceVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.REF2VEC_CENTROID, Ref2VecCentroidVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_JINAAI, Text2VecJinaAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_MISTRAL, Text2VecMistralVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_MORPH, Text2VecMorphVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_MODEL2VEC, Text2VecModel2VecVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_NVIDIA, Text2VecNvidiaVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_OPENAI, Text2VecOpenAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_AZURE_OPENAI, Text2VecAzureOpenAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_OLLAMA, Text2VecOllamaVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_TRANSFORMERS, Text2VecTransformersVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_VOYAGEAI, Text2VecVoyageAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2VEC_WEAVIATE, Text2VecWeaviateVectorizer.class);
addAdapter(gson, VectorConfig.Kind.IMG2VEC_NEURAL, Img2VecNeuralVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_AWS, Multi2VecAwsVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_BIND, Multi2VecBindVectorizer.class);
addAdapter(gson, VectorConfig.Kind.MULTI2VEC_CLIP, Multi2VecClipVectorizer.class);
- addAdapter(gson, VectorConfig.Kind.TEXT2VEC_WEAVIATE, Text2VecWeaviateVectorizer.class);
- addAdapter(gson, VectorConfig.Kind.TEXT2VEC_CONTEXTIONARY, Text2VecContextionaryVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_GOOGLE, Multi2VecGoogleVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_COHERE, Multi2VecCohereVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_JINAAI, Multi2VecJinaAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_NVIDIA, Multi2VecNvidiaVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2VEC_VOYAGEAI, Multi2VecVoyageAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.TEXT2MULTIVEC_JINAAI, Text2MultiVecJinaAiVectorizer.class);
+ addAdapter(gson, VectorConfig.Kind.MULTI2MULTIVEC_JINAAI, Multi2MultiVecJinaAiVectorizer.class);
}
@SuppressWarnings("unchecked")
@@ -320,19 +1626,25 @@ public VectorConfig read(JsonReader in) throws IOException {
var vectorizerObject = jsonObject.get("vectorizer").getAsJsonObject();
var vectorizerName = vectorizerObject.keySet().iterator().next();
+ var concreteVectorizer = vectorizerObject.get(vectorizerName).getAsJsonObject();
+
+ // Each individual vectorizer has a `VectorIndex vectorIndex` field.
+ concreteVectorizer.add("vectorIndex", vectorIndex);
VectorConfig.Kind kind;
- try {
- kind = VectorConfig.Kind.valueOfJson(vectorizerName);
- } catch (IllegalArgumentException e) {
- return null;
+ if (vectorizerName.equals(VectorConfig.Kind.TEXT2VEC_OPENAI.jsonValue())) {
+ kind = concreteVectorizer.has("deployementId")
+ ? VectorConfig.Kind.TEXT2VEC_AZURE_OPENAI
+ : VectorConfig.Kind.TEXT2VEC_OPENAI;
+ } else {
+ try {
+ kind = VectorConfig.Kind.valueOfJson(vectorizerName);
+ } catch (IllegalArgumentException e) {
+ return null;
+ }
}
var adapter = delegateAdapters.get(kind);
- var concreteVectorizer = vectorizerObject.get(vectorizerName).getAsJsonObject();
-
- // Each individual vectorizer has a `VectorIndex vectorIndex` field.
- concreteVectorizer.add("vectorIndex", vectorIndex);
// Each individual vectorizer has a `Quantization quantization` field.
// We need to specify the kind in order for
diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/generate/DynamicProvider.java b/src/main/java/io/weaviate/client6/v1/api/collections/generate/DynamicProvider.java
index 883ba5ed1..da2452391 100644
--- a/src/main/java/io/weaviate/client6/v1/api/collections/generate/DynamicProvider.java
+++ b/src/main/java/io/weaviate/client6/v1/api/collections/generate/DynamicProvider.java
@@ -44,11 +44,29 @@ public static DynamicProvider anyscale(
/**
* Configure {@code generative-aws} as a dynamic provider.
*
- * @param fn Lambda expression for optional parameters.
+ * @param region AWS region.
+ * @param model Inference model.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static DynamicProvider awsBedrock(
+ String region,
+ String model,
+ Function> fn) {
+ return AwsGenerative.Provider.bedrock(region, model, fn);
+ }
+
+ /**
+ * Configure {@code generative-aws} as a dynamic provider.
+ *
+ * @param region AWS region.
+ * @param baseUrl Base inference URL.
+ * @param fn Lambda expression for optional parameters.
*/
- public static DynamicProvider aws(
- Function> fn) {
- return AwsGenerative.Provider.of(fn);
+ public static DynamicProvider awsSagemaker(
+ String region,
+ String baseUrl,
+ Function> fn) {
+ return AwsGenerative.Provider.sagemaker(region, baseUrl, fn);
}
/**
@@ -86,9 +104,21 @@ public static DynamicProvider friendliai(
*
* @param fn Lambda expression for optional parameters.
*/
- public static DynamicProvider google(
- Function> fn) {
- return GoogleGenerative.Provider.of(fn);
+ public static DynamicProvider googleAiStudio(
+ Function> fn) {
+ return GoogleGenerative.Provider.aiStudio(fn);
+ }
+
+ /**
+ * Configure {@code generative-palm} as a dynamic provider.
+ *
+ * @param projectId Google project ID.
+ * @param fn Lambda expression for optional parameters.
+ */
+ public static DynamicProvider googleVertex(
+ String projectId,
+ Function> fn) {
+ return GoogleGenerative.Provider.vertex(projectId, fn);
}
/**
diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/generative/AwsGenerative.java b/src/main/java/io/weaviate/client6/v1/api/collections/generative/AwsGenerative.java
index 1589b15db..d49e03900 100644
--- a/src/main/java/io/weaviate/client6/v1/api/collections/generative/AwsGenerative.java
+++ b/src/main/java/io/weaviate/client6/v1/api/collections/generative/AwsGenerative.java
@@ -9,13 +9,14 @@
import io.weaviate.client6.v1.api.collections.Generative;
import io.weaviate.client6.v1.api.collections.generate.DynamicProvider;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecAwsVectorizer.Service;
import io.weaviate.client6.v1.internal.ObjectBuilder;
import io.weaviate.client6.v1.internal.grpc.protocol.WeaviateProtoBase;
import io.weaviate.client6.v1.internal.grpc.protocol.WeaviateProtoGenerative;
public record AwsGenerative(
@SerializedName("region") String region,
- @SerializedName("service") String service,
+ @SerializedName("service") Service service,
@SerializedName("endpoint") String baseUrl,
@SerializedName("model") String model) implements Generative {
@@ -29,27 +30,37 @@ public Object _self() {
return this;
}
- public static AwsGenerative of(String region, String service) {
- return of(region, service, ObjectBuilder.identity());
+ public static AwsGenerative bedrock(String region, String model) {
+ return bedrock(region, model, ObjectBuilder.identity());
}
- public static AwsGenerative of(String region, String service, Function> fn) {
- return fn.apply(new Builder(region, service)).build();
+ public static AwsGenerative bedrock(String region, String model,
+ Function> fn) {
+ return fn.apply(new BedrockBuilder(region, model)).build();
+ }
+
+ public static AwsGenerative sagemaker(String region, String baseUrl) {
+ return sagemaker(region, baseUrl, ObjectBuilder.identity());
+ }
+
+ public static AwsGenerative sagemaker(String region, String baseUrl,
+ Function> fn) {
+ return fn.apply(new SagemakerBuilder(region, baseUrl)).build();
}
public AwsGenerative(Builder builder) {
this(
- builder.service,
builder.region,
+ builder.service,
builder.baseUrl,
builder.model);
}
public static class Builder implements ObjectBuilder {
private final String region;
- private final String service;
+ private final Service service;
- public Builder(String service, String region) {
+ public Builder(Service service, String region) {
this.service = service;
this.region = region;
}
@@ -58,13 +69,13 @@ public Builder(String service, String region) {
private String model;
/** Base URL of the generative provider. */
- public Builder baseUrl(String baseUrl) {
+ protected Builder baseUrl(String baseUrl) {
this.baseUrl = baseUrl;
return this;
}
/** Select generative model. */
- public Builder model(String model) {
+ protected Builder model(String model) {
this.model = model;
return this;
}
@@ -75,12 +86,37 @@ public AwsGenerative build() {
}
}
+ public static class BedrockBuilder extends Builder {
+ public BedrockBuilder(String region, String model) {
+ super(Service.BEDROCK, region);
+ super.model(model);
+ }
+
+ @Override
+ /** Required for {@link Service#BEDROCK}. */
+ public Builder model(String model) {
+ return super.model(model);
+ }
+ }
+
+ public static class SagemakerBuilder extends Builder {
+ public SagemakerBuilder(String region, String baseUrl) {
+ super(Service.SAGEMAKER, region);
+ super.baseUrl(baseUrl);
+ }
+
+ /** Required for {@link Service#SAGEMAKER}. */
+ public Builder baseUrl(String baseUrl) {
+ return super.baseUrl(baseUrl);
+ }
+ }
+
public static record Metadata() implements ProviderMetadata {
}
public static record Provider(
String region,
- String service,
+ Service service,
String baseUrl,
String model,
String targetModel,
@@ -89,9 +125,18 @@ public static record Provider(
List images,
List imageProperties) implements DynamicProvider {
- public static Provider of(
- Function> fn) {
- return fn.apply(new Builder()).build();
+ public static Provider bedrock(
+ String region,
+ String model,
+ Function> fn) {
+ return fn.apply(new BedrockBuilder(region, model)).build();
+ }
+
+ public static Provider sagemaker(
+ String region,
+ String baseUrl,
+ Function> fn) {
+ return fn.apply(new SagemakerBuilder(region, baseUrl)).build();
}
@Override
@@ -102,7 +147,10 @@ public void appendTo(
provider.setRegion(region);
}
if (service != null) {
- provider.setService(service);
+ provider.setService(
+ service == Service.BEDROCK ? "bedrock"
+ : service == Service.SAGEMAKER ? "sagemaker"
+ : "unknown");
}
if (baseUrl != null) {
provider.setEndpoint(baseUrl);
@@ -143,9 +191,9 @@ public Provider(Builder builder) {
builder.imageProperties);
}
- public static class Builder implements ObjectBuilder {
- private String region;
- private String service;
+ public abstract static class Builder implements ObjectBuilder {
+ private final Service service;
+ private final String region;
private String baseUrl;
private String model;
private String targetModel;
@@ -154,24 +202,19 @@ public static class Builder implements ObjectBuilder {
private final List images = new ArrayList<>();
private final List imageProperties = new ArrayList<>();
- public Builder region(String region) {
- this.region = region;
- return this;
- }
-
- public Builder service(String service) {
+ protected Builder(Service service, String region) {
this.service = service;
- return this;
+ this.region = region;
}
/** Base URL of the generative provider. */
- public Builder baseUrl(String baseUrl) {
+ protected Builder baseUrl(String baseUrl) {
this.baseUrl = baseUrl;
return this;
}
/** Select generative model. */
- public Builder model(String model) {
+ protected Builder model(String model) {
this.model = model;
return this;
}
@@ -218,5 +261,30 @@ public AwsGenerative.Provider build() {
return new AwsGenerative.Provider(this);
}
}
+
+ public static class BedrockBuilder extends Builder {
+ public BedrockBuilder(String region, String model) {
+ super(Service.BEDROCK, region);
+ super.model(model);
+ }
+
+ @Override
+ /** Required for {@link Service#BEDROCK}. */
+ public Builder model(String model) {
+ return super.model(model);
+ }
+ }
+
+ public static class SagemakerBuilder extends Builder {
+ public SagemakerBuilder(String region, String baseUrl) {
+ super(Service.SAGEMAKER, region);
+ super.baseUrl(baseUrl);
+ }
+
+ /** Required for {@link Service#SAGEMAKER}. */
+ public Builder baseUrl(String baseUrl) {
+ return super.baseUrl(baseUrl);
+ }
+ }
}
}
diff --git a/src/main/java/io/weaviate/client6/v1/api/collections/generative/GoogleGenerative.java b/src/main/java/io/weaviate/client6/v1/api/collections/generative/GoogleGenerative.java
index 084bab0b2..0418e1e4d 100644
--- a/src/main/java/io/weaviate/client6/v1/api/collections/generative/GoogleGenerative.java
+++ b/src/main/java/io/weaviate/client6/v1/api/collections/generative/GoogleGenerative.java
@@ -9,6 +9,7 @@
import io.weaviate.client6.v1.api.collections.Generative;
import io.weaviate.client6.v1.api.collections.generate.DynamicProvider;
+import io.weaviate.client6.v1.api.collections.vectorizers.Text2VecGoogleVectorizer;
import io.weaviate.client6.v1.internal.ObjectBuilder;
import io.weaviate.client6.v1.internal.grpc.protocol.WeaviateProtoBase;
import io.weaviate.client6.v1.internal.grpc.protocol.WeaviateProtoGenerative;
@@ -32,12 +33,20 @@ public Object _self() {
return this;
}
- public static GoogleGenerative of(String projectId) {
- return of(projectId, ObjectBuilder.identity());
+ public static GoogleGenerative aiStudio() {
+ return aiStudio(ObjectBuilder.identity());
}
- public static GoogleGenerative of(String projectId, Function> fn) {
- return fn.apply(new Builder(projectId)).build();
+ public static GoogleGenerative aiStudio(Function> fn) {
+ return fn.apply(new AiStudioBuilder()).build();
+ }
+
+ public static GoogleGenerative vertex(String projectId) {
+ return vertex(projectId, ObjectBuilder.identity());
+ }
+
+ public static GoogleGenerative vertex(String projectId, Function> fn) {
+ return fn.apply(new VertexBuilder(projectId)).build();
}
public GoogleGenerative(Builder builder) {
@@ -51,22 +60,23 @@ public GoogleGenerative(Builder builder) {
builder.temperature);
}
- public static class Builder implements ObjectBuilder {
+ public abstract static class Builder implements ObjectBuilder {
+ private String baseUrl;
private final String projectId;
- private String baseUrl;
private String model;
private Integer maxTokens;
private Integer topK;
private Float topP;
private Float temperature;
- public Builder(String projectId) {
+ public Builder(String baseUrl, String projectId) {
this.projectId = projectId;
+ this.baseUrl = baseUrl;
}
/** Base URL of the generative provider. */
- public Builder baseUrl(String baseUrl) {
+ protected Builder baseUrl(String baseUrl) {
this.baseUrl = baseUrl;
return this;
}
@@ -110,6 +120,24 @@ public GoogleGenerative build() {
}
}
+ public static class AiStudioBuilder extends Builder {
+ public AiStudioBuilder() {
+ super(Text2VecGoogleVectorizer.AiStudioBuilder.BASE_URL, null);
+ }
+ }
+
+ public static class VertexBuilder extends Builder {
+ public VertexBuilder(String projectId) {
+ super(Text2VecGoogleVectorizer.VertexBuilder.DEFAULT_BASE_URL, projectId);
+ }
+
+ /** Base URL of the generative provider. */
+ public VertexBuilder baseUrl(String baseUrl) {
+ super.baseUrl(baseUrl);
+ return this;
+ }
+ }
+
public static record Metadata(TokenMetadata tokens, Usage usage) implements ProviderMetadata {
public static record TokenCount(Long totalBillableCharacters, Long totalTokens) {
@@ -138,9 +166,15 @@ public static record Provider(
List