Update examples/server/server.cpp

This commit is contained in:
Henri Vasserman 2023-06-14 17:41:58 +03:00 committed by GitHub
parent 6075d7862d
commit 546f850796
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -693,9 +693,10 @@ static void parse_options_completion(const json & body, llama_server_context & l
llama.params.logit_bias[llama_token_eos()] = -INFINITY; llama.params.logit_bias[llama_token_eos()] = -INFINITY;
} }
if (body["logit_bias"].is_array()) { const auto & logit_bias = body.find("logit_bias");
if (logit_bias != body.end() && logit_bias->is_array()) {
const int n_vocab = llama_n_vocab(llama.ctx); const int n_vocab = llama_n_vocab(llama.ctx);
for (const auto & el : body["logit_bias"]) { for (const auto & el : *logit_bias) {
if (el.is_array() && el.size() == 2 && el[0].is_number_integer()) { if (el.is_array() && el.size() == 2 && el[0].is_number_integer()) {
llama_token tok = el[0].get<llama_token>(); llama_token tok = el[0].get<llama_token>();
if (tok >= 0 && tok < n_vocab) { if (tok >= 0 && tok < n_vocab) {
@ -710,11 +711,13 @@ static void parse_options_completion(const json & body, llama_server_context & l
} }
llama.params.antiprompt.clear(); llama.params.antiprompt.clear();
if (!body["stop"].is_null()) { const auto & stop = body.find("stop");
const auto stop = body["stop"].get<std::vector<std::string>>(); if (stop != body.end() && stop->is_array()) {
std::copy_if(stop.begin(), stop.end(), for (const auto & word : *stop) {
std::back_inserter(llama.params.antiprompt), if (!word.empty()) {
[](const std::string & str) { return !str.empty(); }); llama.params.antiprompt.push_back(word);
}
}
} }
LOG_VERBOSE("completion parameters parsed", format_generation_settings(llama)); LOG_VERBOSE("completion parameters parsed", format_generation_settings(llama));