diff --git a/backend/cpp/llama/grpc-server.cpp b/backend/cpp/llama/grpc-server.cpp index d4845903..c0b0c732 100644 --- a/backend/cpp/llama/grpc-server.cpp +++ b/backend/cpp/llama/grpc-server.cpp @@ -344,23 +344,23 @@ struct server_task { } } - // TODO: add back json_schema and grammar support - // // process "json_schema" and "grammar" - // if (data.contains("json_schema") && !data.contains("grammar")) { - // try { - // auto schema = json_value(data, "json_schema", json::object()); - // SRV_DBG("JSON schema: %s\n", schema.dump(2).c_str()); - // params.sampling.grammar = json_schema_to_grammar(schema); - // SRV_DBG("Converted grammar: %s\n", params.sampling.grammar.c_str()); - // } catch (const std::exception & e) { - // throw std::runtime_error(std::string("\"json_schema\": ") + e.what()); - // } - // } else { - // params.sampling.grammar = json_value(data, "grammar", defaults.sampling.grammar); - // SRV_DBG("Grammar: %s\n", params.sampling.grammar.c_str()); - // params.sampling.grammar_lazy = json_value(data, "grammar_lazy", defaults.sampling.grammar_lazy); - // SRV_DBG("Grammar lazy: %s\n", params.sampling.grammar_lazy ? "true" : "false"); - // } + //TODO: add back json_schema and grammar support + // process "json_schema" and "grammar" + if (data.contains("json_schema") && !data.contains("grammar")) { + try { + auto schema = json_value(data, "json_schema", json::object()); + SRV_DBG("JSON schema: %s\n", schema.dump(2).c_str()); + params.sampling.grammar = json_schema_to_grammar(schema); + SRV_DBG("Converted grammar: %s\n", params.sampling.grammar.c_str()); + } catch (const std::exception & e) { + throw std::runtime_error(std::string("\"json_schema\": ") + e.what()); + } + } else { + params.sampling.grammar = json_value(data, "grammar", defaults.sampling.grammar); + SRV_DBG("Grammar: %s\n", params.sampling.grammar.c_str()); + params.sampling.grammar_lazy = json_value(data, "grammar_lazy", defaults.sampling.grammar_lazy); + SRV_DBG("Grammar lazy: %s\n", params.sampling.grammar_lazy ? "true" : "false"); + } { auto it = data.find("chat_format");