Arcana.Embedder.Local (Arcana v1.3.3)
View SourceLocal embedding provider using Bumblebee and Nx.Serving.
Uses HuggingFace models locally. Default is BAAI/bge-small-en-v1.5 (384 dimensions).
Configuration
# Default model
config :arcana, embedder: :local
# Custom HuggingFace model
config :arcana, embedder: {:local, model: "BAAI/bge-large-en-v1.5"}Starting the Serving
Add Arcana.Embedder.Local.child_spec/1 to your application supervision tree:
children = [
{Arcana.Embedder.Local, model: "BAAI/bge-small-en-v1.5"},
# ... other children
]
Summary
Functions
Returns the child spec for starting the embedding serving.
Prepares text for embedding by adding model-specific prefixes.
Starts the Nx.Serving for this embedder.
Functions
Returns the child spec for starting the embedding serving.
Prepares text for embedding by adding model-specific prefixes.
E5 models require query: prefix for search queries and passage: prefix
for documents. Other models return text unchanged.
Options
:query- Text is a search query (adds "query: " prefix for E5):document- Text is document content (adds "passage: " prefix for E5)nil- Defaults to:documentfor E5 models
Examples
iex> prepare_text("hello", "intfloat/e5-small-v2", :query)
"query: hello"
iex> prepare_text("hello", "intfloat/e5-small-v2", :document)
"passage: hello"
iex> prepare_text("hello", "BAAI/bge-small-en-v1.5", :query)
"hello"
Starts the Nx.Serving for this embedder.