From d1e2a4750bacdf66edb0df47da449617969f707f Mon Sep 17 00:00:00 2001 From: xbotter Date: Fri, 24 Nov 2023 21:42:52 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20Update=20KernelMemory=20configur?= =?UTF-8?q?ation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update LLamaSharpTextEmbeddingGeneration and LLamaSharpTextGeneration - Add Microsoft.KernelMemory.Core package reference - Update Microsoft.KernelMemory.Abstractions package reference --- LLama.Examples/Examples/KernelMemory.cs | 2 +- LLama.Examples/LLama.Examples.csproj | 1 + LLama.KernelMemory/BuilderExtensions.cs | 25 +++++++++++++++---- .../LLamaSharp.KernelMemory.csproj | 2 +- 4 files changed, 23 insertions(+), 7 deletions(-) diff --git a/LLama.Examples/Examples/KernelMemory.cs b/LLama.Examples/Examples/KernelMemory.cs index 0c2b908f..0aea3d7a 100644 --- a/LLama.Examples/Examples/KernelMemory.cs +++ b/LLama.Examples/Examples/KernelMemory.cs @@ -30,7 +30,7 @@ namespace LLama.Examples.Examples MaxTokensPerLine = 100, OverlappingTokens = 30 }) - .BuildServerlessClient(); + .Build(); await memory.ImportDocumentAsync(@"./Assets/sample-SK-Readme.pdf", steps: Constants.PipelineWithoutSummary); diff --git a/LLama.Examples/LLama.Examples.csproj b/LLama.Examples/LLama.Examples.csproj index 03d22fcc..b7369172 100644 --- a/LLama.Examples/LLama.Examples.csproj +++ b/LLama.Examples/LLama.Examples.csproj @@ -29,6 +29,7 @@ + diff --git a/LLama.KernelMemory/BuilderExtensions.cs b/LLama.KernelMemory/BuilderExtensions.cs index dc746dc6..5f476ce8 100644 --- a/LLama.KernelMemory/BuilderExtensions.cs +++ b/LLama.KernelMemory/BuilderExtensions.cs @@ -7,6 +7,7 @@ using System.Threading.Tasks; using LLama; using LLama.Common; using Microsoft.KernelMemory.AI; +using Microsoft.SemanticKernel.AI.Embeddings; namespace LLamaSharp.KernelMemory { @@ -15,13 +16,27 @@ namespace LLamaSharp.KernelMemory /// public static class BuilderExtensions { + + private static IKernelMemoryBuilder WithCustomEmbeddingGeneration(this IKernelMemoryBuilder builder, ITextEmbeddingGeneration embeddingGeneration) + { + builder.AddSingleton(embeddingGeneration); + builder.AddIngestionEmbeddingGenerator(embeddingGeneration); + return builder; + } + + private static IKernelMemoryBuilder WithCustomTextGeneration(this IKernelMemoryBuilder builder, ITextGeneration textGeneration) + { + builder.AddSingleton(textGeneration); + return builder; + } + /// /// Adds LLamaSharpTextEmbeddingGeneration to the KernelMemoryBuilder. /// /// The KernelMemoryBuilder instance. /// The LLamaSharpConfig instance. /// The KernelMemoryBuilder instance with LLamaSharpTextEmbeddingGeneration added. - public static KernelMemoryBuilder WithLLamaSharpTextEmbeddingGeneration(this KernelMemoryBuilder builder, LLamaSharpConfig config) + public static IKernelMemoryBuilder WithLLamaSharpTextEmbeddingGeneration(this IKernelMemoryBuilder builder, LLamaSharpConfig config) { builder.WithCustomEmbeddingGeneration(new LLamaSharpTextEmbeddingGeneration(config)); return builder; @@ -33,7 +48,7 @@ namespace LLamaSharp.KernelMemory /// The KernelMemoryBuilder instance. /// The LLamaSharpTextEmbeddingGeneration instance. /// The KernelMemoryBuilder instance with LLamaSharpTextEmbeddingGeneration added. - public static KernelMemoryBuilder WithLLamaSharpTextEmbeddingGeneration(this KernelMemoryBuilder builder, LLamaSharpTextEmbeddingGeneration textEmbeddingGeneration) + public static IKernelMemoryBuilder WithLLamaSharpTextEmbeddingGeneration(this IKernelMemoryBuilder builder, LLamaSharpTextEmbeddingGeneration textEmbeddingGeneration) { builder.WithCustomEmbeddingGeneration(textEmbeddingGeneration); return builder; @@ -45,7 +60,7 @@ namespace LLamaSharp.KernelMemory /// The KernelMemoryBuilder instance. /// The LLamaSharpConfig instance. /// The KernelMemoryBuilder instance with LLamaSharpTextGeneration added. - public static KernelMemoryBuilder WithLLamaSharpTextGeneration(this KernelMemoryBuilder builder, LLamaSharpConfig config) + public static IKernelMemoryBuilder WithLLamaSharpTextGeneration(this IKernelMemoryBuilder builder, LLamaSharpConfig config) { builder.WithCustomTextGeneration(new LlamaSharpTextGeneration(config)); return builder; @@ -57,7 +72,7 @@ namespace LLamaSharp.KernelMemory /// The KernelMemoryBuilder instance. /// The LlamaSharpTextGeneration instance. /// The KernelMemoryBuilder instance with LLamaSharpTextGeneration added. - public static KernelMemoryBuilder WithLLamaSharpTextGeneration(this KernelMemoryBuilder builder, LlamaSharpTextGeneration textGeneration) + public static IKernelMemoryBuilder WithLLamaSharpTextGeneration(this IKernelMemoryBuilder builder, LlamaSharpTextGeneration textGeneration) { builder.WithCustomTextGeneration(textGeneration); return builder; @@ -69,7 +84,7 @@ namespace LLamaSharp.KernelMemory /// The KernelMemoryBuilder instance. /// The LLamaSharpConfig instance. /// The KernelMemoryBuilder instance with LLamaSharpTextEmbeddingGeneration and LLamaSharpTextGeneration added. - public static KernelMemoryBuilder WithLLamaSharpDefaults(this KernelMemoryBuilder builder, LLamaSharpConfig config) + public static IKernelMemoryBuilder WithLLamaSharpDefaults(this IKernelMemoryBuilder builder, LLamaSharpConfig config) { var parameters = new ModelParams(config.ModelPath) { diff --git a/LLama.KernelMemory/LLamaSharp.KernelMemory.csproj b/LLama.KernelMemory/LLamaSharp.KernelMemory.csproj index b2aeffd6..78d4712b 100644 --- a/LLama.KernelMemory/LLamaSharp.KernelMemory.csproj +++ b/LLama.KernelMemory/LLamaSharp.KernelMemory.csproj @@ -29,7 +29,7 @@ - +