From a21b89fd0e36d70d9fceb28991266e4ae0bf1f77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bjarke=20Viks=C3=B8e?= Date: Sat, 6 Jul 2024 19:36:52 +0200 Subject: [PATCH] Make string buffer dynamic --- examples/server/server.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/examples/server/server.cpp b/examples/server/server.cpp index c7b05cb16..4559ef07f 100644 --- a/examples/server/server.cpp +++ b/examples/server/server.cpp @@ -2967,10 +2967,13 @@ int main(int argc, char ** argv) { }; const auto handle_props = [&ctx_server](const httplib::Request & req, httplib::Response & res) { - std::vector model_template(2048, 0); // longest known template is about 1200 bytes std::string template_key = "tokenizer.chat_template", curr_tmpl; - if (llama_model_meta_val_str(ctx_server.model, template_key.c_str(), model_template.data(), model_template.size()) > 0) { - curr_tmpl = std::string(model_template.data(), model_template.size()); + int32_t tlen = llama_model_meta_val_str(ctx_server.model, template_key.c_str(), nullptr, 0); + if (tlen > 0) { + std::vector model_template(tlen + 1, 0); + if (llama_model_meta_val_str(ctx_server.model, template_key.c_str(), model_template.data(), model_template.size()) > 0) { + curr_tmpl = std::string(model_template.data(), model_template.size()); + } } res.set_header("Access-Control-Allow-Origin", req.get_header_value("Origin")); json data = {