defmodule Vettore.Embedding do @moduledoc """ Represents a single embedding entry for insertion into a collection. ## Fields * `:id` - Stable identifier for this embedding. Preferred by the collection API. * `:value` - A string or content identifier for this embedding can be Id, or Text (e.g. "this is text data"). * `:vector` - A list of floating‑point numbers representing the embedding (e.g. `[1.0, 2.0, 3.0]`). * `:vectors` - Optional token/document vectors for late interaction search. * `:binary_vector` - Packed sign-bit vector used for binary quantized candidate search. * `:metadata` - (Optional) A map with any additional information you want to store (e.g. `%{"info" => "my note"}`). """ defstruct [:id, :value, :vector, :vectors, :binary_vector, :metadata] @type t :: %__MODULE__{ id: String.t() | nil, value: String.t() | nil, vector: [float()] | nil, vectors: [[float()]] | nil, binary_vector: [non_neg_integer()] | nil, metadata: map() | nil } end