avoid to get prompt in infill mode and embedding mode

This commit is contained in:
wudexiang 2024-05-15 01:54:13 +08:00
parent 9f773486ab
commit 2992479a42

View file

@ -901,19 +901,22 @@ struct server_context {
slot.params.input_suffix = json_value(data, "input_suffix", default_params.input_suffix); slot.params.input_suffix = json_value(data, "input_suffix", default_params.input_suffix);
// get prompt // get prompt
{ if (!(task.infill || task.embedding)) {
const auto & prompt = data.find("prompt"); {
if (prompt == data.end()) { const auto & prompt = data.find("prompt");
send_error(task, "Either \"prompt\" or \"messages\" must be provided", ERROR_TYPE_INVALID_REQUEST); if (prompt == data.end()) {
return false; send_error(task, "Either \"prompt\" or \"messages\" must be provided", ERROR_TYPE_INVALID_REQUEST);
} else { return false;
slot.prompt = *prompt; } else {
} slot.prompt = *prompt;
if (slot.prompt.is_array() && slot.prompt.size() == 0) { }
send_error(task, "\"prompt\" cannot be an empty array", ERROR_TYPE_INVALID_REQUEST); if (slot.prompt.is_array() && slot.prompt.size() == 0) {
return false; send_error(task, "\"prompt\" cannot be an empty array", ERROR_TYPE_INVALID_REQUEST);
return false;
}
} }
} }
// penalize user-provided tokens // penalize user-provided tokens
{ {