A behaviour that defines the dimensions of the vector, and how to generate the embedding
The dimensions of generated embeddings
Generate embeddings for the given list of strings
@type opts() :: Keyword.t()
@type vector() :: [float()]
@callback dimensions(opts()) :: pos_integer()
@callback generate([String.t()], opts()) :: {:ok, [vector()]} | {:error, term()}