From: Guido Imperiale Date: Mon, 10 Aug 2026 10:20:59 +0000 (+0100) Subject: chat : Align Laguna-S-2.1 chat template to huggingface (#26232) X-Git-Tag: upstream/0.0.10438~90 X-Git-Url: https://git.djapps.eu/?a=commitdiff_plain;h=a52077c4cabb4f3c0298329c9d2dd1324d5604cb;p=pkg%2Fggml%2Fsources%2Fllama.cpp chat : Align Laguna-S-2.1 chat template to huggingface (#26232) --- diff --git a/models/templates/poolside-Laguna-S-2.1.jinja b/models/templates/poolside-Laguna-S-2.1.jinja index 75c5f4cec..acf45eb42 100644 --- a/models/templates/poolside-Laguna-S-2.1.jinja +++ b/models/templates/poolside-Laguna-S-2.1.jinja @@ -1,8 +1,9 @@ {#- Iteration on laguna_glm_thinking_v8/chat_template.jinja -#} {#- No formatting instructions -#} {{- "〈|EOS|〉" -}} -{%- set enable_thinking = enable_thinking | default(false) -%} +{%- set enable_thinking = enable_thinking | default(true) -%} {%- set add_generation_prompt = add_generation_prompt | default(false) -%} +{%- set preserve_thinking = preserve_thinking | default(false) -%} {#- ───── header (system message) ───── -#} {#- A caller-supplied system message with empty content opts out of the default below, producing no block — used to train without a system message. -#} @@ -51,7 +52,7 @@ {%- set reasoning_content = message.reasoning_content -%} {%- endif -%} {#- Display reasoning content for all messages if enable_thinking -#} - {%- if enable_thinking -%} + {%- if enable_thinking or preserve_thinking -%} {{- '' + reasoning_content + '' -}} {%- else -%} {{- '' -}} diff --git a/tests/test-chat-auto-parser.cpp b/tests/test-chat-auto-parser.cpp index 4218f8d57..f5cfa45b4 100644 --- a/tests/test-chat-auto-parser.cpp +++ b/tests/test-chat-auto-parser.cpp @@ -63,6 +63,7 @@ static void test_laguna_tool_format(testing & t); static void test_laguna_s_analysis(testing & t); static void test_laguna_s_reasoning_detection(testing & t); static void test_laguna_s_tool_format(testing & t); +static void test_laguna_s_preserve_reasoning(testing & t); static void test_laguna_xs2_analysis(testing & t); static void test_laguna_xs2_reasoning_detection(testing & t); static void test_laguna_xs2_tool_format(testing & t); @@ -1451,9 +1452,14 @@ static void test_laguna_s_tool_format(testing & t) { analysis.analyze_template(tmpl); t.assert_equal("Laguna-S(v8) arg_value_suffix should be ''", "", analysis.tools.arguments.value_suffix); } +static void test_laguna_s_preserve_reasoning(testing & t) { + common_chat_template tmpl = load_laguna_s_template(t); + t.assert_true("Laguna-S(v8) supports preserving reasoning", tmpl.original_caps().supports_preserve_reasoning); +} static void test_laguna_s_analysis(testing & t) { t.test("Laguna-S(v8) reasoning detection", test_laguna_s_reasoning_detection); t.test("Laguna-S(v8) tool format", test_laguna_s_tool_format); + t.test("Laguna-S(v8) preserve reasoning", test_laguna_s_preserve_reasoning); } static common_chat_template load_laguna_xs2_template(testing & t) {