From 3f3a42906691a2e153e6deadb361bed73b108e6d Mon Sep 17 00:00:00 2001 From: Xuan Son Nguyen Date: Fri, 23 Jan 2026 17:47:16 +0100 Subject: [PATCH 1/2] chat: fix language input for translategemma --- common/chat.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/common/chat.cpp b/common/chat.cpp index aba26e97a10..f3e564be5aa 100644 --- a/common/chat.cpp +++ b/common/chat.cpp @@ -2659,6 +2659,12 @@ static common_chat_params common_chat_params_init_translate_gemma(const common_c templates_params inputs_new = inputs; json & messages = inputs_new.messages; + // default to chat_template_kwargs, or en-GB if not specified + std::string default_src_lang = inputs.extra_context.contains("source_lang_code") + ? inputs.extra_context["source_lang_code"].get() : "en-GB"; + std::string default_tgt_lang = inputs.extra_context.contains("target_lang_code") + ? inputs.extra_context["target_lang_code"].get() : "en-GB"; + GGML_ASSERT(messages.is_array()); for (auto & message : messages) { if (message.contains("role") && message["role"].get() != "user") { @@ -2670,8 +2676,10 @@ static common_chat_params common_chat_params_init_translate_gemma(const common_c if (message.contains("content") && !message["content"].is_array()) { auto content_str = message["content"].get(); // default to en-GB if not specified (to make common_chat_format_example works) - auto src_lang = message.contains("source_lang_code") ? message["source_lang_code"].get() : "en-GB"; - auto tgt_lang = message.contains("target_lang_code") ? message["target_lang_code"].get() : "en-GB"; + auto src_lang = message.contains("source_lang_code") + ? message["source_lang_code"].get() : default_src_lang; + auto tgt_lang = message.contains("target_lang_code") + ? message["target_lang_code"].get() : default_tgt_lang; message["content"] = json::array({ json{ {"type", "text"}, From 2862ba2d7e284087835d0db3e01f313e398a8a0c Mon Sep 17 00:00:00 2001 From: Xuan-Son Nguyen Date: Sat, 24 Jan 2026 16:01:53 +0100 Subject: [PATCH 2/2] Update common/chat.cpp Co-authored-by: Aldehir Rojas --- common/chat.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/common/chat.cpp b/common/chat.cpp index f3e564be5aa..eeb38ad06a0 100644 --- a/common/chat.cpp +++ b/common/chat.cpp @@ -2660,10 +2660,8 @@ static common_chat_params common_chat_params_init_translate_gemma(const common_c json & messages = inputs_new.messages; // default to chat_template_kwargs, or en-GB if not specified - std::string default_src_lang = inputs.extra_context.contains("source_lang_code") - ? inputs.extra_context["source_lang_code"].get() : "en-GB"; - std::string default_tgt_lang = inputs.extra_context.contains("target_lang_code") - ? inputs.extra_context["target_lang_code"].get() : "en-GB"; + std::string default_src_lang = inputs.extra_context.value("source_lang_code", "en-GB"); + std::string default_tgt_lang = inputs.extra_context.value("target_lang_code", "en-GB"); GGML_ASSERT(messages.is_array()); for (auto & message : messages) {