Ah, just found it myself.
Semantic Kernel has something called a PromptTemplate
var promptTemplate = new PromptTemplate("{ bla } {{ bla }} { $bla } {{ bla }} {{request}} {{choices.[0]}}");
var prompt = promptTemplate.Render();
var result = await kernel.InvokePromptAsync(prompt, new(executionSettings));