Current section
Files
Jump to
Current section
Files
src/glean@models@deepseek.erl
-module(glean@models@deepseek).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/glean/models/deepseek.gleam").
-export([max_output_tokens/2, temperature/2, top_p/2, stop_sequences/2, build/1, chat/1, v3_1/1]).
-export_type([deepseek_chat/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(
" DeepSeek chat models.\n"
"\n"
" Covers DeepSeek-Chat and DeepSeek-V3.1 models.\n"
" Supported parameters: max_output_tokens, temperature (0–2), top_p,\n"
" stop_sequences.\n"
"\n"
" For reasoning models (deepseek-reasoner, deepseek-r1) see\n"
" `glean/models/deepseek_reasoning`.\n"
).
-opaque deepseek_chat() :: {deepseek_chat,
binary(),
binary(),
gleam@option:option(integer()),
gleam@option:option(float()),
gleam@option:option(float()),
gleam@option:option(list(binary()))}.
-file("src/glean/models/deepseek.gleam", 48).
?DOC(" Set the maximum number of output tokens.\n").
-spec max_output_tokens(deepseek_chat(), integer()) -> deepseek_chat().
max_output_tokens(M, N) ->
{deepseek_chat,
erlang:element(2, M),
erlang:element(3, M),
{some, N},
erlang:element(5, M),
erlang:element(6, M),
erlang:element(7, M)}.
-file("src/glean/models/deepseek.gleam", 53).
?DOC(" Set the sampling temperature (0–2).\n").
-spec temperature(deepseek_chat(), float()) -> deepseek_chat().
temperature(M, T) ->
{deepseek_chat,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
{some, T},
erlang:element(6, M),
erlang:element(7, M)}.
-file("src/glean/models/deepseek.gleam", 58).
?DOC(" Set the top-p (nucleus sampling) value.\n").
-spec top_p(deepseek_chat(), float()) -> deepseek_chat().
top_p(M, P) ->
{deepseek_chat,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
erlang:element(5, M),
{some, P},
erlang:element(7, M)}.
-file("src/glean/models/deepseek.gleam", 64).
?DOC(
" Set stop sequences — the model will stop generating when it encounters\n"
" any of these strings.\n"
).
-spec stop_sequences(deepseek_chat(), list(binary())) -> deepseek_chat().
stop_sequences(M, Stops) ->
{deepseek_chat,
erlang:element(2, M),
erlang:element(3, M),
erlang:element(4, M),
erlang:element(5, M),
erlang:element(6, M),
{some, Stops}}.
-file("src/glean/models/deepseek.gleam", 73).
?DOC(" Build a `Model` from this DeepSeek Chat configuration.\n").
-spec build(deepseek_chat()) -> glean@model:model().
build(M) ->
Provider = glean@providers@deepseek:new(
erlang:element(2, M),
erlang:element(3, M)
),
Settings = {model_settings,
erlang:element(4, M),
erlang:element(5, M),
erlang:element(6, M),
none,
erlang:element(7, M),
none,
none,
none},
{model, Provider, Settings}.
-file("src/glean/models/deepseek.gleam", 96).
-spec new_deepseek_chat(binary(), binary()) -> deepseek_chat().
new_deepseek_chat(Api_key, Model_id) ->
{deepseek_chat, Api_key, Model_id, none, none, none, none}.
-file("src/glean/models/deepseek.gleam", 34).
?DOC(" DeepSeek Chat\n").
-spec chat(binary()) -> deepseek_chat().
chat(Key) ->
new_deepseek_chat(Key, <<"deepseek-chat"/utf8>>).
-file("src/glean/models/deepseek.gleam", 39).
?DOC(" DeepSeek V3.1 Terminus\n").
-spec v3_1(binary()) -> deepseek_chat().
v3_1(Key) ->
new_deepseek_chat(Key, <<"deepseek-v3.1-terminus"/utf8>>).