adk_memory_vector_adapter behaviour (erlang_adk v0.10.0)

View Source

Contract for scoped vector memory indexes.

Summary

Types

document/0

-type document() :: #{id := binary(), content := binary(), vector := [number()], metadata => map()}.

hit/0

-type hit() ::
          #{id := binary(),
            content := binary(),
            metadata := map(),
            score := float(),
            score_type := cosine_similarity}.

Callbacks

capabilities/1

-callback capabilities(Handle :: term()) -> map() | {ok, map()}.

delete_scope/2

-callback delete_scope(Handle :: term(), Scope :: adk_memory_service:scope()) ->
                          {ok, non_neg_integer()} | {error, term()}.

upsert/4

-callback upsert(Handle :: term(),
                 Scope :: adk_memory_service:scope(),
                 Documents :: [document()],
                 Options :: map()) ->
                    {ok, map()} | {error, term()}.

vector_search/4

-callback vector_search(Handle :: term(),
                        Scope :: adk_memory_service:scope(),
                        Vector :: [number()],
                        Options :: map()) ->
                           {ok, [hit()]} | {error, term()}.