diff options
author | firecoperana <xuqiaowei1124@gmail.com> | 2025-06-12 00:19:26 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-06-12 08:19:26 +0300 |
commit | 7b1a3eece7e33ce197324f44e839dec430162108 (patch) | |
tree | 77762570e9f34119063de54c6c9af09c9e917611 /examples/server/server.cpp | |
parent | 4fc3cb4a4709e747984f7b8c9097d9b997d949b5 (diff) |
Add top n sigma sampler and other webui fix (#512)
Co-authored-by: firecoperana <firecoperana>
Diffstat (limited to 'examples/server/server.cpp')
-rw-r--r-- | examples/server/server.cpp | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/examples/server/server.cpp b/examples/server/server.cpp index 9e80bd7e..f9991035 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -970,6 +970,9 @@ struct server_context { slot.sparams.temp = json_value(data, "temperature", default_sparams.temp); slot.sparams.dynatemp_range = json_value(data, "dynatemp_range", default_sparams.dynatemp_range); slot.sparams.dynatemp_exponent = json_value(data, "dynatemp_exponent", default_sparams.dynatemp_exponent); + slot.sparams.xtc_probability = json_value(data, "xtc_probability", default_sparams.xtc_probability); + slot.sparams.xtc_threshold = json_value(data, "xtc_threshold", default_sparams.xtc_threshold); + slot.sparams.top_n_sigma = json_value(data, "top_n_sigma", default_sparams.top_n_sigma); slot.sparams.penalty_last_n = json_value(data, "repeat_last_n", default_sparams.penalty_last_n); slot.sparams.penalty_repeat = json_value(data, "repeat_penalty", default_sparams.penalty_repeat); slot.sparams.penalty_freq = json_value(data, "frequency_penalty", default_sparams.penalty_freq); @@ -1135,17 +1138,17 @@ struct server_context { } { - const auto & samplers_sequence = data.find("samplers"); - if (samplers_sequence != data.end() && samplers_sequence->is_array()) { - std::vector<std::string> sampler_names; - for (const auto & sampler_name : *samplers_sequence) { - if (sampler_name.is_string()) { - sampler_names.emplace_back(sampler_name); - } + const auto samplers = data.find("samplers"); + if (samplers != data.end()) { + if (samplers->is_array()) { + slot.sparams.samplers_sequence = llama_sampling_types_from_names(*samplers, false); + } + else if (samplers->is_string()) { + slot.sparams.samplers_sequence = llama_sampling_types_from_chars(samplers->get<std::string>()); + } + else { + slot.sparams.samplers_sequence = default_sparams.samplers_sequence; } - slot.sparams.samplers_sequence = llama_sampling_types_from_names(sampler_names, false); - } else { - slot.sparams.samplers_sequence = default_sparams.samplers_sequence; } } |