]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commitdiff
Fix chatml fallback for unsupported builtin templates (when --jinja not enabled)...
authorOlivier Chafik <redacted>
Fri, 31 Jan 2025 08:24:29 +0000 (08:24 +0000)
committerGitHub <redacted>
Fri, 31 Jan 2025 08:24:29 +0000 (08:24 +0000)
examples/server/server.cpp

index 1ebcb50854d31ee7e0ecce75b4c931179f80c2fb..e7daceef1db31fb34647a621fb283e0fc2087624 100644 (file)
@@ -1858,7 +1858,12 @@ struct server_context {
             llama_init_dft.context.reset();
         }
 
-        chat_templates = common_chat_templates_from_model(model, params_base.chat_template);
+        if (params_base.chat_template.empty() && !validate_builtin_chat_template(params.use_jinja)) {
+            LOG_WRN("%s: The chat template that comes with this model is not yet supported, falling back to chatml. This may cause the model to output suboptimal responses\n", __func__);
+            chat_templates = common_chat_templates_from_model(model, "chatml");
+        } else {
+            chat_templates = common_chat_templates_from_model(model, params_base.chat_template);
+        }
         GGML_ASSERT(chat_templates.template_default.get() != nullptr);
 
         return true;
@@ -4435,14 +4440,6 @@ int main(int argc, char ** argv) {
 
     LOG_INF("%s: model loaded\n", __func__);
 
-    // if a custom chat template is not supplied, we will use the one that comes with the model (if any)
-    if (params.chat_template.empty()) {
-        if (!ctx_server.validate_builtin_chat_template(params.use_jinja)) {
-            LOG_WRN("%s: The chat template that comes with this model is not yet supported, falling back to chatml. This may cause the model to output suboptimal responses\n", __func__);
-            params.chat_template = "chatml";
-        }
-    }
-
     // print sample chat example to make it clear which template is used
     LOG_INF("%s: chat template, chat_template: %s, example_format: '%s'\n", __func__,
         ctx_server.chat_templates.template_default->source().c_str(),