diff --git a/gradle.properties b/gradle.properties index 74702135..f9678f8b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ qdrantProtosVersion=v1.14.0 # The version of qdrant docker image to run integration tests against -qdrantVersion=v1.14.0 +qdrantVersion=v1.14.1 # The version of the client to generate -packageVersion=1.14.0 +packageVersion=1.14.1 diff --git a/src/main/java/io/qdrant/client/QueryFactory.java b/src/main/java/io/qdrant/client/QueryFactory.java index f99c8ee9..b2b8fc0f 100644 --- a/src/main/java/io/qdrant/client/QueryFactory.java +++ b/src/main/java/io/qdrant/client/QueryFactory.java @@ -5,8 +5,10 @@ import io.qdrant.client.grpc.Points.ContextInput; import io.qdrant.client.grpc.Points.DiscoverInput; +import io.qdrant.client.grpc.Points.Document; import io.qdrant.client.grpc.Points.Formula; import io.qdrant.client.grpc.Points.Fusion; +import io.qdrant.client.grpc.Points.InferenceObject; import io.qdrant.client.grpc.Points.OrderBy; import io.qdrant.client.grpc.Points.PointId; import io.qdrant.client.grpc.Points.Query; @@ -157,7 +159,7 @@ public static Query nearest(long id) { /** * Creates a {@link Query} from a {@link UUID} * - * @param id The pint id + * @param id The point id * @return a new instance of {@link Query} */ public static Query nearest(UUID id) { @@ -167,13 +169,43 @@ public static Query nearest(UUID id) { /** * Creates a {@link Query} from a {@link PointId} * - * @param id The pint id + * @param id The point id * @return a new instance of {@link Query} */ public static Query nearest(PointId id) { return Query.newBuilder().setNearest(vectorInput(id)).build(); } + /** + * Creates a {@link Query} from a {@link Document} + * + * @param document The document to vectorize and query against. + * @return a new instance of {@link Query} + */ + public static Query nearest(Document document) { + return Query.newBuilder().setNearest(vectorInput(document)).build(); + } + + /** + * Creates a {@link Query} from an image for cloud inference. + * + * @param image The image to vectorize and query against. + * @return a new instance of {@link Query} + */ + public static Query nearest(io.qdrant.client.grpc.Points.Image image) { + return Query.newBuilder().setNearest(vectorInput(image)).build(); + } + + /** + * Creates a {@link Query} from an {@link InferenceObject} + * + * @param object The inference object to vectorize and query against. + * @return a new instance of {@link Query} + */ + public static Query nearest(InferenceObject object) { + return Query.newBuilder().setNearest(vectorInput(object)).build(); + } + /** * Creates a {@link Query} from a nested list of floats representing a multi vector * diff --git a/src/main/java/io/qdrant/client/VectorFactory.java b/src/main/java/io/qdrant/client/VectorFactory.java index 06ea0958..dc5607f0 100644 --- a/src/main/java/io/qdrant/client/VectorFactory.java +++ b/src/main/java/io/qdrant/client/VectorFactory.java @@ -1,6 +1,9 @@ package io.qdrant.client; import com.google.common.primitives.Floats; +import io.qdrant.client.grpc.Points.Document; +import io.qdrant.client.grpc.Points.Image; +import io.qdrant.client.grpc.Points.InferenceObject; import io.qdrant.client.grpc.Points.SparseIndices; import io.qdrant.client.grpc.Points.Vector; import java.util.ArrayList; @@ -45,6 +48,36 @@ public static Vector vector(List vector, List indices) { .build(); } + /** + * Creates a vector from a document for cloud inference. + * + * @param document The document to vectorize. + * @return A new instance of {@link Vector} + */ + public static Vector vector(Document document) { + return Vector.newBuilder().setDocument(document).build(); + } + + /** + * Creates a vector from an image for cloud inference. + * + * @param image The image to vectorize. + * @return A new instance of {@link Vector} + */ + public static Vector vector(Image image) { + return Vector.newBuilder().setImage(image).build(); + } + + /** + * Creates a vector from an inference object. + * + * @param object The inference object to vectorize. + * @return A new instance of {@link Vector} + */ + public static Vector vector(InferenceObject object) { + return Vector.newBuilder().setObject(object).build(); + } + /** * Creates a multi vector from a nested list of floats * diff --git a/src/main/java/io/qdrant/client/VectorInputFactory.java b/src/main/java/io/qdrant/client/VectorInputFactory.java index e7696fda..30d20ce6 100644 --- a/src/main/java/io/qdrant/client/VectorInputFactory.java +++ b/src/main/java/io/qdrant/client/VectorInputFactory.java @@ -4,6 +4,9 @@ import com.google.common.primitives.Floats; import io.qdrant.client.grpc.Points.DenseVector; +import io.qdrant.client.grpc.Points.Document; +import io.qdrant.client.grpc.Points.Image; +import io.qdrant.client.grpc.Points.InferenceObject; import io.qdrant.client.grpc.Points.MultiDenseVector; import io.qdrant.client.grpc.Points.PointId; import io.qdrant.client.grpc.Points.SparseVector; @@ -114,33 +117,33 @@ public static VectorInput vectorInput(PointId id) { return VectorInput.newBuilder().setId(id).build(); } - // /** - // * Creates a {@link VectorInput} from a {@link Document} - // * - // * @param document An instance of {@link Document} - // * @return a new instance of {@link VectorInput} - // */ - // public static VectorInput vectorInput(Document document) { - // return VectorInput.newBuilder().setDocument(document).build(); - // } + /** + * Creates a {@link VectorInput} from a {@link Document} + * + * @param document An instance of {@link Document} + * @return a new instance of {@link VectorInput} + */ + public static VectorInput vectorInput(Document document) { + return VectorInput.newBuilder().setDocument(document).build(); + } - // /** - // * Creates a {@link VectorInput} from a an {@link Image} - // * - // * @param image An instance of {@link Image} - // * @return a new instance of {@link VectorInput} - // */ - // public static VectorInput vectorInput(Image image) { - // return VectorInput.newBuilder().setImage(image).build(); - // } + /** + * Creates a {@link VectorInput} from a an {@link Image} + * + * @param image An instance of {@link Image} + * @return a new instance of {@link VectorInput} + */ + public static VectorInput vectorInput(Image image) { + return VectorInput.newBuilder().setImage(image).build(); + } - // /** - // * Creates a {@link VectorInput} from a {@link InferenceObject} - // * - // * @param object An instance of {@link InferenceObject} - // * @return a new instance of {@link VectorInput} - // */ - // public static VectorInput vectorInput(InferenceObject object) { - // return VectorInput.newBuilder().setObject(object).build(); - // } + /** + * Creates a {@link VectorInput} from a {@link InferenceObject} + * + * @param object An instance of {@link InferenceObject} + * @return a new instance of {@link VectorInput} + */ + public static VectorInput vectorInput(InferenceObject object) { + return VectorInput.newBuilder().setObject(object).build(); + } } diff --git a/src/main/java/io/qdrant/client/VectorsFactory.java b/src/main/java/io/qdrant/client/VectorsFactory.java index 70d09223..9fce93f3 100644 --- a/src/main/java/io/qdrant/client/VectorsFactory.java +++ b/src/main/java/io/qdrant/client/VectorsFactory.java @@ -2,6 +2,9 @@ import static io.qdrant.client.VectorFactory.vector; +import io.qdrant.client.grpc.Points.Document; +import io.qdrant.client.grpc.Points.Image; +import io.qdrant.client.grpc.Points.InferenceObject; import io.qdrant.client.grpc.Points.NamedVectors; import io.qdrant.client.grpc.Points.Vector; import io.qdrant.client.grpc.Points.Vectors; @@ -51,4 +54,34 @@ public static Vectors vectors(float... values) { public static Vectors vectors(Vector vector) { return Vectors.newBuilder().setVector(vector).build(); } + + /** + * Creates an instance of {@link Vectors} from a document for cloud inference. + * + * @param document An instance of {@link Document} + * @return a new instance of {@link Vectors} + */ + public static Vectors vectors(Document document) { + return Vectors.newBuilder().setVector(vector(document)).build(); + } + + /** + * Creates an instance of {@link Vectors} from an image for cloud inference. + * + * @param image An instance of {@link Image} + * @return a new instance of {@link Vectors} + */ + public static Vectors vectors(Image image) { + return Vectors.newBuilder().setVector(vector(image)).build(); + } + + /** + * Creates an instance of {@link Vectors} from an inference object. + * + * @param object The inference object to vectorize. + * @return A new instance of {@link Vectors} + */ + public static Vectors vectors(InferenceObject object) { + return Vectors.newBuilder().setVector(vector(object)).build(); + } }