Current section
Files
Jump to
Current section
Files
src/gllm@types@usage.erl
-module(gllm@types@usage).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gllm/types/usage.gleam").
-export([completion_tokens_details_decoder/0, usage_decoder/0]).
-export_type([completion_tokens_details/0, usage/0]).
-type completion_tokens_details() :: {completion_tokens_details, integer()}.
-type usage() :: {usage,
integer(),
integer(),
integer(),
gleam@option:option(completion_tokens_details())}.
-file("src/gllm/types/usage.gleam", 17).
-spec completion_tokens_details_decoder() -> gleam@dynamic@decode:decoder(completion_tokens_details()).
completion_tokens_details_decoder() ->
gleam@dynamic@decode:field(
<<"reasoning_tokens"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_int/1},
fun(Reasoning_tokens) ->
gleam@dynamic@decode:success(
{completion_tokens_details, Reasoning_tokens}
)
end
).
-file("src/gllm/types/usage.gleam", 22).
-spec usage_decoder() -> gleam@dynamic@decode:decoder(usage()).
usage_decoder() ->
gleam@dynamic@decode:field(
<<"prompt_tokens"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_int/1},
fun(Prompt_tokens) ->
gleam@dynamic@decode:field(
<<"completion_tokens"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_int/1},
fun(Completion_tokens) ->
gleam@dynamic@decode:field(
<<"total_tokens"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_int/1},
fun(Total_tokens) ->
gleam@dynamic@decode:optional_field(
<<"completion_tokens_details"/utf8>>,
none,
gleam@dynamic@decode:optional(
completion_tokens_details_decoder()
),
fun(Completion_tokens_details) ->
gleam@dynamic@decode:success(
{usage,
Prompt_tokens,
Completion_tokens,
Total_tokens,
Completion_tokens_details}
)
end
)
end
)
end
)
end
).