Current section

Files

Jump to
liter_llm lib liter_llm model_info.ex
Raw

lib/liter_llm/model_info.ex

# This file is auto-generated by alef — DO NOT EDIT.
# alef:hash:c7947a41084f71e69944233535fbeda5cd13b37144078f1895b6b57a7802d3fe
# To regenerate: alef generate
# To verify freshness: alef verify --exit-code
defmodule LiterLlm.ModelInfo do
@moduledoc """
Public, FFI-friendly snapshot of a model's pricing and capability
metadata, projected from [`ModelPricing`].
Unlike [`ModelPricing`] (which is excluded from binding generation),
`ModelInfo` is an owned plain-data DTO safe to hand across the FFI
boundary — see [`model_info`].
"""
@typedoc "Public, FFI-friendly snapshot of a model's pricing and capability metadata, projected from [`ModelPricing`]."
@type t :: %__MODULE__{
input_cost_per_token: float(),
output_cost_per_token: float(),
cache_read_input_token_cost: float() | nil,
cache_creation_input_token_cost: float() | nil,
input_cost_per_audio_token: float() | nil,
output_cost_per_audio_token: float() | nil,
output_cost_per_reasoning_token: float() | nil,
max_tokens: non_neg_integer() | nil,
max_input_tokens: non_neg_integer() | nil,
max_output_tokens: non_neg_integer() | nil,
mode: String.t() | nil,
supports_vision: boolean() | nil,
supports_function_calling: boolean() | nil,
supports_reasoning: boolean() | nil,
supports_structured_output: boolean() | nil,
supports_audio_input: boolean() | nil,
supports_audio_output: boolean() | nil,
supports_prompt_caching: boolean() | nil,
tiers: [LiterLlm.ModelTier.t()]
}
defstruct input_cost_per_token: 0.0,
output_cost_per_token: 0.0,
cache_read_input_token_cost: nil,
cache_creation_input_token_cost: nil,
input_cost_per_audio_token: nil,
output_cost_per_audio_token: nil,
output_cost_per_reasoning_token: nil,
max_tokens: nil,
max_input_tokens: nil,
max_output_tokens: nil,
mode: nil,
supports_vision: nil,
supports_function_calling: nil,
supports_reasoning: nil,
supports_structured_output: nil,
supports_audio_input: nil,
supports_audio_output: nil,
supports_prompt_caching: nil,
tiers: []
defimpl Jason.Encoder do
@doc false
def encode(value, opts) do
value
|> Map.from_struct()
|> Enum.reject(fn {_k, v} -> v == nil end)
|> Enum.into(%{})
|> Jason.Encoder.encode(opts)
end
end
end