From fe3e324fb83284cfcef00aae73ae731af0a55ca2 Mon Sep 17 00:00:00 2001 From: xbotter Date: Mon, 20 Nov 2023 21:20:10 +0800 Subject: [PATCH] refactor semantic kernel Plugin --- .../SemanticKernelTextEmbeddingProvider.cs | 3 +-- ...emanticKernelChatCompletionProviderTests.cs | 8 +++----- .../SemanticKernelPluginTests.cs | 18 ++++++++++-------- ...emanticKernelTextCompletionProviderTests.cs | 5 +---- 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/src/Plugins/BotSharp.Plugin.SemanticKernel/SemanticKernelTextEmbeddingProvider.cs b/src/Plugins/BotSharp.Plugin.SemanticKernel/SemanticKernelTextEmbeddingProvider.cs index 1b62c367..b44c0108 100644 --- a/src/Plugins/BotSharp.Plugin.SemanticKernel/SemanticKernelTextEmbeddingProvider.cs +++ b/src/Plugins/BotSharp.Plugin.SemanticKernel/SemanticKernelTextEmbeddingProvider.cs @@ -21,10 +21,9 @@ namespace BotSharp.Plugin.SemanticKernel /// /// Constructor of /// - public SemanticKernelTextEmbeddingProvider(ITextEmbeddingGeneration embedding, int dimension) + public SemanticKernelTextEmbeddingProvider(ITextEmbeddingGeneration embedding) { this._embedding = embedding; - Dimension = dimension; } /// diff --git a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelChatCompletionProviderTests.cs b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelChatCompletionProviderTests.cs index 550a7b77..777192ed 100644 --- a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelChatCompletionProviderTests.cs +++ b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelChatCompletionProviderTests.cs @@ -34,7 +34,7 @@ namespace BotSharp.Plugin.SemanticKernel.Tests _chatCompletionMock = new Mock(); _servicesMock = new Mock(); _tokenStatisticsMock = new Mock(); - _provider = new SemanticKernelChatCompletionProvider(_chatCompletionMock, _servicesMock.Object, _tokenStatisticsMock.Object); + _provider = new SemanticKernelChatCompletionProvider(_chatCompletionMock.Object, _servicesMock.Object, _tokenStatisticsMock.Object); } [Fact] @@ -55,15 +55,13 @@ namespace BotSharp.Plugin.SemanticKernel.Tests .Returns(agentService.Object); var chatHistoryMock = new Mock(); - var chatCompletionMock = new Mock(); - chatCompletionMock.Setup(x => x.CreateNewChat(It.IsAny())).Returns(chatHistoryMock.Object); - chatCompletionMock.Setup(x => x.GetChatCompletionsAsync(chatHistoryMock.Object, It.IsAny(), It.IsAny())) + _chatCompletionMock.Setup(x => x.CreateNewChat(It.IsAny())).Returns(chatHistoryMock.Object); + _chatCompletionMock.Setup(x => x.GetChatCompletionsAsync(chatHistoryMock.Object, It.IsAny(), It.IsAny())) .ReturnsAsync(new List { new ResultHelper("How can I help you?") }); - _kernelMock.Setup(x => x.GetService(null)).Returns(chatCompletionMock.Object); // Act var result = _provider.GetChatCompletions(agent, conversations); diff --git a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelPluginTests.cs b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelPluginTests.cs index a1ba7214..7e567d56 100644 --- a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelPluginTests.cs +++ b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelPluginTests.cs @@ -1,5 +1,7 @@ using BotSharp.Abstraction.Conversations; using BotSharp.Abstraction.MLTasks; +using BotSharp.Abstraction.VectorStorage; +using BotSharp.Plugin.SemanticKernel.UnitTests.Helpers; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.SemanticKernel; @@ -15,21 +17,21 @@ namespace BotSharp.Plugin.SemanticKernel.Tests var services = new ServiceCollection(); var config = new ConfigurationBuilder().Build(); var plugin = new SemanticKernelPlugin(); - services.AddScoped(x => - { - return new KernelBuilder() - .WithAzureOpenAIChatCompletionService("test", "test", "test") - .Build(); - }); - services.AddScoped(x=> Mock.Of()); + services.AddScoped(x => Mock.Of()); + services.AddScoped(x => Mock.Of()); + services.AddScoped(x => Mock.Of()); + services.AddScoped(x => Mock.Of()); + services.AddScoped(x => Mock.Of()); plugin.RegisterDI(services, config); - var provider = services.BuildServiceProvider(); + var provider = services.BuildServiceProvider().CreateScope().ServiceProvider; Assert.NotNull(provider.GetService()); Assert.NotNull(provider.GetService()); + Assert.NotNull(provider.GetService()); + Assert.NotNull(provider.GetService()); } } } \ No newline at end of file diff --git a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelTextCompletionProviderTests.cs b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelTextCompletionProviderTests.cs index 1e463cdf..89188973 100644 --- a/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelTextCompletionProviderTests.cs +++ b/tests/BotSharp.Plugin.SemanticKernel.UnitTests/SemanticKernelTextCompletionProviderTests.cs @@ -37,10 +37,7 @@ namespace BotSharp.Plugin.SemanticKernel.Tests var text = "Hello"; var expected = "Hello, world!"; - var _kernel = new KernelBuilder() - .WithAIService("", new SemanticKernelHelper(expected)) - .Build(); - var provider = new SemanticKernelTextCompletionProvider(_kernel, _services, _tokenStatistics); + var provider = new SemanticKernelTextCompletionProvider(new SemanticKernelHelper(expected), _services, _tokenStatistics); // Act var result = await provider.GetCompletion(text, "agent1", "message1");