Behaviour for classifier embedding adapters.
Implement this behaviour when the default ExFastembed adapter is not the
right boundary for the application.
defmodule MyApp.Embedding do
@behaviour Spectre.Classifier.Embedding
@impl Spectre.Classifier.Embedding
def load(_model, _opts), do: {:ok, 384}
@impl Spectre.Classifier.Embedding
def embed(text, _opts), do: MyApp.EmbeddingClient.embed(text)
end
Summary
Types
@type vector() :: [float()]
Callbacks
@callback download(model :: String.t(), opts :: keyword()) :: {:ok, pos_integer()} | {:error, term()}
@callback load(model :: String.t(), opts :: keyword()) :: {:ok, pos_integer()} | {:error, term()}