Current section
Files
Jump to
Current section
Files
src/glean@models@qwen.erl
-module(glean@models@qwen).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glean/models/qwen.gleam").
-export([max_output_tokens/2, temperature/2, top_p/2, top_k/2, seed/2, stop_sequences/2, build/1, qwen3_5_plus/1, qwen3_5_flash/1, qwen3_max/1, qwen3_plus/1, qwen_plus/1, qwen_max/1, qwen_turbo/1, qwen_flash/1, qwq_plus/1, qwen3_coder/1]).
-export_type([qwen/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Alibaba Qwen models.\n"
"\n"
" Covers Qwen3.5, Qwen3, Qwen, QwQ, and coder variants.\n"
" Supported parameters: max_output_tokens, temperature, top_p, top_k,\n"
" seed, stop_sequences.\n"
"\n"
" NO penalty parameters.\n"
).
-opaque qwen() :: {qwen,
binary(),
binary(),
gleam@option:option(integer()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(integer()),
gleam@option:option(integer()),
gleam@option:option(list(binary()))}.
-file("src/glean/models/qwen.gleam", 89).
?DOC(" Set the maximum number of output tokens.\n").
-spec max_output_tokens(qwen(), integer()) -> qwen().
max_output_tokens(M, N) ->
{qwen,
erlang:element(2, M),
erlang:element(3, M),
{some, N},
erlang:element(5, M),
erlang:element(6, M),
erlang:element(7, M),
erlang:element(8, M),
erlang:element(9, M)}.
-file("src/glean/models/qwen.gleam", 94).
?DOC(" Set the sampling temperature (0–2).\n").
-spec temperature(qwen(), float()) -> qwen().
temperature(M, T) ->
{qwen,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
{some, T},
erlang:element(6, M),
erlang:element(7, M),
erlang:element(8, M),
erlang:element(9, M)}.
-file("src/glean/models/qwen.gleam", 99).
?DOC(" Set the top-p (nucleus sampling) value.\n").
-spec top_p(qwen(), float()) -> qwen().
top_p(M, P) ->
{qwen,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
erlang:element(5, M),
{some, P},
erlang:element(7, M),
erlang:element(8, M),
erlang:element(9, M)}.
-file("src/glean/models/qwen.gleam", 104).
?DOC(" Set the top-k value.\n").
-spec top_k(qwen(), integer()) -> qwen().
top_k(M, K) ->
{qwen,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
erlang:element(5, M),
erlang:element(6, M),
{some, K},
erlang:element(8, M),
erlang:element(9, M)}.
-file("src/glean/models/qwen.gleam", 109).
?DOC(" Set the random seed for deterministic generation.\n").
-spec seed(qwen(), integer()) -> qwen().
seed(M, S) ->
{qwen,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
erlang:element(5, M),
erlang:element(6, M),
erlang:element(7, M),
{some, S},
erlang:element(9, M)}.
-file("src/glean/models/qwen.gleam", 115).
?DOC(
" Set stop sequences — the model will stop generating when it encounters\n"
" any of these strings.\n"
).
-spec stop_sequences(qwen(), list(binary())) -> qwen().
stop_sequences(M, Stops) ->
{qwen,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
erlang:element(5, M),
erlang:element(6, M),
erlang:element(7, M),
erlang:element(8, M),
{some, Stops}}.
-file("src/glean/models/qwen.gleam", 124).
?DOC(" Build a `Model` from this Qwen configuration.\n").
-spec build(qwen()) -> glean@model:model().
build(M) ->
Provider = glean@providers@qwen:new(
erlang:element(2, M),
erlang:element(3, M)
),
Settings = {model_settings,
erlang:element(4, M),
erlang:element(5, M),
erlang:element(6, M),
erlang:element(7, M),
erlang:element(9, M),
erlang:element(8, M),
none,
none},
{model, Provider, Settings}.
-file("src/glean/models/qwen.gleam", 146).
-spec new_qwen(binary(), binary()) -> qwen().
new_qwen(Api_key, Model_id) ->
{qwen, Api_key, Model_id, none, none, none, none, none, none}.
-file("src/glean/models/qwen.gleam", 35).
?DOC(" Qwen3.5 Plus\n").
-spec qwen3_5_plus(binary()) -> qwen().
qwen3_5_plus(Key) ->
new_qwen(Key, <<"qwen3.5-plus"/utf8>>).
-file("src/glean/models/qwen.gleam", 40).
?DOC(" Qwen3.5 Flash\n").
-spec qwen3_5_flash(binary()) -> qwen().
qwen3_5_flash(Key) ->
new_qwen(Key, <<"qwen3.5-flash"/utf8>>).
-file("src/glean/models/qwen.gleam", 45).
?DOC(" Qwen3 Max\n").
-spec qwen3_max(binary()) -> qwen().
qwen3_max(Key) ->
new_qwen(Key, <<"qwen3-max"/utf8>>).
-file("src/glean/models/qwen.gleam", 50).
?DOC(" Qwen3 Plus\n").
-spec qwen3_plus(binary()) -> qwen().
qwen3_plus(Key) ->
new_qwen(Key, <<"qwen3-plus"/utf8>>).
-file("src/glean/models/qwen.gleam", 55).
?DOC(" Qwen Plus\n").
-spec qwen_plus(binary()) -> qwen().
qwen_plus(Key) ->
new_qwen(Key, <<"qwen-plus"/utf8>>).
-file("src/glean/models/qwen.gleam", 60).
?DOC(" Qwen Max\n").
-spec qwen_max(binary()) -> qwen().
qwen_max(Key) ->
new_qwen(Key, <<"qwen-max"/utf8>>).
-file("src/glean/models/qwen.gleam", 65).
?DOC(" Qwen Turbo\n").
-spec qwen_turbo(binary()) -> qwen().
qwen_turbo(Key) ->
new_qwen(Key, <<"qwen-turbo"/utf8>>).
-file("src/glean/models/qwen.gleam", 70).
?DOC(" Qwen Flash\n").
-spec qwen_flash(binary()) -> qwen().
qwen_flash(Key) ->
new_qwen(Key, <<"qwen-flash"/utf8>>).
-file("src/glean/models/qwen.gleam", 75).
?DOC(" QwQ Plus\n").
-spec qwq_plus(binary()) -> qwen().
qwq_plus(Key) ->
new_qwen(Key, <<"qwq-plus"/utf8>>).
-file("src/glean/models/qwen.gleam", 80).
?DOC(" Qwen3 Coder\n").
-spec qwen3_coder(binary()) -> qwen().
qwen3_coder(Key) ->
new_qwen(Key, <<"qwen3-coder"/utf8>>).