diff --git a/src/llama.cpp b/src/llama.cpp index 24e1f1f01..92865a0fa 100644 --- a/src/llama.cpp +++ b/src/llama.cpp @@ -21713,7 +21713,17 @@ static int32_t llama_chat_apply_template_internal( ss << message->content << "\n\n"; } } - } else { + } else if (tmpl == "granite" || tmpl_contains("<|start_of_role|>")) { + // IBM Granite template + for (const auto& message : chat) { + std::string role(message->role); + ss << "<|start_of_role|>" << role << "<|end_of_role|>" << "\n" + << message->content << "<|end_of_text|>\n"; + } + if (add_ass) { + ss << "<|start_of_role|>assistant<|end_of_role|>\n"; + } +} else { // template not supported return -1; }