LLM:Bugfix: Fix bug for set jinja cause crash when the model don't has template

This commit is contained in:
xiaying 2025-09-01 21:55:36 +08:00
parent 1591ff114a
commit 9a3b45ec1c
1 changed files with 15 additions and 13 deletions

View File

@ -55,22 +55,24 @@ void Prompt::setParams(std::shared_ptr<LlmConfig> 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();