]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
server : fix incorrect res in validate_model_chat_template (#10272)
authorJhen-Jie Hong <redacted>
Wed, 13 Nov 2024 11:15:23 +0000 (19:15 +0800)
committerGitHub <redacted>
Wed, 13 Nov 2024 11:15:23 +0000 (13:15 +0200)
* server : fix validate_model_chat_template

* server : fix chat res

examples/server/server.cpp

index a6d3a1c9545cbc9c4ddd168063fe59c3db180dd9..cac55007acaabf5c97bc64be413f5ed8af757563 100644 (file)
@@ -655,11 +655,16 @@ struct server_context {
     }
 
     bool validate_model_chat_template() const {
-        llama_chat_message chat[] = {{"user", "test"}};
-
-        const int res = llama_chat_apply_template(model, nullptr, chat, 1, true, nullptr, 0);
-
-        return res > 0;
+        std::vector<char> model_template(2048, 0); // longest known template is about 1200 bytes
+        std::string template_key = "tokenizer.chat_template";
+        int32_t res = llama_model_meta_val_str(model, template_key.c_str(), model_template.data(), model_template.size());
+        if (res >= 0) {
+            llama_chat_message chat[] = {{"user", "test"}};
+            std::string tmpl = std::string(model_template.data(), model_template.size());
+            int32_t chat_res = llama_chat_apply_template(model, tmpl.c_str(), chat, 1, true, nullptr, 0);
+            return chat_res > 0;
+        }
+        return false;
     }
 
     void init() {