using var weights = LLamaWeights.LoadFromFile(@params);
// todo: all this pin stuff is ugly and should be hidden in the higher level wrapper
using var pin = @params.ToLlamaContextParams(out var lparams);
// todo: we need a higher level wrapper around the model weights (LLamaWeights??)
var weights = SafeLlamaModelHandle.LoadFromFile(modelPath, lparams);
// todo: need a method on the LLamaWeights which does this
var ctx1 = new LLamaContext(weights.CreateContext(lparams), @params, Encoding.UTF8);
var ctx2 = new LLamaContext(weights.CreateContext(lparams), @params, Encoding.UTF8);
var alice = new InteractiveExecutor(ctx1);
var bob = new InteractiveExecutor(ctx2);
// Create 2 contexts sharing the same weights
using var aliceCtx = weights.CreateContext(@params, Encoding.UTF8);
var alice = new InteractiveExecutor(aliceCtx);
using var bobCtx = weights.CreateContext(@params, Encoding.UTF8);
var bob = new InteractiveExecutor(bobCtx);
// Initial alice prompt
var alicePrompt = "Transcript of a dialog, where the Alice interacts a person named Bob. Alice is friendly, kind, honest and good at writing.\nAlice: Hello";