From 6c96994df56545398cda20bed9bb320a6685144a Mon Sep 17 00:00:00 2001 From: Devis Lucato Date: Sun, 24 Dec 2023 11:31:46 -0800 Subject: [PATCH] Add Postgres support to KM Service (#219) ## Motivation and Context (Why the change? What's the scenario?) Allow to run the service with Postgres. Allow to run the service with connectors developed in separate repositories. ## High level description (Approach, Design) * Change Service dependencies, use nugets instead of using direct references to latest code in main. * Add Postgres dependency to Service project * Extend `dotnet run setup` to allow choosing Postgres option Postgres package: https://www.nuget.org/packages/Microsoft.KernelMemory.Postgres Postgres package src: https://github.com/microsoft/kernel-memory-postgres --- Directory.Packages.props | 2 +- KernelMemory.sln | 7 + .../002-dotnet-SemanticKernelPlugin.csproj | 2 +- .../203-dotnet-using-core-nuget.csproj | 2 +- service/Service/Service.csproj | 50 ++- service/Service/ServiceConfiguration.cs | 28 +- service/Service/appsettings.json | 11 +- .../TestHelpers/BaseTestCase.cs | 1 + .../tests/FunctionalTests3P/FilteringTest.cs | 227 +++++++++++++ .../FunctionalTests3P.csproj | 38 +++ .../FunctionalTests3P/IndexDeletionTest.cs | 52 +++ .../tests/FunctionalTests3P/IndexListTest.cs | 48 +++ .../FunctionalTests3P/MissingIndexTest.cs | 67 ++++ .../TestHelpers/BaseTestCase.cs | 135 ++++++++ .../TestHelpers/RedirectConsole.cs | 321 ++++++++++++++++++ .../FunctionalTests3P/TestHelpers/Startup.cs | 23 ++ .../FunctionalTests3P/TestHelpers/Usings.cs | 3 + .../tests/FunctionalTests3P/appsettings.json | 46 +++ .../FunctionalTests3P/file1-NASA-news.pdf | Bin 0 -> 218143 bytes .../InteractiveSetup/InteractiveSetup.csproj | 5 +- tools/InteractiveSetup/Main.cs | 33 ++ 21 files changed, 1085 insertions(+), 16 deletions(-) create mode 100644 service/tests/FunctionalTests3P/FilteringTest.cs create mode 100644 service/tests/FunctionalTests3P/FunctionalTests3P.csproj create mode 100644 service/tests/FunctionalTests3P/IndexDeletionTest.cs create mode 100644 service/tests/FunctionalTests3P/IndexListTest.cs create mode 100644 service/tests/FunctionalTests3P/MissingIndexTest.cs create mode 100644 service/tests/FunctionalTests3P/TestHelpers/BaseTestCase.cs create mode 100644 service/tests/FunctionalTests3P/TestHelpers/RedirectConsole.cs create mode 100644 service/tests/FunctionalTests3P/TestHelpers/Startup.cs create mode 100644 service/tests/FunctionalTests3P/TestHelpers/Usings.cs create mode 100644 service/tests/FunctionalTests3P/appsettings.json create mode 100644 service/tests/FunctionalTests3P/file1-NASA-news.pdf diff --git a/Directory.Packages.props b/Directory.Packages.props index 9a4c785f3..f21875c5e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,7 +10,7 @@ - + diff --git a/KernelMemory.sln b/KernelMemory.sln index be1c3058d..8b26effb2 100644 --- a/KernelMemory.sln +++ b/KernelMemory.sln @@ -183,6 +183,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceFunctionalTests", "s EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ManualTests", "service\tests\ManualTests\ManualTests.csproj", "{F325396A-8320-45CE-9DC9-8A679B2E78A4}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FunctionalTests3P", "service\tests\FunctionalTests3P\FunctionalTests3P.csproj", "{C1F052ED-4667-49D8-AA7D-21F8039EE7C7}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -227,6 +229,7 @@ Global {EDFDA12E-BA10-4A00-BBE7-1C10A0B0F1A6} = {0A43C65C-6007-4BB4-B3FE-8D439FC91841} {BCD0255F-2F35-4B6D-BBF2-2FB43B6F95FA} = {5E7DD43D-B5E7-4827-B57D-447E5B428589} {F325396A-8320-45CE-9DC9-8A679B2E78A4} = {5E7DD43D-B5E7-4827-B57D-447E5B428589} + {C1F052ED-4667-49D8-AA7D-21F8039EE7C7} = {5E7DD43D-B5E7-4827-B57D-447E5B428589} EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {8A9FA587-7EBA-4D43-BE47-38D798B1C74C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -341,5 +344,9 @@ Global {F325396A-8320-45CE-9DC9-8A679B2E78A4}.Debug|Any CPU.Build.0 = Debug|Any CPU {F325396A-8320-45CE-9DC9-8A679B2E78A4}.Release|Any CPU.ActiveCfg = Release|Any CPU {F325396A-8320-45CE-9DC9-8A679B2E78A4}.Release|Any CPU.Build.0 = Release|Any CPU + {C1F052ED-4667-49D8-AA7D-21F8039EE7C7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C1F052ED-4667-49D8-AA7D-21F8039EE7C7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C1F052ED-4667-49D8-AA7D-21F8039EE7C7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C1F052ED-4667-49D8-AA7D-21F8039EE7C7}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection EndGlobal diff --git a/examples/002-dotnet-SemanticKernelPlugin/002-dotnet-SemanticKernelPlugin.csproj b/examples/002-dotnet-SemanticKernelPlugin/002-dotnet-SemanticKernelPlugin.csproj index dc7747981..22f7e3cef 100644 --- a/examples/002-dotnet-SemanticKernelPlugin/002-dotnet-SemanticKernelPlugin.csproj +++ b/examples/002-dotnet-SemanticKernelPlugin/002-dotnet-SemanticKernelPlugin.csproj @@ -13,7 +13,7 @@ - + diff --git a/examples/203-dotnet-using-core-nuget/203-dotnet-using-core-nuget.csproj b/examples/203-dotnet-using-core-nuget/203-dotnet-using-core-nuget.csproj index bca8e8d71..6ed04ee1e 100644 --- a/examples/203-dotnet-using-core-nuget/203-dotnet-using-core-nuget.csproj +++ b/examples/203-dotnet-using-core-nuget/203-dotnet-using-core-nuget.csproj @@ -10,7 +10,7 @@ - + diff --git a/service/Service/Service.csproj b/service/Service/Service.csproj index 89acf1b27..07d632189 100644 --- a/service/Service/Service.csproj +++ b/service/Service/Service.csproj @@ -4,16 +4,60 @@ net7.0 Microsoft.KernelMemory.ServiceAssembly Microsoft.KernelMemory.Service + false 5ee045b0-aea3-4f08-8d31-32d1a6f8fed0 $(NoWarn);CA2007,CA1724,CA2254,CA1031,CS1591,CA1861,CA1303,SKEXP0001 + - - - + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + \ No newline at end of file diff --git a/service/Service/ServiceConfiguration.cs b/service/Service/ServiceConfiguration.cs index 504e76208..464a5ea52 100644 --- a/service/Service/ServiceConfiguration.cs +++ b/service/Service/ServiceConfiguration.cs @@ -17,6 +17,7 @@ using Microsoft.KernelMemory.Pipeline.Queue.AzureQueues; using Microsoft.KernelMemory.Pipeline.Queue.DevTools; using Microsoft.KernelMemory.Pipeline.Queue.RabbitMq; +using Microsoft.KernelMemory.Postgres; namespace Microsoft.KernelMemory.Service; @@ -277,6 +278,16 @@ private void ConfigureIngestionMemoryDb(IKernelMemoryBuilder builder) { switch (type) { + default: + throw new ConfigurationException( + $"Unknown Memory DB option '{type}'. " + + "To use a custom Memory DB, set the configuration value to an empty string, " + + "and inject the custom implementation using `IKernelMemoryBuilder.WithCustomMemoryDb(...)`"); + + case "": + // NOOP - allow custom implementations, via WithCustomMemoryDb() + break; + case string x when x.Equals("AzureAISearch", StringComparison.OrdinalIgnoreCase): { var instance = this.GetServiceInstance(builder, @@ -295,6 +306,15 @@ private void ConfigureIngestionMemoryDb(IKernelMemoryBuilder builder) break; } + case string x when x.Equals("Postgres", StringComparison.OrdinalIgnoreCase): + { + var instance = this.GetServiceInstance(builder, + s => s.AddPostgresAsMemoryDb(this.GetServiceConfig("Postgres")) + ); + builder.AddIngestionMemoryDb(instance); + break; + } + case string x when x.Equals("SimpleVectorDb", StringComparison.OrdinalIgnoreCase): { var instance = this.GetServiceInstance(builder, @@ -312,10 +332,6 @@ private void ConfigureIngestionMemoryDb(IKernelMemoryBuilder builder) builder.AddIngestionMemoryDb(instance); break; } - - default: - // NOOP - allow custom implementations, via WithCustomMemoryDb() - break; } } } @@ -359,6 +375,10 @@ private void ConfigureRetrievalMemoryDb(IKernelMemoryBuilder builder) builder.Services.AddQdrantAsMemoryDb(this.GetServiceConfig("Qdrant")); break; + case string x when x.Equals("Postgres", StringComparison.OrdinalIgnoreCase): + builder.Services.AddPostgresAsMemoryDb(this.GetServiceConfig("Postgres")); + break; + case string x when x.Equals("SimpleVectorDb", StringComparison.OrdinalIgnoreCase): builder.Services.AddSimpleVectorDbAsMemoryDb(this.GetServiceConfig("SimpleVectorDb")); break; diff --git a/service/Service/appsettings.json b/service/Service/appsettings.json index 2ce478309..9e6b1f0de 100644 --- a/service/Service/appsettings.json +++ b/service/Service/appsettings.json @@ -57,7 +57,7 @@ "EmbeddingGeneratorTypes": [ ], // Vectors can be written to multiple storages, e.g. for data migration, A/B testing, etc. - // "AzureAISearch", "Qdrant", "SimpleVectorDb" + // "AzureAISearch", "Qdrant", "Postgres", "SimpleVectorDb" "MemoryDbTypes": [ "AzureAISearch" ], @@ -78,7 +78,7 @@ // "AzureOpenAIEmbedding" or "OpenAI" // This is the generator registered for `ITextEmbeddingGeneration` dependency injection. "EmbeddingGeneratorType": "", - // "AzureAISearch", "Qdrant", "SimpleVectorDb" + // "AzureAISearch", "Qdrant", "Postgres", "SimpleVectorDb" "MemoryDbType": "AzureAISearch", // Search client settings "SearchClient": { @@ -168,6 +168,13 @@ "Endpoint": "http://127.0.0.1:6333", "APIKey": "", }, + "Postgres": { + // Postgres instance connection string + "ConnectionString": "Host=localhost;Port=5432;Username=user;Password=", + // Mandatory prefix to add to the name of table managed by KM, + // e.g. to exclude other tables in the same schema. + "TableNamePrefix": "km-" + }, "AzureOpenAIText": { // "ApiKey" or "AzureIdentity" // AzureIdentity: use automatic AAD authentication mechanism. You can test locally diff --git a/service/tests/FunctionalTests/TestHelpers/BaseTestCase.cs b/service/tests/FunctionalTests/TestHelpers/BaseTestCase.cs index ab37e96f5..a2af74076 100644 --- a/service/tests/FunctionalTests/TestHelpers/BaseTestCase.cs +++ b/service/tests/FunctionalTests/TestHelpers/BaseTestCase.cs @@ -23,6 +23,7 @@ public abstract class BaseTestCase : IDisposable protected IConfiguration QdrantConfiguration => this.ServiceConfiguration.GetSection("Qdrant"); protected IConfiguration AzureAISearchConfiguration => this.ServiceConfiguration.GetSection("AzureAISearch"); + // IMPORTANT: install Xunit.DependencyInjection package protected BaseTestCase(IConfiguration cfg, ITestOutputHelper output) { this._cfg = cfg; diff --git a/service/tests/FunctionalTests3P/FilteringTest.cs b/service/tests/FunctionalTests3P/FilteringTest.cs new file mode 100644 index 000000000..326d97738 --- /dev/null +++ b/service/tests/FunctionalTests3P/FilteringTest.cs @@ -0,0 +1,227 @@ +// Copyright (c) Microsoft. All rights reserved. + +using FunctionalTests3P.TestHelpers; +using Microsoft.KernelMemory; +using Xunit.Abstractions; + +namespace FunctionalTests3P; + +public class FilteringTest : BaseTestCase +{ + public FilteringTest(IConfiguration cfg, ITestOutputHelper output) : base(cfg, output) + { + } + + [Theory] + [InlineData("postgres")] + [InlineData("simple_volatile")] + [InlineData("az_ai_search")] + public async Task ItSupportsASingleFilter(string memoryType) + { + var memory = this.GetServerlessMemory(memoryType); + + string indexName = Guid.NewGuid().ToString("D"); + const string Id = "file1-NASA-news.pdf"; + const string Found = "spacecraft"; + + this.Log("Uploading document"); + await memory.ImportDocumentAsync( + new Document(Id) + .AddFile("file1-NASA-news.pdf") + .AddTag("type", "news") + .AddTag("user", "admin") + .AddTag("user", "owner"), + index: indexName, + steps: Constants.PipelineWithoutSummary); + + while (!await memory.IsDocumentReadyAsync(documentId: Id, index: indexName)) + { + this.Log("Waiting for memory ingestion to complete..."); + await Task.Delay(TimeSpan.FromSeconds(2)); + } + + // Simple filter: unknown user cannot see the memory + var answer = await memory.AskAsync("What is Orion?", filter: MemoryFilters.ByTag("user", "someone"), index: indexName); + this.Log(answer.Result); + Assert.Contains(NotFound, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Simple filter: test AND logic: valid type + invalid user + answer = await memory.AskAsync("What is Orion?", filter: MemoryFilters.ByTag("type", "news").ByTag("user", "someone"), index: indexName); + this.Log(answer.Result); + Assert.Contains(NotFound, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Simple filter: test AND logic: invalid type + valid user + answer = await memory.AskAsync("What is Orion?", filter: MemoryFilters.ByTag("type", "fact").ByTag("user", "owner"), index: indexName); + this.Log(answer.Result); + Assert.Contains(NotFound, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Simple filter: known user can see the memory + answer = await memory.AskAsync("What is Orion?", filter: MemoryFilters.ByTag("user", "admin"), index: indexName); + this.Log(answer.Result); + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Simple filter: known user can see the memory + answer = await memory.AskAsync("What is Orion?", filter: MemoryFilters.ByTag("user", "owner"), index: indexName); + this.Log(answer.Result); + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Simple filter: test AND logic with correct values + answer = await memory.AskAsync("What is Orion?", filter: MemoryFilters.ByTag("type", "news").ByTag("user", "owner"), index: indexName); + this.Log(answer.Result); + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + this.Log("Deleting memories extracted from the document"); + await memory.DeleteDocumentAsync(Id, index: indexName); + + this.Log("Deleting index"); + await memory.DeleteIndexAsync(indexName); + } + + [Theory] + [InlineData("postgres")] + [InlineData("simple_volatile")] + [InlineData("az_ai_search")] + public async Task ItSupportsMultipleFilters(string memoryType) + { + var memory = this.GetServerlessMemory(memoryType); + + string indexName = Guid.NewGuid().ToString("D"); + Console.WriteLine($"Index name: {indexName}"); + + const string Id = "file1-NASA-news.pdf"; + const string Found = "spacecraft"; + + this.Log("Uploading document"); + await memory.ImportDocumentAsync( + new Document(Id) + .AddFile("file1-NASA-news.pdf") + .AddTag("type", "news") + .AddTag("user", "admin") + .AddTag("user", "owner"), + index: indexName, + steps: Constants.PipelineWithoutSummary); + + while (!await memory.IsDocumentReadyAsync(documentId: Id, index: indexName)) + { + this.Log("Waiting for memory ingestion to complete..."); + await Task.Delay(TimeSpan.FromSeconds(2)); + } + + // Multiple filters: unknown users cannot see the memory + var answer = await memory.AskAsync("What is Orion?", filters: new List + { + MemoryFilters.ByTag("user", "someone1"), + MemoryFilters.ByTag("user", "someone2"), + }, index: indexName); + this.Log(answer.Result); + Assert.Contains(NotFound, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Multiple filters: unknown users cannot see the memory even if the type is correct (testing AND logic) + answer = await memory.AskAsync("What is Orion?", filters: new List + { + MemoryFilters.ByTag("user", "someone1").ByTag("type", "news"), + MemoryFilters.ByTag("user", "someone2").ByTag("type", "news"), + }, index: indexName); + this.Log(answer.Result); + Assert.Contains(NotFound, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Multiple filters: AND + OR logic works + answer = await memory.AskAsync("What is Orion?", filters: new List + { + MemoryFilters.ByTag("user", "someone1").ByTag("type", "news"), + MemoryFilters.ByTag("user", "admin").ByTag("type", "fact"), + }, index: indexName); + this.Log(answer.Result); + Assert.Contains(NotFound, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Multiple filters: OR logic works + answer = await memory.AskAsync("What is Orion?", filters: new List + { + MemoryFilters.ByTag("user", "someone1"), + MemoryFilters.ByTag("user", "admin"), + }, index: indexName); + this.Log(answer.Result); + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Multiple filters: OR logic works + answer = await memory.AskAsync("What is Orion?", filters: new List + { + MemoryFilters.ByTag("user", "someone1").ByTag("type", "news"), + MemoryFilters.ByTag("user", "admin").ByTag("type", "news"), + }, index: indexName); + this.Log(answer.Result); + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + this.Log("Deleting memories extracted from the document"); + await memory.DeleteDocumentAsync(Id, index: indexName); + + this.Log("Deleting index"); + await memory.DeleteIndexAsync(indexName); + } + + [Theory] + [InlineData("postgres")] + [InlineData("simple_volatile")] + [InlineData("az_ai_search")] + public async Task ItIgnoresEmptyFilters(string memoryType) + { + // Arrange + var memory = this.GetServerlessMemory(memoryType); + + string indexName = Guid.NewGuid().ToString("D"); + const string Id = "file1-NASA-news.pdf"; + const string Found = "spacecraft"; + + this.Log("Uploading document"); + await memory.ImportDocumentAsync( + new Document(Id) + .AddFile("file1-NASA-news.pdf") + .AddTag("type", "news") + .AddTag("user", "admin") + .AddTag("user", "owner"), + index: indexName, + steps: Constants.PipelineWithoutSummary); + + while (!await memory.IsDocumentReadyAsync(documentId: Id, index: indexName)) + { + this.Log("Waiting for memory ingestion to complete..."); + await Task.Delay(TimeSpan.FromSeconds(2)); + } + + const string Question = "What is Orion?"; + + // Act + // Simple filter: empty filters have no impact + var answer = await memory.AskAsync(Question, filter: new(), index: indexName); + + // Retry for Azure AI Search, to let the index populate + for (int i = 0; i < 4; i++) + { + if (memoryType == "az_ai_search" && !answer.Result.Contains(Found, StringComparison.OrdinalIgnoreCase)) + { + await Task.Delay(TimeSpan.FromSeconds(2)); + answer = await memory.AskAsync(Question, filter: new(), index: indexName); + } + } + + // Assert + this.Log(answer.Result); + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Act + // Multiple filters: empty filters have no impact + answer = await memory.AskAsync(Question, + filters: new List { new() }, index: indexName); + this.Log(answer.Result); + + // Assert + Assert.Contains(Found, answer.Result, StringComparison.OrdinalIgnoreCase); + + // Clean up + this.Log("Deleting memories extracted from the document"); + await memory.DeleteDocumentAsync(Id, index: indexName); + + this.Log("Deleting index"); + await memory.DeleteIndexAsync(indexName); + } +} diff --git a/service/tests/FunctionalTests3P/FunctionalTests3P.csproj b/service/tests/FunctionalTests3P/FunctionalTests3P.csproj new file mode 100644 index 000000000..4d546d2cc --- /dev/null +++ b/service/tests/FunctionalTests3P/FunctionalTests3P.csproj @@ -0,0 +1,38 @@ + + + + false + net7.0 + true + Microsoft.FunctionalTests3P + enable + false + 5ee045b0-aea3-4f08-8d31-32d1a6f8fed0 + $(NoWarn);IDE1006,CA1303,CA1307,CA1859,CA2007,CA2201,CS1591,CA1861,SKEXP0001 + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + Always + + + + \ No newline at end of file diff --git a/service/tests/FunctionalTests3P/IndexDeletionTest.cs b/service/tests/FunctionalTests3P/IndexDeletionTest.cs new file mode 100644 index 000000000..ef7c03631 --- /dev/null +++ b/service/tests/FunctionalTests3P/IndexDeletionTest.cs @@ -0,0 +1,52 @@ +// Copyright (c) Microsoft. All rights reserved. + +using FunctionalTests3P.TestHelpers; +using Xunit.Abstractions; + +namespace FunctionalTests3P; + +public class IndexDeletionTest : BaseTestCase +{ + public IndexDeletionTest(IConfiguration cfg, ITestOutputHelper output) : base(cfg, output) + { + } + + [Theory] + [InlineData("postgres")] + [InlineData("simple_volatile")] + [InlineData("az_ai_search")] + public async Task ItDeletesIndexes(string memoryType) + { + // Arrange + var memory = this.GetServerlessMemory(memoryType); + + // Act + await memory.ImportTextAsync( + text: "this is a test", + documentId: "text1", + index: "index1", + steps: new[] { "extract", "partition", "gen_embeddings", "save_records" }); + + await memory.ImportTextAsync( + text: "this is a test", + documentId: "text2", + index: "index1", + steps: new[] { "extract", "partition", "gen_embeddings", "save_records" }); + + await memory.ImportTextAsync( + text: "this is a test", + documentId: "text3", + index: "index2", + steps: new[] { "extract", "partition", "gen_embeddings", "save_records" }); + + await memory.ImportTextAsync( + text: "this is a test", + documentId: "text4", + index: "index2", + steps: new[] { "extract", "partition", "gen_embeddings", "save_records" }); + + // Assert (no exception occurs, manual verification of collection being deleted) + await memory.DeleteDocumentAsync(documentId: "text1", index: "index1"); + await memory.DeleteIndexAsync(index: "index2"); + } +} diff --git a/service/tests/FunctionalTests3P/IndexListTest.cs b/service/tests/FunctionalTests3P/IndexListTest.cs new file mode 100644 index 000000000..bb45072bd --- /dev/null +++ b/service/tests/FunctionalTests3P/IndexListTest.cs @@ -0,0 +1,48 @@ +// Copyright (c) Microsoft. All rights reserved. + +using FunctionalTests3P.TestHelpers; +using Microsoft.KernelMemory; +using Xunit.Abstractions; + +namespace FunctionalTests3P; + +public class IndexListTest : BaseTestCase +{ + public IndexListTest( + IConfiguration cfg, + ITestOutputHelper output) : base(cfg, output) + { + } + + [Theory] + [InlineData("postgres")] + [InlineData("simple_volatile")] + [InlineData("az_ai_search")] + public async Task ItListsIndexes(string memoryType) + { + // Arrange + var memory = this.GetServerlessMemory(memoryType); + string indexName1 = Guid.NewGuid().ToString("D"); + string indexName2 = Guid.NewGuid().ToString("D"); + Console.WriteLine("Index 1:" + indexName1); + Console.WriteLine("Index 2:" + indexName2); + await memory.ImportTextAsync("text1", index: indexName1, steps: Constants.PipelineWithoutSummary); + await memory.ImportTextAsync("text2", index: indexName2, steps: Constants.PipelineWithoutSummary); + + // Act + List list = (await memory.ListIndexesAsync()).ToList(); + Console.WriteLine("Indexes found:"); + foreach (var index in list) + { + Console.WriteLine(" - " + index.Name); + } + + // Clean up before exceptions can occur + await memory.DeleteIndexAsync(indexName1); + await memory.DeleteIndexAsync(indexName2); + + // Assert + Assert.True(list.Any(x => x.Name == indexName1)); + Assert.True(list.Any(x => x.Name == indexName2)); + } +} diff --git a/service/tests/FunctionalTests3P/MissingIndexTest.cs b/service/tests/FunctionalTests3P/MissingIndexTest.cs new file mode 100644 index 000000000..9382e0d57 --- /dev/null +++ b/service/tests/FunctionalTests3P/MissingIndexTest.cs @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft. All rights reserved. + +using FunctionalTests3P.TestHelpers; +using Microsoft.KernelMemory; +using Xunit.Abstractions; + +namespace FunctionalTests3P; + +public class MissingIndexTest : BaseTestCase +{ + public MissingIndexTest(IConfiguration cfg, ITestOutputHelper output) : base(cfg, output) + { + } + + [Theory] + [InlineData("postgres")] + [InlineData("simple_volatile")] + [InlineData("az_ai_search")] + public async Task ItHandlesMissingIndexesConsistently(string memoryType) + { + // Arrange + var memory = this.GetServerlessMemory(memoryType); + string indexName = Guid.NewGuid().ToString("D"); + await memory.DeleteIndexAsync(indexName); + + // Act: verify the index doesn't exist + IEnumerable list = await memory.ListIndexesAsync(); + Assert.False(list.Any(x => x.Name == indexName)); + + // Act: Delete a non-existing index, no exception + await memory.DeleteIndexAsync(indexName); + + // Act: Search a non-existing index + var answer = await memory.AskAsync("What's the number after 9?", index: indexName); + Assert.Equal(NotFound, answer.Result); + + // Act: Search a non-existing index + var searchResult = await memory.SearchAsync("some query", index: indexName); + Assert.Equal(0, searchResult.Results.Count); + + // Act: delete doc from non existing index + await memory.DeleteDocumentAsync(documentId: Guid.NewGuid().ToString("D"), index: indexName); + + // Act: get status of non existing doc/index + bool isReady = await memory.IsDocumentReadyAsync(documentId: Guid.NewGuid().ToString("D"), index: indexName); + Assert.Equal(false, isReady); + + // Act: get status of non existing doc/index + DataPipelineStatus? status = await memory.GetDocumentStatusAsync(documentId: Guid.NewGuid().ToString("D"), index: indexName); + Assert.Null(status); + + // Assert: verify the index doesn't exist yet + list = await memory.ListIndexesAsync(); + Assert.False(list.Any(x => x.Name == indexName)); + + // Act: import into a non existing index - the index is created + var id = await memory.ImportTextAsync("some text", documentId: "foo", index: indexName); + Assert.NotEmpty(id); + + // Assert: verify the index has been created + list = await memory.ListIndexesAsync(); + Assert.True(list.Any(x => x.Name == indexName)); + + // clean up + await memory.DeleteIndexAsync(indexName); + } +} diff --git a/service/tests/FunctionalTests3P/TestHelpers/BaseTestCase.cs b/service/tests/FunctionalTests3P/TestHelpers/BaseTestCase.cs new file mode 100644 index 000000000..730eccfab --- /dev/null +++ b/service/tests/FunctionalTests3P/TestHelpers/BaseTestCase.cs @@ -0,0 +1,135 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.Reflection; +using Microsoft.KernelMemory; +using Microsoft.KernelMemory.ContentStorage.DevTools; +using Microsoft.KernelMemory.FileSystem.DevTools; +using Microsoft.KernelMemory.MemoryStorage.DevTools; +using Microsoft.KernelMemory.Postgres; +using Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter; +using Xunit.Abstractions; + +namespace FunctionalTests3P.TestHelpers; + +public abstract class BaseTestCase : IDisposable +{ + protected const string NotFound = "INFO NOT FOUND"; + + private readonly IConfiguration _cfg; + private readonly RedirectConsole _output; + + protected IConfiguration Configuration => this._cfg; + protected IConfiguration ServiceConfiguration => this.Configuration.GetSection("Services"); + protected IConfiguration OpenAIConfiguration => this.ServiceConfiguration.GetSection("OpenAI"); + protected IConfiguration QdrantConfiguration => this.ServiceConfiguration.GetSection("Qdrant"); + protected IConfiguration AzureAISearchConfiguration => this.ServiceConfiguration.GetSection("AzureAISearch"); + protected IConfiguration PostgresConfiguration => this.ServiceConfiguration.GetSection("Postgres"); + + // IMPORTANT: install Xunit.DependencyInjection package + protected BaseTestCase(IConfiguration cfg, ITestOutputHelper output) + { + this._cfg = cfg; + this._output = new RedirectConsole(output); + Console.SetOut(this._output); + } + + protected IKernelMemory GetServerlessMemory(string memoryType) + { + var openAIKey = this.OpenAIConfiguration.GetValue("APIKey") + ?? throw new TestCanceledException("OpenAI API key is missing"); + + switch (memoryType) + { + case "default": + return new KernelMemoryBuilder() + .WithSearchClientConfig(new SearchClientConfig { EmptyAnswer = NotFound }) + .WithOpenAIDefaults(openAIKey) + .Build(); + + case "simple_on_disk": + return new KernelMemoryBuilder() + .WithSearchClientConfig(new SearchClientConfig { EmptyAnswer = NotFound }) + .WithOpenAIDefaults(openAIKey) + .WithSimpleVectorDb(new SimpleVectorDbConfig { Directory = "_vectors", StorageType = FileSystemTypes.Disk }) + .WithSimpleFileStorage(new SimpleFileStorageConfig { Directory = "_files", StorageType = FileSystemTypes.Disk }) + .Build(); + + case "simple_volatile": + return new KernelMemoryBuilder() + .WithSearchClientConfig(new SearchClientConfig { EmptyAnswer = NotFound }) + .WithOpenAIDefaults(openAIKey) + .WithSimpleVectorDb(new SimpleVectorDbConfig { StorageType = FileSystemTypes.Volatile }) + .WithSimpleFileStorage(new SimpleFileStorageConfig { StorageType = FileSystemTypes.Volatile }) + .Build(); + + case "qdrant": + var qdrantEndpoint = this.QdrantConfiguration.GetValue("Endpoint"); + Assert.False(string.IsNullOrEmpty(qdrantEndpoint)); + return new KernelMemoryBuilder() + .WithSearchClientConfig(new SearchClientConfig { EmptyAnswer = NotFound }) + .WithOpenAIDefaults(openAIKey) + .WithQdrant(qdrantEndpoint) + .Build(); + + case "az_ai_search": + var acsEndpoint = this.AzureAISearchConfiguration.GetValue("Endpoint"); + var acsKey = this.AzureAISearchConfiguration.GetValue("APIKey"); + Assert.False(string.IsNullOrEmpty(acsEndpoint)); + Assert.False(string.IsNullOrEmpty(acsKey)); + return new KernelMemoryBuilder() + .WithSearchClientConfig(new SearchClientConfig { EmptyAnswer = NotFound }) + .WithOpenAIDefaults(openAIKey) + .WithAzureAISearch(acsEndpoint, acsKey) + .Build(); + + case "postgres": + var connString = this.PostgresConfiguration.GetValue("ConnectionString"); + Assert.False(string.IsNullOrEmpty(connString)); + return new KernelMemoryBuilder() + .WithSearchClientConfig(new SearchClientConfig { EmptyAnswer = NotFound }) + .WithOpenAIDefaults(openAIKey) + .WithPostgres(connString) + .Build(); + + default: + throw new ArgumentOutOfRangeException($"{memoryType} not supported"); + } + } + + // Find the "Fixtures" directory (inside the project, requires source code) + protected string? FindFixturesDir() + { + // start from the location of the executing assembly, and traverse up max 5 levels + var path = Path.GetDirectoryName(Path.GetFullPath(Assembly.GetExecutingAssembly().Location)); + for (var i = 0; i < 5; i++) + { + Console.WriteLine($"Checking '{path}'"); + var test = Path.Join(path, "Fixtures"); + if (Directory.Exists(test)) { return test; } + + // up one level + path = Path.GetDirectoryName(path); + } + + return null; + } + + public void Dispose() + { + this.Dispose(true); + GC.SuppressFinalize(this); + } + + protected virtual void Dispose(bool disposing) + { + if (disposing) + { + this._output.Dispose(); + } + } + + protected void Log(string text) + { + this._output.WriteLine(text); + } +} diff --git a/service/tests/FunctionalTests3P/TestHelpers/RedirectConsole.cs b/service/tests/FunctionalTests3P/TestHelpers/RedirectConsole.cs new file mode 100644 index 000000000..224e53993 --- /dev/null +++ b/service/tests/FunctionalTests3P/TestHelpers/RedirectConsole.cs @@ -0,0 +1,321 @@ +// Copyright (c) Microsoft. All rights reserved. + +using System.Diagnostics.CodeAnalysis; +using System.Globalization; +using System.Text; +using Xunit.Abstractions; + +namespace FunctionalTests3P.TestHelpers; + +internal sealed class RedirectConsole : TextWriter +{ + private readonly ITestOutputHelper _output; + + public override IFormatProvider FormatProvider => CultureInfo.CurrentCulture; + + public override Encoding Encoding { get; } = Encoding.Default; + + public RedirectConsole(ITestOutputHelper output) + { + this._output = output; + } + + public override void Write(string? value) + { + this.Text(value); + } + + public override void WriteLine(string? value) + { + this.Line(value); + } + + public override void Write(char value) + { + this.Text($"{value}"); + } + + public override void WriteLine(char value) + { + this.Line($"{value}"); + } + + public override void Write(char[]? buffer) + { + if (buffer == null || buffer.Length == 0) { return; } + + var s = new StringBuilder(); + foreach (var c in buffer) { s.Append(c); } + + this.Text(s.ToString()); + } + + public override void WriteLine(char[]? buffer) + { + if (buffer == null) + { + this.Line(); + return; + } + + var s = new StringBuilder(); + foreach (var c in buffer) { s.Append(c); } + + this.Line(s.ToString()); + } + + public override void Write(char[] buffer, int index, int count) + { + if (buffer.Length == 0 || count <= 0 || index < 0 || buffer.Length - index < count) + { + return; + } + + var s = new StringBuilder(); + for (int i = 0; i < count; i++) + { + s.Append(buffer[index + i]); + } + + this.Text(s.ToString()); + } + + public override void WriteLine(char[] buffer, int index, int count) + { + if (count <= 0 || index < 0 || buffer.Length - index < count) + { + this.Line(); + return; + } + + var s = new StringBuilder(); + for (int i = 0; i < count; i++) + { + s.Append(buffer[index + i]); + } + + this.Line(s.ToString()); + } + + public override void Write(ReadOnlySpan buffer) + { + if (buffer == null || buffer.Length == 0) { return; } + + var s = new StringBuilder(); + foreach (var c in buffer) { s.Append(c); } + + this.Text(s.ToString()); + } + + public override void WriteLine(ReadOnlySpan buffer) + { + if (buffer == null) + { + this.Line(); + return; + } + + var s = new StringBuilder(); + foreach (var c in buffer) { s.Append(c); } + + this.Line(s.ToString()); + } + + public override void Write(StringBuilder? buffer) + { + if (buffer == null || buffer.Length == 0) { return; } + + this.Text(buffer.ToString()); + } + + public override void WriteLine(StringBuilder? buffer) + { + if (buffer == null) + { + this.Line(); + return; + } + + this.Line(buffer.ToString()); + } + + public override void Write(bool value) + { + this.Text(value ? "True" : "False"); + } + + public override void WriteLine(bool value) + { + this.Line(value ? "True" : "False"); + } + + public override void Write(int value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(int value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(uint value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(uint value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(long value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(long value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(ulong value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(ulong value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(float value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(float value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(double value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(double value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(decimal value) + { + this.Text(value.ToString(this.FormatProvider)); + } + + public override void WriteLine(decimal value) + { + this.Line(value.ToString(this.FormatProvider)); + } + + public override void Write(object? value) + { + if (value != null) + { + if (value is IFormattable f) + { + this.Text(f.ToString(null, this.FormatProvider)); + } + else + { + this.Text(value.ToString()); + } + } + } + + public override void WriteLine(object? value) + { + if (value != null) + { + if (value is IFormattable f) + { + this.Line(f.ToString(null, this.FormatProvider)); + } + else + { + this.Line(value.ToString()); + } + } + else + { + this.Line(); + } + } + + public override void Write([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, object? arg0) + { + this.Text(string.Format(this.FormatProvider, format, arg0)); + } + + public override void WriteLine([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, object? arg0) + { + this.Line(string.Format(this.FormatProvider, format, arg0)); + } + + public override void Write([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, object? arg0, object? arg1) + { + this.Text(string.Format(this.FormatProvider, format, arg0, arg1)); + } + + public override void WriteLine([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, object? arg0, object? arg1) + { + this.Line(string.Format(this.FormatProvider, format, arg0, arg1)); + } + + public override void Write([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, object? arg0, object? arg1, object? arg2) + { + this.Text(string.Format(this.FormatProvider, format, arg0, arg1, arg2)); + } + + public override void WriteLine([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, object? arg0, object? arg1, object? arg2) + { + this.Line(string.Format(this.FormatProvider, format, arg0, arg1, arg2)); + } + + public override void Write([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, params object?[] arg) + { + this.Text(string.Format(this.FormatProvider, format, arg)); + } + + public override void WriteLine([StringSyntax(StringSyntaxAttribute.CompositeFormat)] string format, params object?[] arg) + { + this.Line(string.Format(this.FormatProvider, format, arg)); + } + + private void Text(string? s) + { + if (string.IsNullOrEmpty(s)) { return; } + + try + { + this._output.WriteLine(s); + } + catch (InvalidOperationException e) when (e.Message.Contains("no currently active test", StringComparison.OrdinalIgnoreCase)) + { + // NOOP: Xunit thread out of scope + } + } + + private void Line(string? s = null) + { + try + { + this._output.WriteLine(s); + } + catch (InvalidOperationException e) when (e.Message.Contains("no currently active test", StringComparison.OrdinalIgnoreCase)) + { + // NOOP: Xunit thread out of scope + } + } +} diff --git a/service/tests/FunctionalTests3P/TestHelpers/Startup.cs b/service/tests/FunctionalTests3P/TestHelpers/Startup.cs new file mode 100644 index 000000000..bf2153d38 --- /dev/null +++ b/service/tests/FunctionalTests3P/TestHelpers/Startup.cs @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft. All rights reserved. + +// IMPORTANT: this file must be at the root of the namespace + +namespace FunctionalTests3P; + +/// +/// IMPORTANT: this file must be at the root of the namespace +/// +public class Startup +{ + public void ConfigureHost(IHostBuilder hostBuilder) + { + var config = new ConfigurationBuilder() + .AddJsonFile("appsettings.json", optional: true) + .AddJsonFile("appsettings.development.json", optional: true) + .AddUserSecrets() + .AddEnvironmentVariables() + .Build(); + + hostBuilder.ConfigureHostConfiguration(builder => builder.AddConfiguration(config)); + } +} diff --git a/service/tests/FunctionalTests3P/TestHelpers/Usings.cs b/service/tests/FunctionalTests3P/TestHelpers/Usings.cs new file mode 100644 index 000000000..38b0ca7bb --- /dev/null +++ b/service/tests/FunctionalTests3P/TestHelpers/Usings.cs @@ -0,0 +1,3 @@ +// Copyright (c) Microsoft. All rights reserved. + +global using Xunit; diff --git a/service/tests/FunctionalTests3P/appsettings.json b/service/tests/FunctionalTests3P/appsettings.json new file mode 100644 index 000000000..cb1291734 --- /dev/null +++ b/service/tests/FunctionalTests3P/appsettings.json @@ -0,0 +1,46 @@ +{ + "ServiceAuthorization": { + "Endpoint": "http://127.0.0.1:9001/", + "AccessKey": "", + }, + "Services": { + "SimpleVectorDb": { + // Options: "Disk", "Volatile" + "StorageType": "Volatile", + "Directory": "tmp-vectors" + }, + "AzureAISearch": { + // "ApiKey" or "AzureIdentity". For other options see . + // AzureIdentity: use automatic AAD authentication mechanism. You can test locally + // using the env vars AZURE_TENANT_ID, AZURE_CLIENT_ID, AZURE_CLIENT_SECRET. + "Auth": "AzureIdentity", + "Endpoint": "https://<...>", + "APIKey": "", + }, + "Qdrant": { + "Endpoint": "http://127.0.0.1:6333", + "APIKey": "", + }, + "Postgres": { + "ConnectionString": "Host=localhost;Port=5432;Username=public;Password=", + "TableNamePrefix": "tests_", + }, + "OpenAI": { + "APIKey": "", + }, + "LlamaSharp": { + // path to file, e.g. "llama-2-7b-chat.Q6_K.gguf" + "ModelPath": "", + // Max number of tokens supported by the model + "MaxTokenTotal": 4096 + // Optional parameters + // "GpuLayerCount": 32, + // "Seed": 1337, + }, + }, + "Logging": { + "LogLevel": { + "Default": "Information" + } + } +} \ No newline at end of file diff --git a/service/tests/FunctionalTests3P/file1-NASA-news.pdf b/service/tests/FunctionalTests3P/file1-NASA-news.pdf new file mode 100644 index 0000000000000000000000000000000000000000..92c129799e8c4fd32dffc25ddbb4ecce0534c191 GIT binary patch literal 218143 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

Pl^!GxJ(PksL6yrX%ZKU*n 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 D!gUDr literal 0 HcmV?d00001 diff --git a/tools/InteractiveSetup/InteractiveSetup.csproj b/tools/InteractiveSetup/InteractiveSetup.csproj index be84a510f..20e69695b 100644 --- a/tools/InteractiveSetup/InteractiveSetup.csproj +++ b/tools/InteractiveSetup/InteractiveSetup.csproj @@ -9,10 +9,7 @@ - - - - + diff --git a/tools/InteractiveSetup/Main.cs b/tools/InteractiveSetup/Main.cs index 8a864c485..595e2bc6d 100644 --- a/tools/InteractiveSetup/Main.cs +++ b/tools/InteractiveSetup/Main.cs @@ -33,6 +33,7 @@ public static class Main private static BoundedBoolean s_cfgEmbeddingGenerationEnabled = new(); private static BoundedBoolean s_cfgAzureAISearch = new(); private static BoundedBoolean s_cfgQdrant = new(); + private static BoundedBoolean s_cfgPostgres = new(); private static BoundedBoolean s_cfgSimpleVectorDb = new(); public static void InteractiveSetup( @@ -63,6 +64,7 @@ public static void InteractiveSetup( s_cfgEmbeddingGenerationEnabled = new(initialState: true); s_cfgAzureAISearch = new(); s_cfgQdrant = new(); + s_cfgPostgres = new(); s_cfgSimpleVectorDb = new(); try @@ -97,6 +99,7 @@ public static void InteractiveSetup( MemoryDbTypeSetup(); AzureAISearchSetup(); QdrantSetup(); + PostgresSetup(); SimpleVectorDbSetup(); // Text generation @@ -711,6 +714,15 @@ private static void MemoryDbTypeSetup() }); s_cfgQdrant.Value = true; }), + new("Postgres", () => + { + AppSettings.Change(x => + { + x.Retrieval.MemoryDbType = "Postgres"; + x.DataIngestion.MemoryDbTypes = new List { x.Retrieval.MemoryDbType }; + }); + s_cfgPostgres.Value = true; + }), new("SimpleVectorDb (only for tests, data stored in memory or disk, see config file)", () => { AppSettings.Change(x => @@ -802,4 +814,25 @@ private static void QdrantSetup() { "APIKey", SetupUI.AskPassword("Qdrant (for cloud only)", config["APIKey"].ToString(), optional: true) }, }); } + + private static void PostgresSetup() + { + if (!s_cfgPostgres.Value) { return; } + + s_cfgPostgres.Value = false; + const string ServiceName = "Postgres"; + + if (!AppSettings.GetCurrentConfig().Services.TryGetValue(ServiceName, out var config)) + { + config = new Dictionary + { + { "ConnectionString", "" }, + }; + } + + AppSettings.Change(x => x.Services[ServiceName] = new Dictionary + { + { "ConnectionString", SetupUI.AskPassword("Postgres connection string (e.g. 'Host=..;Port=5432;Username=..;Password=..')", config["ConnectionString"].ToString(), optional: true) }, + }); + } }