LLMProxy.Storage.Adapter behaviour (llm_proxy v0.1.0)

Copy Markdown View Source

Behaviour for persistence adapters that back LLMProxy storage operations.

Summary

Callbacks

add_token(t, t, t, map)

@callback add_token(String.t(), String.t(), String.t(), map()) ::
  {:ok, term()} | {:error, term()}

check_model_access(term, t)

@callback check_model_access(term(), String.t()) :: :ok | {:error, String.t()}

check_quota(term)

@callback check_quota(term()) :: :ok | {:error, String.t()}

check_service_quota(term, t)

@callback check_service_quota(term(), String.t()) :: :ok | {:error, String.t()}

create_key(t, map)

@callback create_key(String.t(), map()) :: {:ok, term(), String.t()} | {:error, term()}

delete_key(term)

@callback delete_key(term()) :: {:ok, term()} | {:error, term()}

find_key(t)

@callback find_key(String.t()) :: term() | nil

find_trace_by_request_id(t)

@callback find_trace_by_request_id(String.t()) :: term() | nil

get_cache_ratio_in_window(t, integer)

@callback get_cache_ratio_in_window(String.t(), integer()) :: {float(), integer()}

get_daily_stats(map)

@callback get_daily_stats(map()) :: [term()]

get_message_count_in_window(t, integer)

@callback get_message_count_in_window(String.t(), integer()) :: integer()

get_messages(map)

@callback get_messages(map()) :: [term()]

get_service_usage_in_window(t, t, integer)

@callback get_service_usage_in_window(String.t(), String.t(), integer()) :: integer()

get_stats(map)

@callback get_stats(map()) :: map()

get_tokens(t, t)

@callback get_tokens(String.t(), String.t()) :: [term()]

get_trace(term)

@callback get_trace(term()) :: term() | nil

get_trace_feedback(integer)

@callback get_trace_feedback(integer()) :: [term()]

get_traces(map)

@callback get_traces(map()) :: [term()]

get_usage_in_window(t, integer)

@callback get_usage_in_window(String.t(), integer()) :: map()

list_keys(map)

@callback list_keys(map()) :: [term()]

list_tokens(map)

@callback list_tokens(map()) :: [term()]

list_trace_feedback(term)

@callback list_trace_feedback(term()) :: [term()]

log_message(map)

@callback log_message(map()) :: {:ok, term()} | {:error, term()}

record_service_usage(map)

@callback record_service_usage(map()) :: {:ok, term()} | {:error, term()}

record_trace(map)

@callback record_trace(map()) :: {:ok, term()} | {:error, term()}

record_trace_feedback(map)

@callback record_trace_feedback(map()) :: {:ok, term()} | {:error, term()}

record_usage(map)

@callback record_usage(map()) :: {:ok, term()} | {:error, term()}

remove_token(term)

@callback remove_token(term()) :: {:ok, term()} | {:error, term()}

seed_tokens_from_env(list)

@callback seed_tokens_from_env([map()]) :: :ok

set_token_enabled(term, boolean)

@callback set_token_enabled(term(), boolean()) :: {:ok, term()} | {:error, term()}

update_key_models(term, arg2)

@callback update_key_models(term(), list() | nil) :: {:ok, term()} | {:error, term()}

update_key_quota(term, map)

@callback update_key_quota(term(), map()) :: {:ok, term()} | {:error, term()}

update_key_usage(term, map)

@callback update_key_usage(term(), map()) :: term()

update_message_usage(term, map)

@callback update_message_usage(term(), map()) :: {:ok, term()} | {:error, term()}

update_token_oauth(term, map)

@callback update_token_oauth(term(), map()) :: {:ok, term()} | {:error, term()}

update_token_proxy(term, arg2)

@callback update_token_proxy(term(), String.t() | nil) :: {:ok, term()} | {:error, term()}