The vectors one JEmbeddingClient.embed call returned, one per text and in the order of the texts, with the model that made them and their length.
JEmbeddings embeddings = embedder.embed(List.of("The cat sat on the mat.", "A kitten lay on the rug.")).get();
List<float[]> vectors = embeddings.vectors();
double similarity = JEmbeddings.cosineSimilarity(vectors.get(0), vectors.get(1));
Immutable: vectors returns a new list of new arrays on every call, so changing one changes nothing here - call it once and keep the list. A value: two are equal when their model, dimensions and every component of every vector are. Not Serializable.
Value parameters
dimensions
the length of every vector; for an empty batch, which calls no provider, the dimensions the model is configured with
model
the embedding model, as the provider named it in its reply, or as configured when it did not say
It is reflexive: for any instance x of type Any, x.equals(x) should return true.
It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and only if y.equals(x) returns true.
It is transitive: for any instances x, y, and z of type Any if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
If you override this method, you should verify that your implementation remains an equivalence relation. Additionally, when overriding this method it is usually necessary to override hashCode to ensure that objects which are "equal" (o1.equals(o2) returns true) hash to the same scala.Int. (o1.hashCode.equals(o2.hashCode)).
Value parameters
that
the object to compare against this object for equality.
Attributes
Returns
true if the receiver object is equivalent to the argument; false otherwise.
The default hashing algorithm is platform dependent.
Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0. However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure to verify that the behavior is consistent with the equals method.
The vectors, one per text and in the order of the texts, each dimensions() long. Core's embeddings are doubles; these are their nearest floats, the precision vector stores keep. A copy: unmodifiable, and its arrays are new.
The vectors, one per text and in the order of the texts, each dimensions() long. Core's embeddings are doubles; these are their nearest floats, the precision vector stores keep. A copy: unmodifiable, and its arrays are new.