lib/genai_providers/groq/encoder.ex

defmodule GenAI.Provider.Groq.Encoder do
  @base_url "https://api.groq.com/openai"
  use GenAI.Model.EncoderBehaviour

  def default_hyper_params(model, settings, session, context, options)

  def default_hyper_params(_model, _settings, _session, _context, _options) do
    x = [
      hyper_param(name: :frequency_penalty),
      hyper_param(name: :logit_bias),
      hyper_param(name: :logprobs),
      hyper_param(name: :max_tokens, type: :integer),
      hyper_param(name: :max_completion_tokens, type: :integer),
      hyper_param(name: :metadata),
      hyper_param(name: :completion_choices, as: :n),
      hyper_param(name: :parallel_tool_calls, type: :boolean),
      hyper_param(name: :presence_penalty),
      hyper_param(name: :reasoning_format),
      hyper_param(name: :response_format),
      hyper_param(name: :seed),
      hyper_param(name: :service_tier),
      hyper_param(name: :stop_sequence, as: :stop, type: :list),
      hyper_param(name: :store),
      hyper_param(name: :stream, type: :boolean),
      hyper_param(name: :stream_options),
      hyper_param(name: :temperature),
      hyper_param(
        name: :tool_choice,
        type: :string,
        sentinel: fn _, body, _, _ -> body[:tools] && true end
      ),
      hyper_param(name: :top_logprobs),
      hyper_param(name: :top_p),
      hyper_param(name: :user)
    ]

    {:ok, x}
  end
end