diff --git a/examples/server/server.cpp b/examples/server/server.cpp index fc24f9c13..04a6af47a 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -655,6 +655,16 @@ bool parse_options_completion(json body, llama_server_context& llama, Response & } else { llama.params.logit_bias.erase(llama_token_eos()); } + if (body["logit_bias"].is_array()) { + int n_vocab = llama_n_vocab(llama.ctx); + for (const auto &el : body["logit_bias"]) { + if (el.is_array() && el.size() == 2 && el[0].is_number_integer() && el[1].is_number_float()) { + llama_token tok = el[0].get(); + if (tok < 0 || tok >= n_vocab) continue; + llama.params.logit_bias[tok] = el[1].get(); + } + } + } if (!body["prompt"].is_null()) { llama.params.prompt = body["prompt"].get(); } else {