Packages

A local-first, pluggable, high-level memory system for LLMs and applications — unifying structured facts, temporal events, and semantic retrieval.

Current section

Files

Jump to
ex_memory lib ex_memory embedder.ex
Raw

lib/ex_memory/embedder.ex

defmodule ExMemory.Embedder do
@moduledoc """
Behaviour for text-to-vector embedding.
An embedder converts text into a fixed-length float array.
Implementations wrap external embedding services or local models.
"""
@type state :: term()
@callback init(opts :: keyword()) :: {:ok, state()} | {:error, term()}
@callback embed(state(), text :: String.t()) :: {:ok, [float()]} | {:error, term()}
@callback embed_batch(state(), texts :: [String.t()]) :: {:ok, [[float()]]} | {:error, term()}
@callback dimensions(state()) :: pos_integer()
end