View Source HyperLLM.Provider behaviour (hyper_llm v0.6.0)

Defines the behaviour that all provider modules must implement.

Summary

Types

completion_config()

@type completion_config() :: [{:receive_timeout, integer()}]

completion_params()

@type completion_params() :: %{
  messages: [%{role: String.t(), content: String.t()}],
  model: String.t(),
  audio: map(),
  frequency_penalty: number(),
  logit_bias: map(),
  logprobs: boolean(),
  max_completion_tokens: integer(),
  metadata: map(),
  modalities: [String.t()],
  n: integer(),
  parallel_tool_calls: boolean(),
  prediction: map(),
  presence_penalty: number(),
  reasoning_effort: String.t(),
  response_format: map(),
  seed: integer(),
  service_tier: String.t(),
  stop: String.t() | [String.t()],
  store: boolean(),
  stream: boolean(),
  stream_options: map(),
  temperature: number(),
  tool_choice: String.t() | map(),
  tools: [map()],
  top_logprobs: integer(),
  top_p: number(),
  user: String.t(),
  function_call: String.t() | map(),
  functions: [map()],
  max_tokens: integer()
}

Callbacks

completion(params, config)

@callback completion(params :: map(), config :: keyword()) ::
  {:ok, map()} | {:error, String.t()}

model_supported?(t)

@callback model_supported?(String.t()) :: boolean()

Functions

rename_key(map, old_key, new_key)

rename_key(map, old_key, new_key, transform)