GenAI.Model.EncoderBehaviour behaviour (GenAI Core v0.2.0)
Link to this section Summary
Callbacks
Format message for provider/model type.
Format tool for provider/model type.
Prepare endpoint and method to make inference call to
Prepare request headers
Obtain list of hyper params supported by given model including mapping and conditional rules/alterations
Prepare request body to be passed to inference call.
Set setting with dynamic model based logic.
Set setting as_setting with dynamic model based logic.
Link to this section Types
completion()
@type completion() :: any()
context()
@type context() :: any()
headers()
@type headers() :: list()
json()
@type json() :: any()
message()
@type message() :: any()
messages()
@type messages() :: list()
method()
@type method() :: :get | :post | :put | :delete | :option | :patch
model()
@type model() :: any()
options()
@type options() :: any()
request_body()
@type request_body() :: any()
session()
@type session() :: any()
settings()
@type settings() :: map()
tool()
@type tool() :: any()
tools()
@type tools() :: list() | nil
uri()
@type uri() :: url()
url()
@type url() :: String.t()
Link to this section Callbacks
completion_response(json, model, settings, session, context, options)
default_hyper_params(model, settings, session, context, options)
encode_message(message, model, session, context, options)
@callback encode_message(message(), model(), session(), context(), options()) :: {:ok, {message(), session()}} | {:error, term()}
Format message for provider/model type.
encode_tool(tool, model, session, context, options)
@callback encode_tool(tool(), model(), session(), context(), options()) :: {:ok, {tool(), session()}} | {:error, term()}
Format tool for provider/model type.
endpoint(model, settings, session, context, options)
@callback endpoint(model(), settings(), session(), context(), options()) :: {:ok, {method(), uri()}} | {:ok, {{method(), uri()}, session()}} | {:error, term()}
Prepare endpoint and method to make inference call to
headers(model, settings, session, context, options)
@callback headers(model(), settings(), session(), context(), options()) :: {:ok, headers()} | {:ok, {headers(), session()}} | {:error, term()}
Prepare request headers
hyper_params(model, settings, session, context, options)
@callback hyper_params(model(), settings(), session(), context(), options()) :: {:ok, {settings(), session()}} | {:error, term()}
Obtain list of hyper params supported by given model including mapping and conditional rules/alterations
normalize_messages(messages, model, session, context, options)
request_body(model, messages, tools, settings, session, context, options)
@callback request_body( model(), messages(), tools(), settings(), session(), context(), options() ) :: {:ok, headers()} | {:ok, {headers(), session()}} | {:error, term()}
Prepare request body to be passed to inference call.
with_dynamic_setting(body, setting, model, settings)
@callback with_dynamic_setting( body :: term(), setting :: term(), model :: term(), settings :: term() ) :: term()
Set setting with dynamic model based logic.
with_dynamic_setting(body, setting, model, settings, default)
with_dynamic_setting_as(body, as_setting, setting, model, settings)
@callback with_dynamic_setting_as( body :: term(), as_setting :: term(), setting :: term(), model :: term(), settings :: term() ) :: term()
Set setting as_setting with dynamic model based logic.