From 9a3b45ec1c5e8e6858a4404706f6f9c72b2f9efb Mon Sep 17 00:00:00 2001 From: xiaying Date: Mon, 1 Sep 2025 21:55:36 +0800 Subject: [PATCH] LLM:Bugfix: Fix bug for set jinja cause crash when the model don't has template --- transformers/llm/engine/src/prompt.cpp | 28 ++++++++++++++------------ 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/transformers/llm/engine/src/prompt.cpp b/transformers/llm/engine/src/prompt.cpp index eb80c7e9..271d5a7e 100644 --- a/transformers/llm/engine/src/prompt.cpp +++ b/transformers/llm/engine/src/prompt.cpp @@ -55,22 +55,24 @@ void Prompt::setParams(std::shared_ptr config) { #ifdef LLM_USE_MINJA if (config->config_.document.HasMember("jinja")) { auto& document = config->config_.document["jinja"]; - if (nullptr == mCommonTemplate.get()) { - // Only create jinja once - std::string bosToken, eosToken; - if (document.HasMember("bos") && document["bos"].IsString()) { - bosToken = document["bos"].GetString(); + if (document.HasMember("chat_template")) { + if (nullptr == mCommonTemplate.get()) { + // Only create jinja once + std::string bosToken, eosToken; + if (document.HasMember("bos") && document["bos"].IsString()) { + bosToken = document["bos"].GetString(); + } + if (document.HasMember("eos") && document["eos"].IsString()) { + eosToken = document["eos"].GetString(); + } + std::string templateChat = document["chat_template"].GetString(); + mCommonTemplate.reset(new JinjaTemplate(templateChat, bosToken, eosToken)); } - if (document.HasMember("eos") && document["eos"].IsString()) { - eosToken = document["eos"].GetString(); + if (document.HasMember("context")) { + mCommonTemplate->setExtraContext(document["context"]); } - std::string templateChat = document["chat_template"].GetString(); - mCommonTemplate.reset(new JinjaTemplate(templateChat, bosToken, eosToken)); + return; } - if (document.HasMember("context")) { - mCommonTemplate->setExtraContext(document["context"]); - } - return; } #endif mCommonTemplate.reset();