diff --git a/LLama.Examples/ExampleRunner.cs b/LLama.Examples/ExampleRunner.cs
index 23f07c6a1..3e8682b06 100644
--- a/LLama.Examples/ExampleRunner.cs
+++ b/LLama.Examples/ExampleRunner.cs
@@ -23,12 +23,6 @@ public class ExampleRunner
{ "LLama Model: Get embeddings", GetEmbeddings.Run },
{ "LLama Model: Quantize", QuantizeModel.Run },
{ "Grammar: Constrain response to json format", GrammarJsonResponse.Run },
- { "Kernel Memory: Document Q&A", KernelMemory.Run },
- { "Kernel Memory: Save and Load", KernelMemorySaveAndLoad.Run },
- { "Semantic Kernel: HomeAutomation", SemanticKernelHomeAutomation.Run },
- { "Semantic Kernel: Prompt", SemanticKernelPrompt.Run },
- { "Semantic Kernel: Chat", SemanticKernelChat.Run },
- { "Semantic Kernel: Store", SemanticKernelMemory.Run },
{ "Batched Executor: Simple", BatchedExecutorSimple.Run },
{ "Batched Executor: Save/Load", BatchedExecutorSaveAndLoad.Run },
{ "Batched Executor: Fork", BatchedExecutorFork.Run },
diff --git a/LLama.Examples/Examples/KernelMemory.cs b/LLama.Examples/Examples/KernelMemory.cs
deleted file mode 100644
index 37e77d584..000000000
--- a/LLama.Examples/Examples/KernelMemory.cs
+++ /dev/null
@@ -1,109 +0,0 @@
-using LLamaSharp.KernelMemory;
-using Microsoft.KernelMemory;
-using Microsoft.KernelMemory.Configuration;
-using System.Diagnostics;
-
-namespace LLama.Examples.Examples
-{
- // This example is from Microsoft's official kernel memory "custom prompts" example:
- // https://github.com/microsoft/kernel-memory/blob/6d516d70a23d50c6cb982e822e6a3a9b2e899cfa/examples/101-dotnet-custom-Prompts/Program.cs#L1-L86
-
- // Microsoft.KernelMemory has more features than Microsoft.SemanticKernel.
- // See https://microsoft.github.io/kernel-memory/ for details.
-
- public class KernelMemory
- {
- public static async Task Run()
- {
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine(
- """
-
- This program uses the Microsoft.KernelMemory package to ingest documents
- and answer questions about them in an interactive chat prompt.
-
- """);
-
- // Setup the kernel memory with the LLM model
- string modelPath = UserSettings.GetModelPath();
- IKernelMemory memory = CreateMemory(modelPath);
-
- // Ingest documents (format is automatically detected from the filename)
- string[] filesToIngest = [
- Path.GetFullPath(@"./Assets/sample-SK-Readme.pdf"),
- Path.GetFullPath(@"./Assets/sample-KM-Readme.pdf"),
- ];
-
- for (int i = 0; i < filesToIngest.Length; i++)
- {
- string path = filesToIngest[i];
- Stopwatch sw = Stopwatch.StartNew();
- Console.ForegroundColor = ConsoleColor.Blue;
- Console.WriteLine($"Importing {i + 1} of {filesToIngest.Length}: {path}");
- await memory.ImportDocumentAsync(path, steps: Constants.PipelineWithoutSummary);
- Console.WriteLine($"Completed in {sw.Elapsed}\n");
- }
-
- // Ask a predefined question
- Console.ForegroundColor = ConsoleColor.Green;
- string question1 = "What is Kernel Memory";
- Console.WriteLine($"Question: {question1}");
- await AnswerQuestion(memory, question1);
-
- // Let the user ask additional questions
- while (true)
- {
- Console.ForegroundColor = ConsoleColor.Green;
- Console.Write("Question: ");
- string question = Console.ReadLine()!;
- if (string.IsNullOrEmpty(question))
- return;
-
- await AnswerQuestion(memory, question);
- }
- }
-
- private static IKernelMemory CreateMemory(string modelPath)
- {
- Common.InferenceParams infParams = new() { AntiPrompts = ["\n\n"] };
-
- LLamaSharpConfig lsConfig = new(modelPath) { DefaultInferenceParams = infParams };
-
- SearchClientConfig searchClientConfig = new()
- {
- MaxMatchesCount = 1,
- AnswerTokens = 100,
- };
-
- TextPartitioningOptions parseOptions = new()
- {
- MaxTokensPerParagraph = 300,
- OverlappingTokens = 30
- };
-
- return new KernelMemoryBuilder()
- .WithLLamaSharpDefaults(lsConfig)
- .WithSearchClientConfig(searchClientConfig)
- .With(parseOptions)
- .Build();
- }
-
- private static async Task AnswerQuestion(IKernelMemory memory, string question)
- {
- Stopwatch sw = Stopwatch.StartNew();
- Console.ForegroundColor = ConsoleColor.DarkGray;
- Console.WriteLine($"Generating answer...");
-
- MemoryAnswer answer = await memory.AskAsync(question);
- Console.WriteLine($"Answer generated in {sw.Elapsed}");
-
- Console.ForegroundColor = ConsoleColor.Gray;
- Console.WriteLine($"Answer: {answer.Result}");
- foreach (var source in answer.RelevantSources)
- {
- Console.WriteLine($"Source: {source.SourceName}");
- }
- Console.WriteLine();
- }
- }
-}
\ No newline at end of file
diff --git a/LLama.Examples/Examples/KernelMemorySaveAndLoad.cs b/LLama.Examples/Examples/KernelMemorySaveAndLoad.cs
deleted file mode 100644
index b953ccff3..000000000
--- a/LLama.Examples/Examples/KernelMemorySaveAndLoad.cs
+++ /dev/null
@@ -1,160 +0,0 @@
-using LLamaSharp.KernelMemory;
-using Microsoft.KernelMemory;
-using Microsoft.KernelMemory.Configuration;
-using Microsoft.KernelMemory.FileSystem.DevTools;
-using Microsoft.KernelMemory.MemoryStorage.DevTools;
-using System.Diagnostics;
-using Microsoft.KernelMemory.DocumentStorage.DevTools;
-
-namespace LLama.Examples.Examples;
-
-public class KernelMemorySaveAndLoad
-{
- static string StorageFolder => Path.GetFullPath($"./storage-{nameof(KernelMemorySaveAndLoad)}");
- static bool StorageExists => Directory.Exists(StorageFolder) && Directory.GetDirectories(StorageFolder).Length > 0;
-
- public static async Task Run()
- {
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine(
- """
-
- This program uses the Microsoft.KernelMemory package to ingest documents
- and store the embeddings as local files so they can be quickly recalled
- when this application is launched again.
-
- """);
-
- string modelPath = UserSettings.GetModelPath();
- IKernelMemory memory = CreateMemoryWithLocalStorage(modelPath);
-
- Console.ForegroundColor = ConsoleColor.Yellow;
- if (StorageExists)
- {
- Console.WriteLine(
- """
-
- Kernel memory files have been located!
- Information about previously analyzed documents has been loaded.
-
- """);
- }
- else
- {
- Console.WriteLine(
- $"""
-
- Existing kernel memory was not found.
- Documents will be analyzed (slow) and information saved to disk.
- Analysis will not be required the next time this program is run.
- Press ENTER to proceed...
-
- """);
- Console.ReadLine();
- await IngestDocuments(memory);
- }
-
- await AskSingleQuestion(memory, "What is Kernel Memory");
- await StartUserChatSession(memory);
- }
-
- private static IKernelMemory CreateMemoryWithLocalStorage(string modelPath)
- {
- Common.InferenceParams infParams = new() { AntiPrompts = ["\n\n"] };
-
- LLamaSharpConfig lsConfig = new(modelPath) { DefaultInferenceParams = infParams };
-
- SearchClientConfig searchClientConfig = new()
- {
- MaxMatchesCount = 1,
- AnswerTokens = 100,
- };
-
- TextPartitioningOptions parseOptions = new()
- {
- MaxTokensPerParagraph = 300,
- OverlappingTokens = 30
- };
-
- SimpleFileStorageConfig storageConfig = new()
- {
- Directory = StorageFolder,
- StorageType = FileSystemTypes.Disk,
- };
-
- SimpleVectorDbConfig vectorDbConfig = new()
- {
- Directory = StorageFolder,
- StorageType = FileSystemTypes.Disk,
- };
-
- Console.ForegroundColor = ConsoleColor.Blue;
- Console.WriteLine($"Kernel memory folder: {StorageFolder}");
-
- Console.ForegroundColor = ConsoleColor.DarkGray;
- return new KernelMemoryBuilder()
- .WithSimpleFileStorage(storageConfig)
- .WithSimpleVectorDb(vectorDbConfig)
- .WithLLamaSharpDefaults(lsConfig)
- .WithSearchClientConfig(searchClientConfig)
- .With(parseOptions)
- .Build();
- }
-
- private static async Task AskSingleQuestion(IKernelMemory memory, string question)
- {
- Console.ForegroundColor = ConsoleColor.Green;
- Console.WriteLine($"Question: {question}");
- await ShowAnswer(memory, question);
- }
-
- private static async Task StartUserChatSession(IKernelMemory memory)
- {
- while (true)
- {
- Console.ForegroundColor = ConsoleColor.Green;
- Console.Write("Question: ");
- string question = Console.ReadLine()!;
- if (string.IsNullOrEmpty(question))
- return;
-
- await ShowAnswer(memory, question);
- }
- }
-
- private static async Task IngestDocuments(IKernelMemory memory)
- {
- string[] filesToIngest = [
- Path.GetFullPath(@"./Assets/sample-SK-Readme.pdf"),
- Path.GetFullPath(@"./Assets/sample-KM-Readme.pdf"),
- ];
-
- for (int i = 0; i < filesToIngest.Length; i++)
- {
- string path = filesToIngest[i];
- Stopwatch sw = Stopwatch.StartNew();
- Console.ForegroundColor = ConsoleColor.Blue;
- Console.WriteLine($"Importing {i + 1} of {filesToIngest.Length}: {path}");
- await memory.ImportDocumentAsync(path, steps: Constants.PipelineWithoutSummary);
- Console.WriteLine($"Completed in {sw.Elapsed}\n");
- }
- }
-
- private static async Task ShowAnswer(IKernelMemory memory, string question)
- {
- Stopwatch sw = Stopwatch.StartNew();
- Console.ForegroundColor = ConsoleColor.DarkGray;
- Console.WriteLine($"Generating answer...");
-
- MemoryAnswer answer = await memory.AskAsync(question);
- Console.WriteLine($"Answer generated in {sw.Elapsed}");
-
- Console.ForegroundColor = ConsoleColor.Gray;
- Console.WriteLine($"Answer: {answer.Result}");
- foreach (var source in answer.RelevantSources)
- {
- Console.WriteLine($"Source: {source.SourceName}");
- }
- Console.WriteLine();
- }
-}
\ No newline at end of file
diff --git a/LLama.Examples/Examples/SemanticKernelChat.cs b/LLama.Examples/Examples/SemanticKernelChat.cs
deleted file mode 100644
index 2631cc9b9..000000000
--- a/LLama.Examples/Examples/SemanticKernelChat.cs
+++ /dev/null
@@ -1,62 +0,0 @@
-using LLama.Common;
-using LLamaSharp.SemanticKernel.ChatCompletion;
-using Microsoft.SemanticKernel.ChatCompletion;
-
-namespace LLama.Examples.Examples
-{
- public class SemanticKernelChat
- {
- public static async Task Run()
- {
- string modelPath = UserSettings.GetModelPath();
-
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("This example is from: \n" +
- "https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/KernelSyntaxExamples/Example17_ChatGPT.cs");
-
- // Load weights into memory
- var parameters = new ModelParams(modelPath);
- using var model = await LLamaWeights.LoadFromFileAsync(parameters);
- var ex = new StatelessExecutor(model, parameters);
-
- var chatGPT = new LLamaSharpChatCompletion(ex);
-
- var chatHistory = chatGPT.CreateNewChat("This is a conversation between the " +
- "assistant and the user. \n\n You are a librarian, expert about books. ");
-
- Console.WriteLine("Chat content:");
- Console.WriteLine("------------------------");
-
- chatHistory.AddUserMessage("Hi, I'm looking for book suggestions");
- await MessageOutputAsync(chatHistory);
-
- // First bot assistant message
- var reply = await chatGPT.GetChatMessageContentAsync(chatHistory);
- chatHistory.AddAssistantMessage(reply.Content);
- await MessageOutputAsync(chatHistory);
-
- // Second user message
- chatHistory.AddUserMessage("I love history and philosophy, I'd like to learn " +
- "something new about Greece, any suggestion");
- await MessageOutputAsync(chatHistory);
-
- // Second bot assistant message
- reply = await chatGPT.GetChatMessageContentAsync(chatHistory);
- chatHistory.AddAssistantMessage(reply.Content);
- await MessageOutputAsync(chatHistory);
- }
-
- ///
- /// Outputs the last message of the chat history
- ///
- private static Task MessageOutputAsync(Microsoft.SemanticKernel.ChatCompletion.ChatHistory chatHistory)
- {
- var message = chatHistory.Last();
-
- Console.WriteLine($"{message.Role}: {message.Content}");
- Console.WriteLine("------------------------");
-
- return Task.CompletedTask;
- }
- }
-}
diff --git a/LLama.Examples/Examples/SemanticKernelHomeAutomation.cs b/LLama.Examples/Examples/SemanticKernelHomeAutomation.cs
deleted file mode 100644
index 07e1a5591..000000000
--- a/LLama.Examples/Examples/SemanticKernelHomeAutomation.cs
+++ /dev/null
@@ -1,170 +0,0 @@
-using LLama.Common;
-using LLamaSharp.SemanticKernel;
-using LLamaSharp.SemanticKernel.ChatCompletion;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.Hosting;
-using Microsoft.Extensions.Logging;
-using Microsoft.Extensions.Logging.Abstractions;
-using Microsoft.SemanticKernel;
-using Microsoft.SemanticKernel.ChatCompletion;
-using System.ComponentModel;
-using AuthorRole = Microsoft.SemanticKernel.ChatCompletion.AuthorRole;
-using ChatHistory = Microsoft.SemanticKernel.ChatCompletion.ChatHistory;
-
-namespace LLama.Examples.Examples
-{
- public class SemanticKernelHomeAutomation
- {
- public static async Task Run()
- {
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("This example was inspired by the HomeAutomation example in SemanticKernel.");
- Console.ForegroundColor = ConsoleColor.White;
-
- string modelPath = UserSettings.GetModelPath();
-
- // Load weights into memory
- var parameters = new ModelParams(modelPath);
- using var model = await LLamaWeights.LoadFromFileAsync(parameters);
- var slex = new StatelessExecutor(model, parameters);
-
- HostApplicationBuilder builder = Host.CreateApplicationBuilder();
-
- // Actual code to execute is found in Worker class
- builder.Services.AddHostedService();
-
- builder.Services.AddSingleton(sp =>
- {
- return new LLamaSharpChatCompletion(slex,
- new LLamaSharpPromptExecutionSettings()
- {
- MaxTokens = -1,
- Temperature = 0,
- TopP = 0.1,
- });
- });
-
- // Add plugins that can be used by kernels
- // The plugins are added as singletons so that they can be used by multiple kernels
- builder.Services.AddKeyedSingleton("OfficeLight");
-
- // Add a home automation kernel to the dependency injection container
- builder.Services.AddKeyedTransient("HomeAutomationKernel", (sp, key) =>
- {
- // Create a collection of plugins that the kernel will use
- KernelPluginCollection pluginCollection = [];
- pluginCollection.AddFromObject(sp.GetRequiredKeyedService("OfficeLight"), "OfficeLight");
-
- // When created by the dependency injection container, Semantic Kernel logging is included by default
- return new Kernel(sp, pluginCollection);
- });
-
- //remove logging
- builder.Services.AddSingleton(sp => { return NullLoggerFactory.Instance; });
-
- using IHost host = builder.Build();
-
- await host.RunAsync();
- }
- }
-
- internal class Worker(
- IHostApplicationLifetime hostApplicationLifetime,
- [FromKeyedServices("HomeAutomationKernel")] Kernel kernel) : BackgroundService
- {
- private readonly IHostApplicationLifetime _hostApplicationLifetime = hostApplicationLifetime;
- private readonly Kernel _kernel = kernel;
-
- protected override async Task ExecuteAsync(CancellationToken stoppingToken)
- {
- // Get chat completion service
- var chatCompletionService = _kernel.GetRequiredService();
-
- Console.WriteLine("Ask questions or give instructions to the copilot such as:\n" +
- "- Turn on the light.\n" +
- "- Which light is currently on?\n");
-
- Console.Write("> ");
-
- LLamaSharpPromptExecutionSettings llamaSharpPromptExecutionSettings = new()
- {
- Temperature = 0.0f,
- TopP = 0.1f
- };
-
- string? input;
-
- while ((input = Console.ReadLine()) != null)
- {
- ChatHistory chatHistory = new ChatHistory();
- chatHistory.Add(new ChatMessageContent(AuthorRole.System,
- """
- You are an assistant who determines the user's intent. Here are the possible intents:
- - If the user wants to turn the light ON, then answer with the following:
- ´´´answer
- [TURN ON THE LIGHT]
- ´´´
- - If the user wants to turn the light OFF, then answer with the following:
- ´´´answer
- [TURN OFF THE LIGHT]
- ´´´
- - If the user wants to know which light is on currently, then answer with the following:
- ´´´answer
- [WHICH LIGHT IS ON]
- ´´´
- IMPORTANT: only return the answer without further comments with the format ´´´answer{intent}´´´, where {intent} is the user's intent.
- """
- ));
-
- Console.WriteLine();
-
- chatHistory.Add(new ChatMessageContent(AuthorRole.User, input));
-
- ChatMessageContent chatResult = await chatCompletionService.GetChatMessageContentAsync(chatHistory, llamaSharpPromptExecutionSettings, _kernel, stoppingToken);
-
- FunctionResult? fres = null;
- if (chatResult.Content!.Contains("[TURN ON THE LIGHT]"))
- {
- fres = await _kernel.InvokeAsync("OfficeLight", "TurnOn", cancellationToken: stoppingToken);
- }
- else if (chatResult.Content.Contains("[TURN OFF THE LIGHT]"))
- {
- fres = await _kernel.InvokeAsync("OfficeLight", "TurnOff", cancellationToken: stoppingToken);
- }
-
- Console.ForegroundColor = ConsoleColor.Green;
- if (fres != null || chatResult.Content.Contains("[WHICH LIGHT IS ON]"))
- {
- fres = await _kernel.InvokeAsync("OfficeLight", "IsTurnedOn", cancellationToken: stoppingToken);
- Console.Write($">>> Result:\n {(fres.GetValue()==true?"The light is ON.": "The light is OFF.")}\n\n> ");
- }
- else
- {
- Console.Write($">>> Result: {chatResult}\n\n> ");
- }
- Console.ForegroundColor = ConsoleColor.White;
- }
-
- _hostApplicationLifetime.StopApplication();
- }
-
- }
-
- ///
- /// Class that represents a controllable light.
- ///
- [Description("Represents a light")]
- internal class MyLightPlugin(bool turnedOn = false)
- {
- private bool _turnedOn = turnedOn;
-
- [KernelFunction, Description("Returns whether this light is on")]
- public bool IsTurnedOn() => _turnedOn;
-
- [KernelFunction, Description("Turn on this light")]
- public void TurnOn() => _turnedOn = true;
-
- [KernelFunction, Description("Turn off this light")]
- public void TurnOff() => _turnedOn = false;
- }
-}
diff --git a/LLama.Examples/Examples/SemanticKernelMemory.cs b/LLama.Examples/Examples/SemanticKernelMemory.cs
deleted file mode 100644
index d2f817983..000000000
--- a/LLama.Examples/Examples/SemanticKernelMemory.cs
+++ /dev/null
@@ -1,162 +0,0 @@
-using LLama.Common;
-using Microsoft.SemanticKernel.Memory;
-using LLamaSharp.SemanticKernel.TextEmbedding;
-
-namespace LLama.Examples.Examples
-{
- public class SemanticKernelMemory
- {
- private const string MemoryCollectionName = "SKGitHub";
-
- public static async Task Run()
- {
- string modelPath = UserSettings.GetModelPath();
-
- Console.WriteLine("This example is from: \n" +
- "https://github.com/microsoft/semantic-kernel/blob/main/dotnet/samples/KernelSyntaxExamples/Example14_SemanticMemory.cs");
-
- // Load weights into memory
- var parameters = new ModelParams(modelPath)
- {
- Embeddings = true
- };
-
- using var model = await LLamaWeights.LoadFromFileAsync(parameters);
- var embedding = new LLamaEmbedder(model, parameters);
-
- Console.WriteLine("====================================================");
- Console.WriteLine("======== Semantic Memory (volatile, in RAM) ========");
- Console.WriteLine("====================================================");
-
- /* You can build your own semantic memory combining an Embedding Generator
- * with a Memory storage that supports search by similarity (ie semantic search).
- *
- * In this example we use a volatile memory, a local simulation of a vector DB.
- *
- * You can replace VolatileMemoryStore with Qdrant (see QdrantMemoryStore connector)
- * or implement your connectors for Pinecone, Vespa, Postgres + pgvector, SQLite VSS, etc.
- */
-
- var memory = new MemoryBuilder()
- .WithTextEmbeddingGeneration(new LLamaSharpEmbeddingGeneration(embedding))
- .WithMemoryStore(new VolatileMemoryStore())
- .Build();
-
- await RunExampleAsync(memory);
- }
-
- private static async Task RunExampleAsync(ISemanticTextMemory memory)
- {
- await StoreMemoryAsync(memory);
-
- await SearchMemoryAsync(memory, "How do I get started?");
-
- /*
- Output:
-
- Query: How do I get started?
-
- Result 1:
- URL: : https://github.com/microsoft/semantic-kernel/blob/main/README.md
- Title : README: Installation, getting started, and how to contribute
-
- Result 2:
- URL: : https://github.com/microsoft/semantic-kernel/blob/main/samples/dotnet-jupyter-notebooks/00-getting-started.ipynb
- Title : Jupyter notebook describing how to get started with the Semantic Kernel
-
- */
-
- await SearchMemoryAsync(memory, "Can I build a chat with SK?");
-
- /*
- Output:
-
- Query: Can I build a chat with SK?
-
- Result 1:
- URL: : https://github.com/microsoft/semantic-kernel/tree/main/samples/skills/ChatSkill/ChatGPT
- Title : Sample demonstrating how to create a chat skill interfacing with ChatGPT
-
- Result 2:
- URL: : https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/chat-summary-webapp-react/README.md
- Title : README: README associated with a sample chat summary react-based webapp
-
- */
-
- await SearchMemoryAsync(memory, "Jupyter notebook");
-
- await SearchMemoryAsync(memory, "README: README associated with a sample chat summary react-based webapp");
-
- await SearchMemoryAsync(memory, "Jupyter notebook describing how to pass prompts from a file to a semantic skill or function");
- }
-
- private static async Task SearchMemoryAsync(ISemanticTextMemory memory, string query)
- {
- Console.WriteLine("\nQuery: " + query + "\n");
-
- var memories = memory.SearchAsync(MemoryCollectionName, query, limit: 10, minRelevanceScore: 0.5);
-
- int i = 0;
- await foreach (MemoryQueryResult result in memories)
- {
- Console.WriteLine($"Result {++i}:");
- Console.WriteLine(" URL: : " + result.Metadata.Id);
- Console.WriteLine(" Title : " + result.Metadata.Description);
- Console.WriteLine(" Relevance: " + result.Relevance);
- Console.WriteLine();
- }
-
- Console.WriteLine("----------------------");
- }
-
- private static async Task StoreMemoryAsync(ISemanticTextMemory memory)
- {
- /* Store some data in the semantic memory.
- *
- * When using Azure Cognitive Search the data is automatically indexed on write.
- *
- * When using the combination of VolatileStore and Embedding generation, SK takes
- * care of creating and storing the index
- */
-
- Console.WriteLine("\nAdding some GitHub file URLs and their descriptions to the semantic memory.");
- var githubFiles = SampleData();
- var i = 0;
- foreach (var entry in githubFiles)
- {
- var result = await memory.SaveReferenceAsync(
- collection: MemoryCollectionName,
- externalSourceName: "GitHub",
- externalId: entry.Key,
- description: entry.Value,
- text: entry.Value);
-
- Console.WriteLine($"#{++i} saved.");
- Console.WriteLine(result);
- }
-
- Console.WriteLine("\n----------------------");
- }
-
- private static Dictionary SampleData()
- {
- return new Dictionary
- {
- ["https://github.com/microsoft/semantic-kernel/blob/main/README.md"]
- = "README: Installation, getting started, and how to contribute",
- ["https://github.com/microsoft/semantic-kernel/blob/main/dotnet/notebooks/02-running-prompts-from-file.ipynb"]
- = "Jupyter notebook describing how to pass prompts from a file to a semantic skill or function",
- ["https://github.com/microsoft/semantic-kernel/blob/main/dotnet/notebooks//00-getting-started.ipynb"]
- = "Jupyter notebook describing how to get started with the Semantic Kernel",
- ["https://github.com/microsoft/semantic-kernel/tree/main/samples/skills/ChatSkill/ChatGPT"]
- = "Sample demonstrating how to create a chat skill interfacing with ChatGPT",
- ["https://github.com/microsoft/semantic-kernel/blob/main/dotnet/src/SemanticKernel/Memory/VolatileMemoryStore.cs"]
- = "C# class that defines a volatile embedding store",
- ["https://github.com/microsoft/semantic-kernel/blob/main/samples/dotnet/KernelHttpServer/README.md"]
- = "README: How to set up a Semantic Kernel Service API using Azure Function Runtime v4",
- ["https://github.com/microsoft/semantic-kernel/blob/main/samples/apps/chat-summary-webapp-react/README.md"]
- = "README: README associated with a sample chat summary react-based webapp",
- };
- }
- }
-}
diff --git a/LLama.Examples/Examples/SemanticKernelPrompt.cs b/LLama.Examples/Examples/SemanticKernelPrompt.cs
deleted file mode 100644
index 0d62e0b3f..000000000
--- a/LLama.Examples/Examples/SemanticKernelPrompt.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-using LLama.Common;
-using Microsoft.SemanticKernel;
-using LLamaSharp.SemanticKernel.TextCompletion;
-using Microsoft.SemanticKernel.TextGeneration;
-using Microsoft.Extensions.DependencyInjection;
-using LLamaSharp.SemanticKernel;
-
-namespace LLama.Examples.Examples
-{
- public class SemanticKernelPrompt
- {
- public static async Task Run()
- {
- string modelPath = UserSettings.GetModelPath();
-
- Console.ForegroundColor = ConsoleColor.Yellow;
- Console.WriteLine("This example is from: " +
- "https://github.com/microsoft/semantic-kernel/blob/main/dotnet/README.md");
-
- // Load weights into memory
- var parameters = new ModelParams(modelPath);
- using var model = await LLamaWeights.LoadFromFileAsync(parameters);
- var ex = new StatelessExecutor(model, parameters);
-
- var builder = Kernel.CreateBuilder();
- builder.Services.AddKeyedSingleton("local-llama", new LLamaSharpTextCompletion(ex));
-
- var kernel = builder.Build();
-
- var prompt = @"{{$input}}
-
-One line TLDR with the fewest words.";
-
- LLamaSharpPromptExecutionSettings settings = new() { MaxTokens = 100 };
- var summarize = kernel.CreateFunctionFromPrompt(prompt, settings);
-
- string text1 = @"
-1st Law of Thermodynamics - Energy cannot be created or destroyed.
-2nd Law of Thermodynamics - For a spontaneous process, the entropy of the universe increases.
-3rd Law of Thermodynamics - A perfect crystal at zero Kelvin has zero entropy.";
-
- string text2 = @"
-1. An object at rest remains at rest, and an object in motion remains in motion at constant speed and in a straight line unless acted on by an unbalanced force.
-2. The acceleration of an object depends on the mass of the object and the amount of force applied.
-3. Whenever one object exerts a force on another object, the second object exerts an equal and opposite on the first.";
-
- Console.WriteLine((await kernel.InvokeAsync(summarize, new() { ["input"] = text1 })).GetValue());
-
- Console.WriteLine((await kernel.InvokeAsync(summarize, new() { ["input"] = text2 })).GetValue());
- }
- }
-}
diff --git a/LLama.Examples/LLama.Examples.csproj b/LLama.Examples/LLama.Examples.csproj
index c108a2ef2..803d9b8be 100644
--- a/LLama.Examples/LLama.Examples.csproj
+++ b/LLama.Examples/LLama.Examples.csproj
@@ -15,9 +15,6 @@
-
-
-
@@ -30,8 +27,6 @@
-
-
diff --git a/LLama.SemanticKernel/LLamaSharp.SemanticKernel.csproj b/LLama.SemanticKernel/LLamaSharp.SemanticKernel.csproj
index 81fdbce8c..e3629cc6e 100644
--- a/LLama.SemanticKernel/LLamaSharp.SemanticKernel.csproj
+++ b/LLama.SemanticKernel/LLamaSharp.SemanticKernel.csproj
@@ -33,10 +33,6 @@
SKEXP0001,SKEXP0052
-
-
-
-
diff --git a/LLama.Unittest/LLama.Unittest.csproj b/LLama.Unittest/LLama.Unittest.csproj
index 80d1a3b88..700ba51c6 100644
--- a/LLama.Unittest/LLama.Unittest.csproj
+++ b/LLama.Unittest/LLama.Unittest.csproj
@@ -124,7 +124,6 @@
-
diff --git a/LLama.Unittest/SemanticKernel/ChatRequestSettingsConverterTests.cs b/LLama.Unittest/SemanticKernel/ChatRequestSettingsConverterTests.cs
deleted file mode 100644
index 42274e2a6..000000000
--- a/LLama.Unittest/SemanticKernel/ChatRequestSettingsConverterTests.cs
+++ /dev/null
@@ -1,107 +0,0 @@
-using LLamaSharp.SemanticKernel;
-using System.Text.Json;
-
-namespace LLama.Unittest.SemanticKernel
-{
- public class ChatRequestSettingsConverterTests
- {
- [Fact]
- public void ChatRequestSettingsConverter_DeserializeWithDefaults()
- {
- // Arrange
- var options = new JsonSerializerOptions();
- options.Converters.Add(new LLamaSharpPromptExecutionSettingsConverter());
- var json = "{}";
-
- // Act
- var requestSettings = JsonSerializer.Deserialize(json, options);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0, requestSettings.FrequencyPenalty);
- Assert.Null(requestSettings.MaxTokens);
- Assert.Equal(0, requestSettings.PresencePenalty);
- Assert.Equal(1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Empty(requestSettings.StopSequences);
- Assert.Equal(0, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Empty(requestSettings.TokenSelectionBiases);
- Assert.Equal(0, requestSettings.TopP);
- }
-
- [Fact]
- public void ChatRequestSettingsConverter_DeserializeWithSnakeCase()
- {
- // Arrange
- var options = new JsonSerializerOptions();
- options.AllowTrailingCommas = true;
- options.Converters.Add(new LLamaSharpPromptExecutionSettingsConverter());
- var json = @"{
- ""frequency_penalty"": 0.5,
- ""max_tokens"": 250,
- ""presence_penalty"": 0.5,
- ""results_per_prompt"": -1,
- ""stop_sequences"": [ ""foo"", ""bar"" ],
- ""temperature"": 0.5,
- ""token_selection_biases"": { ""1"": 2, ""3"": 4 },
- ""top_p"": 0.5,
-}";
-
- // Act
- var requestSettings = JsonSerializer.Deserialize(json, options);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0.5, requestSettings.FrequencyPenalty);
- Assert.Equal(250, requestSettings.MaxTokens);
- Assert.Equal(0.5, requestSettings.PresencePenalty);
- Assert.Equal(-1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Contains("foo", requestSettings.StopSequences);
- Assert.Contains("bar", requestSettings.StopSequences);
- Assert.Equal(0.5, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Equal(2, requestSettings.TokenSelectionBiases[1]);
- Assert.Equal(4, requestSettings.TokenSelectionBiases[3]);
- Assert.Equal(0.5, requestSettings.TopP);
- }
-
- [Fact]
- public void ChatRequestSettingsConverter_DeserializeWithPascalCase()
- {
- // Arrange
- var options = new JsonSerializerOptions();
- options.AllowTrailingCommas = true;
- options.Converters.Add(new LLamaSharpPromptExecutionSettingsConverter());
- var json = @"{
- ""FrequencyPenalty"": 0.5,
- ""MaxTokens"": 250,
- ""PresencePenalty"": 0.5,
- ""ResultsPerPrompt"": -1,
- ""StopSequences"": [ ""foo"", ""bar"" ],
- ""Temperature"": 0.5,
- ""TokenSelectionBiases"": { ""1"": 2, ""3"": 4 },
- ""TopP"": 0.5,
-}";
-
- // Act
- var requestSettings = JsonSerializer.Deserialize(json, options);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0.5, requestSettings.FrequencyPenalty);
- Assert.Equal(250, requestSettings.MaxTokens);
- Assert.Equal(0.5, requestSettings.PresencePenalty);
- Assert.Equal(-1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Contains("foo", requestSettings.StopSequences);
- Assert.Contains("bar", requestSettings.StopSequences);
- Assert.Equal(0.5, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Equal(2, requestSettings.TokenSelectionBiases[1]);
- Assert.Equal(4, requestSettings.TokenSelectionBiases[3]);
- Assert.Equal(0.5, requestSettings.TopP);
- }
- }
-}
diff --git a/LLama.Unittest/SemanticKernel/ChatRequestSettingsTests.cs b/LLama.Unittest/SemanticKernel/ChatRequestSettingsTests.cs
deleted file mode 100644
index d75a8d4b4..000000000
--- a/LLama.Unittest/SemanticKernel/ChatRequestSettingsTests.cs
+++ /dev/null
@@ -1,169 +0,0 @@
-using LLamaSharp.SemanticKernel;
-using Microsoft.SemanticKernel;
-
-namespace LLama.Unittest.SemanticKernel
-{
- public class ChatRequestSettingsTests
- {
- [Fact]
- public void ChatRequestSettings_FromRequestSettingsNull()
- {
- // Arrange
- // Act
- var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(null, null);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0, requestSettings.FrequencyPenalty);
- Assert.Null(requestSettings.MaxTokens);
- Assert.Equal(0, requestSettings.PresencePenalty);
- Assert.Equal(1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Empty(requestSettings.StopSequences);
- Assert.Equal(0, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Empty(requestSettings.TokenSelectionBiases);
- Assert.Equal(0, requestSettings.TopP);
- }
-
- [Fact]
- public void ChatRequestSettings_FromRequestSettingsNullWithMaxTokens()
- {
- // Arrange
- // Act
- var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(null, 200);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0, requestSettings.FrequencyPenalty);
- Assert.Equal(200, requestSettings.MaxTokens);
- Assert.Equal(0, requestSettings.PresencePenalty);
- Assert.Equal(1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Empty(requestSettings.StopSequences);
- Assert.Equal(0, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Empty(requestSettings.TokenSelectionBiases);
- Assert.Equal(0, requestSettings.TopP);
- }
-
- [Fact]
- public void ChatRequestSettings_FromExistingRequestSettings()
- {
- // Arrange
- var originalRequestSettings = new LLamaSharpPromptExecutionSettings()
- {
- FrequencyPenalty = 0.5,
- MaxTokens = 100,
- PresencePenalty = 0.5,
- ResultsPerPrompt = -1,
- StopSequences = new[] { "foo", "bar" },
- Temperature = 0.5,
- TokenSelectionBiases = new Dictionary() { { 1, 2 }, { 3, 4 } },
- TopP = 0.5,
- };
-
- // Act
- var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(originalRequestSettings, requestSettings);
- }
-
- [Fact]
- public void ChatRequestSettings_FromAIRequestSettings()
- {
- // Arrange
- var originalRequestSettings = new PromptExecutionSettings()
- {
- ModelId = "test",
- };
-
- // Act
- var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(originalRequestSettings.ModelId, requestSettings.ModelId);
- }
-
- [Fact]
- public void ChatRequestSettings_FromAIRequestSettingsWithExtraPropertiesInSnakeCase()
- {
- // Arrange
- var originalRequestSettings = new PromptExecutionSettings()
- {
- ModelId = "test",
- ExtensionData = new Dictionary
- {
- { "frequency_penalty", 0.5 },
- { "max_tokens", 250 },
- { "presence_penalty", 0.5 },
- { "results_per_prompt", -1 },
- { "stop_sequences", new [] { "foo", "bar" } },
- { "temperature", 0.5 },
- { "token_selection_biases", new Dictionary() { { 1, 2 }, { 3, 4 } } },
- { "top_p", 0.5 },
- }
- };
-
- // Act
- var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0.5, requestSettings.FrequencyPenalty);
- Assert.Equal(250, requestSettings.MaxTokens);
- Assert.Equal(0.5, requestSettings.PresencePenalty);
- Assert.Equal(-1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Contains("foo", requestSettings.StopSequences);
- Assert.Contains("bar", requestSettings.StopSequences);
- Assert.Equal(0.5, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Equal(2, requestSettings.TokenSelectionBiases[1]);
- Assert.Equal(4, requestSettings.TokenSelectionBiases[3]);
- Assert.Equal(0.5, requestSettings.TopP);
- }
-
- [Fact]
- public void ChatRequestSettings_FromAIRequestSettingsWithExtraPropertiesInPascalCase()
- {
- // Arrange
- var originalRequestSettings = new PromptExecutionSettings()
- {
- ModelId = "test",
- ExtensionData = new Dictionary
- {
- { "FrequencyPenalty", 0.5 },
- { "MaxTokens", 250 },
- { "PresencePenalty", 0.5 },
- { "ResultsPerPrompt", -1 },
- { "StopSequences", new [] { "foo", "bar" } },
- { "Temperature", 0.5 },
- { "TokenSelectionBiases", new Dictionary() { { 1, 2 }, { 3, 4 } } },
- { "TopP", 0.5 },
- }
- };
-
- // Act
- var requestSettings = LLamaSharpPromptExecutionSettings.FromRequestSettings(originalRequestSettings);
-
- // Assert
- Assert.NotNull(requestSettings);
- Assert.Equal(0.5, requestSettings.FrequencyPenalty);
- Assert.Equal(250, requestSettings.MaxTokens);
- Assert.Equal(0.5, requestSettings.PresencePenalty);
- Assert.Equal(-1, requestSettings.ResultsPerPrompt);
- Assert.NotNull(requestSettings.StopSequences);
- Assert.Contains("foo", requestSettings.StopSequences);
- Assert.Contains("bar", requestSettings.StopSequences);
- Assert.Equal(0.5, requestSettings.Temperature);
- Assert.NotNull(requestSettings.TokenSelectionBiases);
- Assert.Equal(2, requestSettings.TokenSelectionBiases[1]);
- Assert.Equal(4, requestSettings.TokenSelectionBiases[3]);
- Assert.Equal(0.5, requestSettings.TopP);
- }
- }
-}
diff --git a/LLama.Unittest/SemanticKernel/ExtensionMethodsTests.cs b/LLama.Unittest/SemanticKernel/ExtensionMethodsTests.cs
deleted file mode 100644
index 41e842737..000000000
--- a/LLama.Unittest/SemanticKernel/ExtensionMethodsTests.cs
+++ /dev/null
@@ -1,37 +0,0 @@
-using LLamaSharp.SemanticKernel;
-
-namespace LLama.Unittest.SemanticKernel
-{
- public class ExtensionMethodsTests
- {
- [Fact]
- public void ToLLamaSharpChatHistory_StateUnderTest_ExpectedBehavior()
- {
- // Arrange
- var chatHistory = new Microsoft.SemanticKernel.ChatCompletion.ChatHistory();
- bool ignoreCase = true;
-
- // Act
- var result = ExtensionMethods.ToLLamaSharpChatHistory(
- chatHistory,
- ignoreCase);
-
- // Assert
- Assert.NotNull(result);
- }
-
- [Fact]
- public void ToLLamaSharpInferenceParams_StateUnderTest_ExpectedBehavior()
- {
- // Arrange
- var requestSettings = new LLamaSharpPromptExecutionSettings();
-
- // Act
- var result = ExtensionMethods.ToLLamaSharpInferenceParams(
- requestSettings);
-
- // Assert
- Assert.NotNull(result);
- }
- }
-}
diff --git a/LLama.Unittest/SemanticKernel/LLamaSharpChatCompletionTests.cs b/LLama.Unittest/SemanticKernel/LLamaSharpChatCompletionTests.cs
deleted file mode 100644
index 0ac1beca0..000000000
--- a/LLama.Unittest/SemanticKernel/LLamaSharpChatCompletionTests.cs
+++ /dev/null
@@ -1,75 +0,0 @@
-using LLama.Abstractions;
-using LLamaSharp.SemanticKernel.ChatCompletion;
-using Microsoft.SemanticKernel;
-using Microsoft.SemanticKernel.ChatCompletion;
-using Moq;
-
-namespace LLama.Unittest.SemanticKernel
-{
- public class LLamaSharpChatCompletionTests
- {
- private Mock mockStatelessExecutor;
-
- public LLamaSharpChatCompletionTests()
- {
- mockStatelessExecutor = new Mock();
- }
-
- private LLamaSharpChatCompletion CreateLLamaSharpChatCompletion()
- {
- return new LLamaSharpChatCompletion(
- mockStatelessExecutor.Object,
- null,
- null,
- null);
- }
-
- [Fact]
- public async Task GetChatMessageContentsAsync_StateUnderTest_ExpectedBehavior()
- {
- // Arrange
- var unitUnderTest = CreateLLamaSharpChatCompletion();
- ChatHistory chatHistory = new ChatHistory();
- PromptExecutionSettings? executionSettings = null;
- Kernel? kernel = null;
- CancellationToken cancellationToken = default;
- mockStatelessExecutor.Setup(e => e.InferAsync(It.IsAny(), It.IsAny(), It.IsAny()))
- .Returns(new List { "test" }.ToAsyncEnumerable());
-
- // Act
- var result = await unitUnderTest.GetChatMessageContentsAsync(
- chatHistory,
- executionSettings,
- kernel,
- cancellationToken);
-
- // Assert
- Assert.True(result.Count > 0);
- }
-
- [Fact]
- public async Task GetStreamingChatMessageContentsAsync_StateUnderTest_ExpectedBehavior()
- {
- // Arrange
- var unitUnderTest = CreateLLamaSharpChatCompletion();
- ChatHistory chatHistory = new ChatHistory();
- PromptExecutionSettings? executionSettings = null;
- Kernel? kernel = null;
- CancellationToken cancellationToken = default;
-
- mockStatelessExecutor.Setup(e => e.InferAsync(It.IsAny(), It.IsAny(), It.IsAny()))
- .Returns(new List { "test" }.ToAsyncEnumerable());
-
- // Act
- await foreach (var result in unitUnderTest.GetStreamingChatMessageContentsAsync(
- chatHistory,
- executionSettings,
- kernel,
- cancellationToken))
- {
- // Assert
- Assert.NotNull(result);
- }
- }
- }
-}
diff --git a/LLama.Unittest/SemanticKernel/LLamaSharpTextCompletionTests.cs b/LLama.Unittest/SemanticKernel/LLamaSharpTextCompletionTests.cs
deleted file mode 100644
index 0ba916a47..000000000
--- a/LLama.Unittest/SemanticKernel/LLamaSharpTextCompletionTests.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using LLama.Abstractions;
-using LLamaSharp.SemanticKernel.TextCompletion;
-using Microsoft.SemanticKernel;
-using Moq;
-
-namespace LLama.Unittest.SemanticKernel
-{
- public sealed class LLamaSharpTextCompletionTests
- : IDisposable
- {
- private MockRepository mockRepository;
- private Mock mockExecutor;
-
- public LLamaSharpTextCompletionTests()
- {
- mockRepository = new MockRepository(MockBehavior.Strict);
- mockExecutor = mockRepository.Create();
- }
-
- public void Dispose()
- {
- mockRepository.VerifyAll();
- }
-
- private LLamaSharpTextCompletion CreateLLamaSharpTextCompletion()
- {
- return new LLamaSharpTextCompletion(
- mockExecutor.Object);
- }
-
- [Fact]
- public async Task GetTextContentsAsync_StateUnderTest_ExpectedBehavior()
- {
- // Arrange
- var unitUnderTest = CreateLLamaSharpTextCompletion();
- string prompt = "Test";
- PromptExecutionSettings? executionSettings = null;
- Kernel? kernel = null;
- CancellationToken cancellationToken = default;
- mockExecutor.Setup(e => e.InferAsync(It.IsAny(), It.IsAny(), It.IsAny()))
- .Returns(new List { "test" }.ToAsyncEnumerable());
-
- // Act
- var result = await unitUnderTest.GetTextContentsAsync(
- prompt,
- executionSettings,
- kernel,
- cancellationToken);
-
- // Assert
- Assert.True(result.Count > 0);
- }
-
- [Fact]
- public async Task GetStreamingTextContentsAsync_StateUnderTest_ExpectedBehavior()
- {
- // Arrange
- var unitUnderTest = CreateLLamaSharpTextCompletion();
- string prompt = "Test";
- PromptExecutionSettings? executionSettings = null;
- Kernel? kernel = null;
- CancellationToken cancellationToken = default;
- mockExecutor.Setup(e => e.InferAsync(It.IsAny(), It.IsAny(), It.IsAny()))
- .Returns(new List { "test" }.ToAsyncEnumerable());
-
- // Act
- await foreach (var result in unitUnderTest.GetStreamingTextContentsAsync(
- prompt,
- executionSettings,
- kernel,
- cancellationToken))
- {
- // Assert
- Assert.NotNull(result);
- }
- }
- }
-}
diff --git a/LLamaSharp.sln b/LLamaSharp.sln
index 5b8aaaef9..820c804b8 100644
--- a/LLamaSharp.sln
+++ b/LLamaSharp.sln
@@ -1,7 +1,7 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 18
-VisualStudioVersion = 18.9.12112.369 stable
+VisualStudioVersion = 18.9.12112.369
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LLama.Unittest", "LLama.Unittest\LLama.Unittest.csproj", "{BAC1CFA9-E6AC-4BD0-A548-A8066D3C467E}"
EndProject
@@ -13,10 +13,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LLama.WebAPI", "LLama.WebAP
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LLama.Web", "LLama.Web\LLama.Web.csproj", "{C3531DB2-1B2B-433C-8DE6-3541E3620DB1}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LLamaSharp.SemanticKernel", "LLama.SemanticKernel\LLamaSharp.SemanticKernel.csproj", "{D98F93E3-B344-4F9D-86BB-FDBF6768B587}"
-EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LLamaSharp.KernelMemory", "LLama.KernelMemory\LLamaSharp.KernelMemory.csproj", "{E5589AE7-B86F-4343-A1CC-8E5D34596E52}"
-EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LLama.Benchmark", "LLama.Benchmark\LLama.Benchmark.csproj", "{90D38FEE-68EA-459E-A4EE-268B9DFA1CD5}"
EndProject
Global
@@ -122,42 +118,6 @@ Global
{C3531DB2-1B2B-433C-8DE6-3541E3620DB1}.Release|Arm64.Build.0 = Release|Any CPU
{C3531DB2-1B2B-433C-8DE6-3541E3620DB1}.Release|x64.ActiveCfg = Release|Any CPU
{C3531DB2-1B2B-433C-8DE6-3541E3620DB1}.Release|x64.Build.0 = Release|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Debug|Arm64.ActiveCfg = Debug|Arm64
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Debug|Arm64.Build.0 = Debug|Arm64
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Debug|x64.ActiveCfg = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Debug|x64.Build.0 = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.GPU|Any CPU.ActiveCfg = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.GPU|Any CPU.Build.0 = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.GPU|Arm64.ActiveCfg = GPU|Arm64
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.GPU|Arm64.Build.0 = GPU|Arm64
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.GPU|x64.ActiveCfg = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.GPU|x64.Build.0 = Debug|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Release|Any CPU.Build.0 = Release|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Release|Arm64.ActiveCfg = Release|Arm64
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Release|Arm64.Build.0 = Release|Arm64
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Release|x64.ActiveCfg = Release|Any CPU
- {D98F93E3-B344-4F9D-86BB-FDBF6768B587}.Release|x64.Build.0 = Release|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Debug|Arm64.ActiveCfg = Debug|Arm64
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Debug|Arm64.Build.0 = Debug|Arm64
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Debug|x64.ActiveCfg = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Debug|x64.Build.0 = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.GPU|Any CPU.ActiveCfg = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.GPU|Any CPU.Build.0 = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.GPU|Arm64.ActiveCfg = GPU|Arm64
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.GPU|Arm64.Build.0 = GPU|Arm64
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.GPU|x64.ActiveCfg = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.GPU|x64.Build.0 = Debug|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Release|Any CPU.Build.0 = Release|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Release|Arm64.ActiveCfg = Release|Arm64
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Release|Arm64.Build.0 = Release|Arm64
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Release|x64.ActiveCfg = Release|Any CPU
- {E5589AE7-B86F-4343-A1CC-8E5D34596E52}.Release|x64.Build.0 = Release|Any CPU
{90D38FEE-68EA-459E-A4EE-268B9DFA1CD5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{90D38FEE-68EA-459E-A4EE-268B9DFA1CD5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{90D38FEE-68EA-459E-A4EE-268B9DFA1CD5}.Debug|Arm64.ActiveCfg = Debug|Any CPU