Behaviour for vector-store backends used by GEPA.Adapters.GenericRAG.
Documents are maps with at least :content/"content" and optional
:metadata/"metadata". Search callbacks may return either a list directly
or {:ok, list}/{:error, reason} when the backend performs external IO.
Summary
Functions
Perform a hybrid search. Defaults to similarity search.
Types
Callbacks
@callback embedding_dimension(term()) :: pos_integer() | nil
@callback similarity_search(term(), String.t(), pos_integer(), filters()) :: search_result()
@callback vector_search(term(), [number()], pos_integer(), filters()) :: search_result()
Functions
@spec embedding_dimension(term()) :: pos_integer() | nil
@spec hybrid_search(term(), String.t(), pos_integer(), float()) :: search_result()
Perform a hybrid search. Defaults to similarity search.
@spec similarity_search(term(), String.t(), pos_integer(), filters()) :: search_result()
@spec vector_search(term(), [number()], pos_integer(), filters()) :: search_result()