-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>>).