Packages

Gleam library for interacting with OpenAI-compatible APIs.

Current section

Files

Jump to
gllm src gllm@types@message.erl
Raw

src/gllm@types@message.erl

-module(gllm@types@message).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/gllm/types/message.gleam").
-export([message_decoder/0]).
-export_type([message/0]).
-type message() :: {message,
binary(),
binary(),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(list(gllm@types@reasoning_detail:reasoning_detail()))}.
-file("src/gllm/types/message.gleam", 15).
-spec message_decoder() -> gleam@dynamic@decode:decoder(message()).
message_decoder() ->
gleam@dynamic@decode:field(
<<"role"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Role) ->
gleam@dynamic@decode:field(
<<"content"/utf8>>,
{decoder, fun gleam@dynamic@decode:decode_string/1},
fun(Content) ->
gleam@dynamic@decode:optional_field(
<<"refusal"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder, fun gleam@dynamic@decode:decode_string/1}
),
fun(Refusal) ->
gleam@dynamic@decode:optional_field(
<<"reasoning"/utf8>>,
none,
gleam@dynamic@decode:optional(
{decoder,
fun gleam@dynamic@decode:decode_string/1}
),
fun(Reasoning) ->
gleam@dynamic@decode:optional_field(
<<"reasoning_details"/utf8>>,
none,
gleam@dynamic@decode:optional(
gleam@dynamic@decode:list(
gllm@types@reasoning_detail:reasoning_detail_decoder(
)
)
),
fun(Reasoning_details) ->
gleam@dynamic@decode:success(
{message,
Role,
Content,
Refusal,
Reasoning,
Reasoning_details}
)
end
)
end
)
end
)
end
)
end
).