summaryrefslogtreecommitdiff
path: root/examples/server/server.cpp
diff options
context:
space:
mode:
authorXuan Son Nguyen <thichthat@gmail.com>2024-03-25 09:42:17 +0100
committerGitHub <noreply@github.com>2024-03-25 09:42:17 +0100
commitad3a0505e3b6cd777259ee35e61d428357ffc565 (patch)
treeae3976c33914df984df4f0b0ae5445422a0dd30d /examples/server/server.cpp
parent95ad616cddda50273e955bfe192328acd9aa4896 (diff)
Server: clean up OAI params parsing function (#6284)
* server: clean up oai parsing function * fix response_format * fix empty response_format * minor fixes * add TODO for logprobs * update docs
Diffstat (limited to 'examples/server/server.cpp')
-rw-r--r--examples/server/server.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/examples/server/server.cpp b/examples/server/server.cpp
index b02c2546..338e60f2 100644
--- a/examples/server/server.cpp
+++ b/examples/server/server.cpp
@@ -847,9 +847,16 @@ struct server_context {
slot.sparams.penalize_nl = json_value(data, "penalize_nl", default_sparams.penalize_nl);
slot.params.n_keep = json_value(data, "n_keep", slot.params.n_keep);
slot.params.seed = json_value(data, "seed", default_params.seed);
- if (data.contains("json_schema") && !data.contains("grammar")) {
+ slot.sparams.n_probs = json_value(data, "n_probs", default_sparams.n_probs);
+ slot.sparams.min_keep = json_value(data, "min_keep", default_sparams.min_keep);
+
+ // process "json_schema" and "grammar"
+ if (data.contains("json_schema") && data.contains("grammar")) {
+ send_error(task, "Either \"json_schema\" or \"grammar\" can be specified, but not both", ERROR_TYPE_INVALID_REQUEST);
+ return false;
+ } else if (data.contains("json_schema") && !data.contains("grammar")) {
try {
- auto schema = json_value(data, "json_schema", json::object());
+ auto schema = json_value(data, "json_schema", json::object());
slot.sparams.grammar = json_schema_to_grammar(schema);
} catch (const std::exception & e) {
send_error(task, std::string("\"json_schema\": ") + e.what(), ERROR_TYPE_INVALID_REQUEST);
@@ -858,8 +865,6 @@ struct server_context {
} else {
slot.sparams.grammar = json_value(data, "grammar", default_sparams.grammar);
}
- slot.sparams.n_probs = json_value(data, "n_probs", default_sparams.n_probs);
- slot.sparams.min_keep = json_value(data, "min_keep", default_sparams.min_keep);
if (slot.params.cache_prompt && slot.ga_n != 1) {
LOG_WARNING("cache_prompt is not supported with group-attention", {});