From 5a472f878a4e163c23b396c5aced2167addf521c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:13:11 +0100 Subject: [PATCH 1/7] .Net: Bump OllamaSharp from 3.0.10 to 3.0.12 in /dotnet (#9268) Bumps [OllamaSharp](https://github.com/awaescher/OllamaSharp) from 3.0.10 to 3.0.12.
Release notes

Sourced from OllamaSharp's releases.

Release 3.0.12

Release 3.0.11

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=OllamaSharp&package-manager=nuget&previous-version=3.0.10&new-version=3.0.12)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dotnet/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index ff2e7b41618b..be80dbde26d5 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -40,7 +40,7 @@ - + From 524d9ab87139a0e4a0ffb45b675e331a53fda5b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 10:13:23 +0100 Subject: [PATCH 2/7] .Net: Bump xunit from 2.9.0 to 2.9.2 in /dotnet (#9267) Bumps [xunit](https://github.com/xunit/xunit) from 2.9.0 to 2.9.2.
Commits
  • 82543a6 v2.9.2
  • 0f8f156 #3031: Changes to TheoryData break tests with arrays of objects
  • 502f6d1 Bump up to v2.9.2-pre
  • bb7c3e4 v2.9.1
  • 5d70d25 #3028: Support IGrouping<TKey,TValue> in Assert.Equivalent (v2)
  • ed6e05b Add support for IGrouping<,> in ArgumentFormatter, assuming it's safe to re-e...
  • d97c7f8 Restore TestInvoker<T>.GetTaskFromResult (forwards to AsyncUtility.TryConvert...
  • 416ed81 #3021: Add overload of Assert.Equal to resolve compiler ambiguity
  • 6b86235 Add Assert.Equivalent support for evaluating Lazy<T>
  • aadff05 Updated build table in README
  • Additional commits viewable in compare view

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=xunit&package-manager=nuget&previous-version=2.9.0&new-version=2.9.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dotnet/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index be80dbde26d5..d2fee17506b8 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -69,7 +69,7 @@ - + From afef59886b8fa833b156ddb37bbdaac89b97c0e3 Mon Sep 17 00:00:00 2001 From: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com> Date: Tue, 15 Oct 2024 02:14:10 -0700 Subject: [PATCH 3/7] .Net: Re-ordered parameters in VectorStoreRecordVectorAttribute (#9260) ### Motivation and Context There are connectors, where `IndexKind` is not required (e.g. it's not supported yet or there is only one index kind). This PR contains a change to add overload to `VectorStoreRecordVectorAttribute` which doesn't require `IndexKind` parameter and re-order parameters in existing constructor to keep `IndexKind` parameter as last one. ### Contribution Checklist - [x] The code builds clean without any errors or warnings - [x] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [x] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone :smile: --- .../AzureCosmosDBMongoDBHotelModel.cs | 2 +- ...DBMongoDBVectorStoreRecordCollectionTests.cs | 4 ++-- .../AzureCosmosDBNoSQLHotel.cs | 2 +- ...osDBNoSQLVectorStoreRecordCollectionTests.cs | 8 ++++---- .../WeaviateHotel.cs | 2 +- .../VectorStoreRecordVectorAttribute.cs | 17 ++++++++++++++--- .../AzureCosmosDBMongoDBVectorStoreFixture.cs | 2 +- .../AzureCosmosDBNoSQLHotel.cs | 2 +- .../Memory/Pinecone/PineconeAllTypes.cs | 2 +- .../Connectors/Memory/Pinecone/PineconeHotel.cs | 2 +- .../PineconeVectorStoreRecordCollectionTests.cs | 2 +- .../Memory/Qdrant/QdrantVectorStoreFixture.cs | 4 ++-- .../Connectors/Memory/Weaviate/WeaviateHotel.cs | 2 +- .../VectorStoreRecordPropertyReaderTests.cs | 2 +- 14 files changed, 32 insertions(+), 21 deletions(-) diff --git a/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBHotelModel.cs b/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBHotelModel.cs index ae2a5ad0da43..7fe5e3875fb8 100644 --- a/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBHotelModel.cs +++ b/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBHotelModel.cs @@ -39,6 +39,6 @@ public class AzureCosmosDBMongoDBHotelModel(string hotelId) public string? Description { get; set; } /// A vector field. - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.IvfFlat, DistanceFunction: DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineDistance, IndexKind: IndexKind.IvfFlat)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } diff --git a/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBVectorStoreRecordCollectionTests.cs b/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBVectorStoreRecordCollectionTests.cs index 00f6272a9c53..b9d74ac4667e 100644 --- a/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBVectorStoreRecordCollectionTests.cs +++ b/dotnet/src/Connectors/Connectors.AzureCosmosDBMongoDB.UnitTests/AzureCosmosDBMongoDBVectorStoreRecordCollectionTests.cs @@ -828,11 +828,11 @@ private sealed class VectorSearchModel [VectorStoreRecordData] public string? HotelName { get; set; } - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.IvfFlat, DistanceFunction: DistanceFunction.CosineDistance, StoragePropertyName = "test_embedding_1")] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineDistance, IndexKind: IndexKind.IvfFlat, StoragePropertyName = "test_embedding_1")] public ReadOnlyMemory TestEmbedding1 { get; set; } [BsonElement("test_embedding_2")] - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.IvfFlat, DistanceFunction: DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineDistance, IndexKind: IndexKind.IvfFlat)] public ReadOnlyMemory TestEmbedding2 { get; set; } } #pragma warning restore CA1812 diff --git a/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLHotel.cs b/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLHotel.cs index 45a2a6036297..df06e97d3846 100644 --- a/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLHotel.cs +++ b/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLHotel.cs @@ -39,6 +39,6 @@ public class AzureCosmosDBNoSQLHotel(string hotelId) /// A vector field. [JsonPropertyName("description_embedding")] - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.Flat, DistanceFunction: DistanceFunction.CosineSimilarity)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineSimilarity, IndexKind: IndexKind.Flat)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } diff --git a/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLVectorStoreRecordCollectionTests.cs b/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLVectorStoreRecordCollectionTests.cs index 5410ed752e04..9cb9ac03c681 100644 --- a/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLVectorStoreRecordCollectionTests.cs +++ b/dotnet/src/Connectors/Connectors.AzureCosmosDBNoSQL.UnitTests/AzureCosmosDBNoSQLVectorStoreRecordCollectionTests.cs @@ -701,16 +701,16 @@ private sealed class TestIndexingModel [VectorStoreRecordKey] public string? Id { get; set; } - [VectorStoreRecordVector(Dimensions: 1, IndexKind: IndexKind.Flat, DistanceFunction: DistanceFunction.CosineSimilarity)] + [VectorStoreRecordVector(Dimensions: 1, DistanceFunction: DistanceFunction.CosineSimilarity, IndexKind: IndexKind.Flat)] public ReadOnlyMemory? DescriptionEmbedding1 { get; set; } - [VectorStoreRecordVector(Dimensions: 2, IndexKind: IndexKind.Flat, DistanceFunction: DistanceFunction.CosineSimilarity)] + [VectorStoreRecordVector(Dimensions: 2, DistanceFunction: DistanceFunction.CosineSimilarity, IndexKind: IndexKind.Flat)] public ReadOnlyMemory? DescriptionEmbedding2 { get; set; } - [VectorStoreRecordVector(Dimensions: 3, IndexKind: IndexKind.QuantizedFlat, DistanceFunction: DistanceFunction.DotProductSimilarity)] + [VectorStoreRecordVector(Dimensions: 3, DistanceFunction: DistanceFunction.DotProductSimilarity, IndexKind: IndexKind.QuantizedFlat)] public ReadOnlyMemory? DescriptionEmbedding3 { get; set; } - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.DiskAnn, DistanceFunction: DistanceFunction.EuclideanDistance)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.EuclideanDistance, IndexKind: IndexKind.DiskAnn)] public ReadOnlyMemory? DescriptionEmbedding4 { get; set; } [VectorStoreRecordData(IsFilterable = true)] diff --git a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateHotel.cs b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateHotel.cs index cf6e6ab7b27c..9ce781b39b8b 100644 --- a/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateHotel.cs +++ b/dotnet/src/Connectors/Connectors.Weaviate.UnitTests/WeaviateHotel.cs @@ -44,6 +44,6 @@ public sealed record WeaviateHotel public DateTimeOffset Timestamp { get; set; } /// A vector field. - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.Hnsw, DistanceFunction: DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineDistance, IndexKind: IndexKind.Hnsw)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } diff --git a/dotnet/src/Connectors/VectorData.Abstractions/RecordAttributes/VectorStoreRecordVectorAttribute.cs b/dotnet/src/Connectors/VectorData.Abstractions/RecordAttributes/VectorStoreRecordVectorAttribute.cs index 83c5d8ba1edc..e86a0883574c 100644 --- a/dotnet/src/Connectors/VectorData.Abstractions/RecordAttributes/VectorStoreRecordVectorAttribute.cs +++ b/dotnet/src/Connectors/VectorData.Abstractions/RecordAttributes/VectorStoreRecordVectorAttribute.cs @@ -33,13 +33,24 @@ public VectorStoreRecordVectorAttribute(int Dimensions) /// Initializes a new instance of the class. /// /// The number of dimensions that the vector has. - /// The kind of index to use. /// The distance function to use when comparing vectors. - public VectorStoreRecordVectorAttribute(int Dimensions, string? IndexKind, string? DistanceFunction) + public VectorStoreRecordVectorAttribute(int Dimensions, string? DistanceFunction) + { + this.Dimensions = Dimensions; + this.DistanceFunction = DistanceFunction; + } + + /// + /// Initializes a new instance of the class. + /// + /// The number of dimensions that the vector has. + /// The distance function to use when comparing vectors. + /// The kind of index to use. + public VectorStoreRecordVectorAttribute(int Dimensions, string? DistanceFunction, string? IndexKind) { this.Dimensions = Dimensions; - this.IndexKind = IndexKind; this.DistanceFunction = DistanceFunction; + this.IndexKind = IndexKind; } /// diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBMongoDB/AzureCosmosDBMongoDBVectorStoreFixture.cs b/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBMongoDB/AzureCosmosDBMongoDBVectorStoreFixture.cs index c38672d2da62..36ce5c0ca321 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBMongoDB/AzureCosmosDBMongoDBVectorStoreFixture.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBMongoDB/AzureCosmosDBMongoDBVectorStoreFixture.cs @@ -117,7 +117,7 @@ public record AzureCosmosDBMongoDBHotel() public DateTime Timestamp { get; set; } /// A vector field. - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.IvfFlat, DistanceFunction: DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineDistance, IndexKind: IndexKind.IvfFlat)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } #pragma warning restore CS8618 diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBNoSQL/AzureCosmosDBNoSQLHotel.cs b/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBNoSQL/AzureCosmosDBNoSQLHotel.cs index b7de210f7d18..e7d353486504 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBNoSQL/AzureCosmosDBNoSQLHotel.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/AzureCosmosDBNoSQL/AzureCosmosDBNoSQLHotel.cs @@ -45,6 +45,6 @@ public record AzureCosmosDBNoSQLHotel() public DateTimeOffset Timestamp { get; set; } /// A vector field. - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.Flat, DistanceFunction: DistanceFunction.CosineSimilarity)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineSimilarity, IndexKind: IndexKind.Flat)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeAllTypes.cs b/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeAllTypes.cs index a9dbc72e3862..7e640ea968e1 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeAllTypes.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeAllTypes.cs @@ -59,6 +59,6 @@ public record PineconeAllTypes() [VectorStoreRecordData] public IEnumerable Enumerable { get; set; } - [VectorStoreRecordVector(Dimensions: 8, IndexKind: null, DistanceFunction: DistanceFunction.DotProductSimilarity)] + [VectorStoreRecordVector(Dimensions: 8, DistanceFunction: DistanceFunction.DotProductSimilarity)] public ReadOnlyMemory? Embedding { get; set; } } diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeHotel.cs b/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeHotel.cs index af688fcf02a5..3603f2b5ef04 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeHotel.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeHotel.cs @@ -34,6 +34,6 @@ public record PineconeHotel() [VectorStoreRecordData] public string Description { get; set; } - [VectorStoreRecordVector(Dimensions: 8, IndexKind: null, DistanceFunction: DistanceFunction.DotProductSimilarity)] + [VectorStoreRecordVector(Dimensions: 8, DistanceFunction: DistanceFunction.DotProductSimilarity)] public ReadOnlyMemory DescriptionEmbedding { get; set; } } diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeVectorStoreRecordCollectionTests.cs b/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeVectorStoreRecordCollectionTests.cs index 5949533b4680..532d840309ba 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeVectorStoreRecordCollectionTests.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/Pinecone/PineconeVectorStoreRecordCollectionTests.cs @@ -555,7 +555,7 @@ private sealed record PineconeRecordWithUnsupportedMetric [VectorStoreRecordData] public string? Name { get; set; } - [VectorStoreRecordVector(Dimensions: 5, IndexKind: null, DistanceFunction: "just eyeball it")] + [VectorStoreRecordVector(Dimensions: 5, DistanceFunction: "just eyeball it")] public ReadOnlyMemory Embedding { get; set; } } #pragma warning restore CA1812 diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/Qdrant/QdrantVectorStoreFixture.cs b/dotnet/src/IntegrationTests/Connectors/Memory/Qdrant/QdrantVectorStoreFixture.cs index af4f94299005..c101ea570597 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/Qdrant/QdrantVectorStoreFixture.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/Qdrant/QdrantVectorStoreFixture.cs @@ -335,7 +335,7 @@ public record HotelInfo() public string Description { get; set; } /// A vector field. - [VectorStoreRecordVector(VectorDimensions, IndexKind.Hnsw, DistanceFunction.ManhattanDistance)] + [VectorStoreRecordVector(VectorDimensions, DistanceFunction.ManhattanDistance, IndexKind.Hnsw)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } @@ -358,7 +358,7 @@ public record HotelInfoWithGuidId() public string Description { get; set; } /// A vector field. - [VectorStoreRecordVector(VectorDimensions, IndexKind.Hnsw, DistanceFunction.ManhattanDistance)] + [VectorStoreRecordVector(VectorDimensions, DistanceFunction.ManhattanDistance, IndexKind.Hnsw)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } } diff --git a/dotnet/src/IntegrationTests/Connectors/Memory/Weaviate/WeaviateHotel.cs b/dotnet/src/IntegrationTests/Connectors/Memory/Weaviate/WeaviateHotel.cs index b06b8a71d729..bfcd78c9a51c 100644 --- a/dotnet/src/IntegrationTests/Connectors/Memory/Weaviate/WeaviateHotel.cs +++ b/dotnet/src/IntegrationTests/Connectors/Memory/Weaviate/WeaviateHotel.cs @@ -44,6 +44,6 @@ public sealed record WeaviateHotel public DateTimeOffset Timestamp { get; set; } /// A vector field. - [VectorStoreRecordVector(Dimensions: 4, IndexKind: IndexKind.Hnsw, DistanceFunction: DistanceFunction.CosineDistance)] + [VectorStoreRecordVector(Dimensions: 4, DistanceFunction: DistanceFunction.CosineDistance, IndexKind: IndexKind.Hnsw)] public ReadOnlyMemory? DescriptionEmbedding { get; set; } } diff --git a/dotnet/src/SemanticKernel.UnitTests/Data/VectorStoreRecordPropertyReaderTests.cs b/dotnet/src/SemanticKernel.UnitTests/Data/VectorStoreRecordPropertyReaderTests.cs index f5e4a1eb044d..a3b26a313b10 100644 --- a/dotnet/src/SemanticKernel.UnitTests/Data/VectorStoreRecordPropertyReaderTests.cs +++ b/dotnet/src/SemanticKernel.UnitTests/Data/VectorStoreRecordPropertyReaderTests.cs @@ -552,7 +552,7 @@ private sealed class MultiPropsModel [JsonPropertyName("json_data2")] public string Data2 { get; set; } = string.Empty; - [VectorStoreRecordVector(4, IndexKind.Flat, DistanceFunction.DotProductSimilarity)] + [VectorStoreRecordVector(4, DistanceFunction.DotProductSimilarity, IndexKind.Flat)] public ReadOnlyMemory Vector1 { get; set; } [VectorStoreRecordVector(StoragePropertyName = "storage_vector2")] From 9fb6cdd292c4f01d7ed9a3a3870299eccae37879 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:14:17 +0100 Subject: [PATCH 4/7] .Net: Bump Handlebars.Net.Helpers from 2.4.5 to 2.4.6 in /dotnet (#9266) Bumps [Handlebars.Net.Helpers](https://github.com/Handlebars-Net/Handlebars.Net.Helpers) from 2.4.5 to 2.4.6.
Changelog

Sourced from Handlebars.Net.Helpers's changelog.

2.4.6 (09 October 2024)

  • #101 - Upgrade System.Text.RegularExpressions to 4.3.1 to solve CVE [bug] contributed by StefH
Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Handlebars.Net.Helpers&package-manager=nuget&previous-version=2.4.5&new-version=2.4.6)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dotnet/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index d2fee17506b8..1d09ee188181 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -13,7 +13,7 @@ - + From 4e7375799033d5008000dd03631a7ce4dbad717e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Oct 2024 11:26:38 +0100 Subject: [PATCH 5/7] .Net: Bump Microsoft.Data.Sqlite from 8.0.8 to 8.0.10 in /dotnet (#9269) Bumps [Microsoft.Data.Sqlite](https://github.com/dotnet/efcore) from 8.0.8 to 8.0.10.
Release notes

Sourced from Microsoft.Data.Sqlite's releases.

.NET 8.0.10

Release

Commits

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=Microsoft.Data.Sqlite&package-manager=nuget&previous-version=8.0.8&new-version=8.0.10)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) ---
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- dotnet/Directory.Packages.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dotnet/Directory.Packages.props b/dotnet/Directory.Packages.props index 1d09ee188181..a6fed7b35ec4 100644 --- a/dotnet/Directory.Packages.props +++ b/dotnet/Directory.Packages.props @@ -77,7 +77,7 @@ - + From 03e319b413f0dba066938723c0cac4ec64b08984 Mon Sep 17 00:00:00 2001 From: westey <164392973+westey-m@users.noreply.github.com> Date: Tue, 15 Oct 2024 12:32:34 +0100 Subject: [PATCH 6/7] .Net: Update the RAG Sample with feedback from the bug bash (#9261) ### Description Update the RAG Sample with feedback from the bug bash ### Contribution Checklist - [x] The code builds clean without any errors or warnings - [x] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [x] All unit tests pass, and I have added new tests where possible - [x] I didn't break anyone :smile: --- .../Demos/VectorStoreRAG/DataLoader.cs | 45 +++++++++++++++++-- .../Demos/VectorStoreRAG/IDataLoader.cs | 4 +- .../Demos/VectorStoreRAG/Options/RagConfig.cs | 6 +++ .../samples/Demos/VectorStoreRAG/Program.cs | 19 +++++--- .../Demos/VectorStoreRAG/RAGChatService.cs | 21 ++++++++- dotnet/samples/Demos/VectorStoreRAG/README.md | 5 +++ .../VectorStoreRAG/VectorStoreRAG.csproj | 1 + .../Demos/VectorStoreRAG/appsettings.json | 6 ++- 8 files changed, 94 insertions(+), 13 deletions(-) diff --git a/dotnet/samples/Demos/VectorStoreRAG/DataLoader.cs b/dotnet/samples/Demos/VectorStoreRAG/DataLoader.cs index ea798c6a881d..84241ce5d3f2 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/DataLoader.cs +++ b/dotnet/samples/Demos/VectorStoreRAG/DataLoader.cs @@ -1,6 +1,8 @@ // Copyright (c) Microsoft. All rights reserved. +using System.Net; using Microsoft.Extensions.VectorData; +using Microsoft.SemanticKernel; using Microsoft.SemanticKernel.Embeddings; using UglyToad.PdfPig; using UglyToad.PdfPig.Content; @@ -21,14 +23,14 @@ internal sealed class DataLoader( ITextEmbeddingGenerationService textEmbeddingGenerationService) : IDataLoader where TKey : notnull { /// - public async Task LoadPdf(string pdfPath, CancellationToken cancellationToken) + public async Task LoadPdf(string pdfPath, int batchSize, int betweenBatchDelayInMs, CancellationToken cancellationToken) { // Create the collection if it doesn't exist. await vectorStoreRecordCollection.CreateCollectionIfNotExistsAsync(cancellationToken).ConfigureAwait(false); // Load the paragraphs from the PDF file and split them into batches. var sections = LoadParagraphs(pdfPath, cancellationToken); - var batches = sections.Chunk(10); + var batches = sections.Chunk(batchSize); // Process each batch of paragraphs. foreach (var batch in batches) @@ -40,7 +42,7 @@ public async Task LoadPdf(string pdfPath, CancellationToken cancellationToken) Text = section.ParagraphText, ReferenceDescription = $"{new FileInfo(pdfPath).Name}#page={section.PageNumber}", ReferenceLink = $"{new Uri(new FileInfo(pdfPath).FullName).AbsoluteUri}#page={section.PageNumber}", - TextEmbedding = await textEmbeddingGenerationService.GenerateEmbeddingAsync(section.ParagraphText, cancellationToken: cancellationToken).ConfigureAwait(false) + TextEmbedding = await GenerateEmbeddingsWithRetryAsync(textEmbeddingGenerationService, section.ParagraphText, cancellationToken: cancellationToken).ConfigureAwait(false) }); // Upsert the records into the vector store. @@ -50,6 +52,8 @@ public async Task LoadPdf(string pdfPath, CancellationToken cancellationToken) { Console.WriteLine($"Upserted record '{key}' into VectorDB"); } + + await Task.Delay(betweenBatchDelayInMs, cancellationToken).ConfigureAwait(false); } } @@ -83,4 +87,39 @@ public async Task LoadPdf(string pdfPath, CancellationToken cancellationToken) } } } + + /// + /// Add a simple retry mechanism to embedding generation. + /// + /// The embedding generation service. + /// The text to generate the embedding for. + /// The to monitor for cancellation requests. + /// The generated embedding. + private static async Task> GenerateEmbeddingsWithRetryAsync(ITextEmbeddingGenerationService textEmbeddingGenerationService, string text, CancellationToken cancellationToken) + { + var tries = 0; + + while (true) + { + try + { + return await textEmbeddingGenerationService.GenerateEmbeddingAsync(text, cancellationToken: cancellationToken).ConfigureAwait(false); + } + catch (HttpOperationException ex) when (ex.StatusCode == HttpStatusCode.TooManyRequests) + { + tries++; + + if (tries < 3) + { + Console.WriteLine($"Failed to generate embedding. Error: {ex}"); + Console.WriteLine("Retrying embedding generation..."); + await Task.Delay(10_000, cancellationToken).ConfigureAwait(false); + } + else + { + throw; + } + } + } + } } diff --git a/dotnet/samples/Demos/VectorStoreRAG/IDataLoader.cs b/dotnet/samples/Demos/VectorStoreRAG/IDataLoader.cs index abd2eed7e8ef..2a2ecac04e20 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/IDataLoader.cs +++ b/dotnet/samples/Demos/VectorStoreRAG/IDataLoader.cs @@ -11,7 +11,9 @@ internal interface IDataLoader /// Load the text from a PDF file into the data store. ///
/// The pdf file to load. + /// Maximum number of parallel threads to generate embeddings and upload records. + /// The number of milliseconds to delay between batches to avoid throttling. /// The to monitor for cancellation requests. /// An async task that completes when the loading is complete. - Task LoadPdf(string pdfPath, CancellationToken cancellationToken); + Task LoadPdf(string pdfPath, int batchSize, int betweenBatchDelayInMs, CancellationToken cancellationToken); } diff --git a/dotnet/samples/Demos/VectorStoreRAG/Options/RagConfig.cs b/dotnet/samples/Demos/VectorStoreRAG/Options/RagConfig.cs index b7a919d890bc..4a524a777b05 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/Options/RagConfig.cs +++ b/dotnet/samples/Demos/VectorStoreRAG/Options/RagConfig.cs @@ -22,4 +22,10 @@ internal sealed class RagConfig [Required] public string CollectionName { get; set; } = string.Empty; + + [Required] + public int DataLoadingBatchSize { get; set; } = 2; + + [Required] + public int DataLoadingBetweenBatchDelayInMilliseconds { get; set; } = 0; } diff --git a/dotnet/samples/Demos/VectorStoreRAG/Program.cs b/dotnet/samples/Demos/VectorStoreRAG/Program.cs index 39fc7522f506..f420c35a7baf 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/Program.cs +++ b/dotnet/samples/Demos/VectorStoreRAG/Program.cs @@ -13,13 +13,17 @@ HostApplicationBuilder builder = Host.CreateApplicationBuilder(args); -builder.Configuration - .AddUserSecrets(); - +// Configure configuration and load the application configuration. +builder.Configuration.AddUserSecrets(); builder.Services.Configure(builder.Configuration.GetSection(RagConfig.ConfigSectionName)); - var appConfig = new ApplicationConfig(builder.Configuration); +// Create a cancellation token and source to pass to the application service to allow them +// to request a graceful application shutdown. +CancellationTokenSource appShutdownCancellationTokenSource = new(); +CancellationToken appShutdownCancellationToken = appShutdownCancellationTokenSource.Token; +builder.Services.AddKeyedSingleton("AppShutdown", appShutdownCancellationTokenSource); + // Register the kernel with the dependency injection container // and add Chat Completion and Text Embedding Generation services. var kernelBuilder = builder.Services.AddKernel() @@ -54,6 +58,10 @@ appConfig.AzureCosmosDBNoSQLConfig.ConnectionString, appConfig.AzureCosmosDBNoSQLConfig.DatabaseName); break; + case "InMemory": + kernelBuilder.AddInMemoryVectorStoreRecordCollection>( + appConfig.RagConfig.CollectionName); + break; case "Qdrant": kernelBuilder.AddQdrantVectorStoreRecordCollection>( appConfig.RagConfig.CollectionName, @@ -84,6 +92,7 @@ case "AzureAISearch": case "AzureCosmosDBMongoDB": case "AzureCosmosDBNoSQL": + case "InMemory": case "Redis": RegisterServices(builder, kernelBuilder, appConfig); break; @@ -97,7 +106,7 @@ // Build and run the host. using IHost host = builder.Build(); -await host.RunAsync().ConfigureAwait(false); +await host.RunAsync(appShutdownCancellationToken).ConfigureAwait(false); static void RegisterServices(HostApplicationBuilder builder, IKernelBuilder kernelBuilder, ApplicationConfig vectorStoreRagConfig) where TKey : notnull diff --git a/dotnet/samples/Demos/VectorStoreRAG/RAGChatService.cs b/dotnet/samples/Demos/VectorStoreRAG/RAGChatService.cs index 0b0bf875c1c0..6b3af97d8824 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/RAGChatService.cs +++ b/dotnet/samples/Demos/VectorStoreRAG/RAGChatService.cs @@ -1,5 +1,6 @@ // Copyright (c) Microsoft. All rights reserved. +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Options; using Microsoft.SemanticKernel; @@ -17,11 +18,13 @@ namespace VectorStoreRAG; /// Used to search the vector store. /// Used to make requests to the LLM. /// The configuration options for the application. +/// Used to gracefully shut down the entire application when cancelled. internal sealed class RAGChatService( IDataLoader dataLoader, VectorStoreTextSearch> vectorStoreTextSearch, Kernel kernel, - IOptions ragConfigOptions) : IHostedService + IOptions ragConfigOptions, + [FromKeyedServices("AppShutdown")] CancellationTokenSource appShutdownCancellationTokenSource) : IHostedService { private Task? _dataLoaded; private Task? _chatLoop; @@ -83,6 +86,9 @@ private async Task ChatLoopAsync(CancellationToken cancellationToken) Console.WriteLine("PDF loading complete\n"); + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine("Assistant > Press enter with no prompt to exit."); + // Add a search plugin to the kernel which we will use in the template below // to do a vector search for related information to the user query. kernel.Plugins.Add(vectorStoreTextSearch.CreateWithGetTextSearchResults("SearchPlugin")); @@ -99,6 +105,13 @@ private async Task ChatLoopAsync(CancellationToken cancellationToken) Console.Write("User > "); var question = Console.ReadLine(); + // Exit the application if the user didn't type anything. + if (string.IsNullOrWhiteSpace(question)) + { + appShutdownCancellationTokenSource.Cancel(); + break; + } + // Invoke the LLM with a template that uses the search plugin to // 1. get related information to the user query from the vector store // 2. add the information to the LLM prompt. @@ -158,7 +171,11 @@ private async Task LoadDataAsync(CancellationToken cancellationToken) foreach (var pdfFilePath in ragConfigOptions.Value.PdfFilePaths ?? []) { Console.WriteLine($"Loading PDF into vector store: {pdfFilePath}"); - await dataLoader.LoadPdf(pdfFilePath, cancellationToken).ConfigureAwait(false); + await dataLoader.LoadPdf( + pdfFilePath, + ragConfigOptions.Value.DataLoadingBatchSize, + ragConfigOptions.Value.DataLoadingBetweenBatchDelayInMilliseconds, + cancellationToken).ConfigureAwait(false); } } catch (Exception ex) diff --git a/dotnet/samples/Demos/VectorStoreRAG/README.md b/dotnet/samples/Demos/VectorStoreRAG/README.md index bd7abc41ae30..dc5a1a5a2317 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/README.md +++ b/dotnet/samples/Demos/VectorStoreRAG/README.md @@ -11,12 +11,15 @@ The sample can be configured in various ways: 1. AzureAISearch 1. AzureCosmosDBMongoDB 1. AzureCosmosDBNoSQL + 1. InMemory 1. Qdrant 1. Redis 1. Weaviate 1. You can choose whether to load data into the vector store by setting the `Rag:BuildCollection` configuration setting in the `appsettings.json` file to `true`. If you set this to `false`, the sample will assume that data was already loaded previously and it will go straight into the chat experience. 1. You can choose the name of the collection to use by setting the `Rag:CollectionName` configuration setting in the `appsettings.json` file. 1. You can choose the pdf file to load into the vector store by setting the `Rag:PdfFilePaths` array in the `appsettings.json` file. +1. You can choose the number of records to process per batch when loading data into the vector store by setting the `Rag:DataLoadingBatchSize` configuration setting in the `appsettings.json` file. +1. You can choose the number of milliseconds to wait between batches when loading data into the vector store by setting the `Rag:DataLoadingBetweenBatchDelayInMilliseconds` configuration setting in the `appsettings.json` file. ## Dependency Setup @@ -45,6 +48,7 @@ For Azure OpenAI, you need to add the following secrets: ```cli dotnet user-secrets set "AIServices:AzureOpenAI:Endpoint" "https://.openai.azure.com" +dotnet user-secrets set "AIServices:AzureOpenAI:ChatDeploymentName" "" ``` Note that the code doesn't use an API Key to communicate with Azure Open AI, but rather an `AzureCliCredential` so no api key secret is required. @@ -55,6 +59,7 @@ For Azure OpenAI Embeddings, you need to add the following secrets: ```cli dotnet user-secrets set "AIServices:AzureOpenAIEmbeddings:Endpoint" "https://.openai.azure.com" +dotnet user-secrets set "AIServices:AzureOpenAIEmbeddings:DeploymentName" "" ``` Note that the code doesn't use an API Key to communicate with Azure Open AI, but rather an `AzureCliCredential` so no api key secret is required. diff --git a/dotnet/samples/Demos/VectorStoreRAG/VectorStoreRAG.csproj b/dotnet/samples/Demos/VectorStoreRAG/VectorStoreRAG.csproj index fd80cbe8c047..7b1557a8005c 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/VectorStoreRAG.csproj +++ b/dotnet/samples/Demos/VectorStoreRAG/VectorStoreRAG.csproj @@ -21,6 +21,7 @@ + diff --git a/dotnet/samples/Demos/VectorStoreRAG/appsettings.json b/dotnet/samples/Demos/VectorStoreRAG/appsettings.json index 47a1daa9d4d4..be581ad34d9d 100644 --- a/dotnet/samples/Demos/VectorStoreRAG/appsettings.json +++ b/dotnet/samples/Demos/VectorStoreRAG/appsettings.json @@ -43,7 +43,9 @@ "Rag": { "BuildCollection": true, "PdfFilePaths": [ "sourcedocument.pdf" ], - "VectorStoreType": "Qdrant", - "CollectionName": "pdfcontent" + "VectorStoreType": "InMemory", + "CollectionName": "pdfcontent", + "DataLoadingBatchSize": 2, + "DataLoadingBetweenBatchDelayInMilliseconds": 1000 } } From e23d6364578dcd40ce380b57e176a48d3c7c3e61 Mon Sep 17 00:00:00 2001 From: Mark Wallace <127216156+markwallace-microsoft@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:31:34 +0100 Subject: [PATCH 7/7] .Net: Change version suffix for memory connectors which implement IVectorStore (#9276) ### Motivation and Context ### Description ### Contribution Checklist - [ ] The code builds clean without any errors or warnings - [ ] The PR follows the [SK Contribution Guidelines](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md) and the [pre-submission formatting script](https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md#development-scripts) raises no violations - [ ] All unit tests pass, and I have added new tests where possible - [ ] I didn't break anyone :smile: --- .../Connectors.Memory.AzureAISearch.csproj | 2 +- .../Connectors.Memory.AzureCosmosDBMongoDB.csproj | 2 +- .../Connectors.Memory.AzureCosmosDBNoSQL.csproj | 2 +- .../Connectors.Memory.InMemory.csproj | 2 +- .../Connectors.Memory.Pinecone.csproj | 2 +- .../Connectors.Memory.Qdrant/Connectors.Memory.Qdrant.csproj | 2 +- .../Connectors.Memory.Redis/Connectors.Memory.Redis.csproj | 2 +- .../Connectors.Memory.Weaviate.csproj | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dotnet/src/Connectors/Connectors.Memory.AzureAISearch/Connectors.Memory.AzureAISearch.csproj b/dotnet/src/Connectors/Connectors.Memory.AzureAISearch/Connectors.Memory.AzureAISearch.csproj index 1b8b979b91f2..585e946ccbd0 100644 --- a/dotnet/src/Connectors/Connectors.Memory.AzureAISearch/Connectors.Memory.AzureAISearch.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.AzureAISearch/Connectors.Memory.AzureAISearch.csproj @@ -4,7 +4,7 @@ Microsoft.SemanticKernel.Connectors.AzureAISearch Microsoft.SemanticKernel.Connectors.AzureAISearch net8.0;netstandard2.0 - alpha + preview $(NoWarn);NU5104 diff --git a/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBMongoDB/Connectors.Memory.AzureCosmosDBMongoDB.csproj b/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBMongoDB/Connectors.Memory.AzureCosmosDBMongoDB.csproj index 9ce9d24d1aed..9a2d68d24132 100644 --- a/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBMongoDB/Connectors.Memory.AzureCosmosDBMongoDB.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBMongoDB/Connectors.Memory.AzureCosmosDBMongoDB.csproj @@ -6,7 +6,7 @@ $(AssemblyName) net8.0;netstandard2.0 $(NoWarn);NU5104;SKEXP0001,SKEXP0010 - alpha + preview diff --git a/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBNoSQL/Connectors.Memory.AzureCosmosDBNoSQL.csproj b/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBNoSQL/Connectors.Memory.AzureCosmosDBNoSQL.csproj index 32fd24223c81..9e065f2d7db8 100644 --- a/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBNoSQL/Connectors.Memory.AzureCosmosDBNoSQL.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.AzureCosmosDBNoSQL/Connectors.Memory.AzureCosmosDBNoSQL.csproj @@ -6,7 +6,7 @@ $(AssemblyName) net8.0;netstandard2.0 $(NoWarn);NU5104;SKEXP0001,SKEXP0010 - alpha + preview diff --git a/dotnet/src/Connectors/Connectors.Memory.InMemory/Connectors.Memory.InMemory.csproj b/dotnet/src/Connectors/Connectors.Memory.InMemory/Connectors.Memory.InMemory.csproj index 01877d8cd681..1815446a8f80 100644 --- a/dotnet/src/Connectors/Connectors.Memory.InMemory/Connectors.Memory.InMemory.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.InMemory/Connectors.Memory.InMemory.csproj @@ -4,7 +4,7 @@ Microsoft.SemanticKernel.Connectors.InMemory $(AssemblyName) net8.0;netstandard2.0 - alpha + preview diff --git a/dotnet/src/Connectors/Connectors.Memory.Pinecone/Connectors.Memory.Pinecone.csproj b/dotnet/src/Connectors/Connectors.Memory.Pinecone/Connectors.Memory.Pinecone.csproj index 69b47fe172f0..c9c647171150 100644 --- a/dotnet/src/Connectors/Connectors.Memory.Pinecone/Connectors.Memory.Pinecone.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.Pinecone/Connectors.Memory.Pinecone.csproj @@ -5,7 +5,7 @@ Microsoft.SemanticKernel.Connectors.Pinecone $(AssemblyName) net8.0;netstandard2.0 - alpha + preview diff --git a/dotnet/src/Connectors/Connectors.Memory.Qdrant/Connectors.Memory.Qdrant.csproj b/dotnet/src/Connectors/Connectors.Memory.Qdrant/Connectors.Memory.Qdrant.csproj index 322a58d22400..93425c69fbe9 100644 --- a/dotnet/src/Connectors/Connectors.Memory.Qdrant/Connectors.Memory.Qdrant.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.Qdrant/Connectors.Memory.Qdrant.csproj @@ -5,7 +5,7 @@ Microsoft.SemanticKernel.Connectors.Qdrant $(AssemblyName) net8.0;netstandard2.0 - alpha + preview diff --git a/dotnet/src/Connectors/Connectors.Memory.Redis/Connectors.Memory.Redis.csproj b/dotnet/src/Connectors/Connectors.Memory.Redis/Connectors.Memory.Redis.csproj index 52f2ea6f159c..3f2fd4360fe8 100644 --- a/dotnet/src/Connectors/Connectors.Memory.Redis/Connectors.Memory.Redis.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.Redis/Connectors.Memory.Redis.csproj @@ -5,7 +5,7 @@ Microsoft.SemanticKernel.Connectors.Redis $(AssemblyName) net8.0;netstandard2.0 - alpha + preview diff --git a/dotnet/src/Connectors/Connectors.Memory.Weaviate/Connectors.Memory.Weaviate.csproj b/dotnet/src/Connectors/Connectors.Memory.Weaviate/Connectors.Memory.Weaviate.csproj index 06901c892c22..26b63c694dff 100644 --- a/dotnet/src/Connectors/Connectors.Memory.Weaviate/Connectors.Memory.Weaviate.csproj +++ b/dotnet/src/Connectors/Connectors.Memory.Weaviate/Connectors.Memory.Weaviate.csproj @@ -5,7 +5,7 @@ Microsoft.SemanticKernel.Connectors.Weaviate $(AssemblyName) net8.0;netstandard2.0 - alpha + preview