diff --git a/LLama.KernelMemory/BuilderExtensions.cs b/LLama.KernelMemory/BuilderExtensions.cs
index 84e29862..3f50f22a 100644
--- a/LLama.KernelMemory/BuilderExtensions.cs
+++ b/LLama.KernelMemory/BuilderExtensions.cs
@@ -94,5 +94,31 @@ namespace LLamaSharp.KernelMemory
builder.WithLLamaSharpTextGeneration(new LlamaSharpTextGenerator(weights, context, executor, config?.DefaultInferenceParams));
return builder;
}
+
+ ///
+ /// Adds LLamaSharpTextEmbeddingGeneration and LLamaSharpTextGeneration to the KernelMemoryBuilder. Using an already loaded model.
+ ///
+ /// The KernelMemoryBuilder instance.
+ ///
+ ///
+ /// The LLamaSharpConfig instance.
+ /// The KernelMemoryBuilder instance with LLamaSharpTextEmbeddingGeneration and LLamaSharpTextGeneration added.
+ public static IKernelMemoryBuilder WithLLamaSharpDefaults(this IKernelMemoryBuilder builder, LLamaWeights weights, LLamaContext context, LLamaSharpConfig config)
+ {
+ var parameters = new ModelParams(config.ModelPath)
+ {
+ ContextSize = config?.ContextSize ?? 2048,
+ Seed = config?.Seed ?? 0,
+ GpuLayerCount = config?.GpuLayerCount ?? 20,
+ EmbeddingMode = true,
+ MainGpu = config?.MainGpu ?? 0,
+ SplitMode = config?.SplitMode ?? GPUSplitMode.None,
+ };
+ var executor = new StatelessExecutor(weights, parameters);
+ var embedder = new LLamaEmbedder(weights, parameters);
+ builder.WithLLamaSharpTextEmbeddingGeneration(new LLamaSharpTextEmbeddingGenerator(embedder));
+ builder.WithLLamaSharpTextGeneration(new LlamaSharpTextGenerator(weights, context, executor, config?.DefaultInferenceParams));
+ return builder;
+ }
}
}