Skip to content

Commit d72182f

Browse files
westey-mrojiadamsitnikdmytrostruk
authored
.Net: MEVD Feature Branch 3 (#11831)
### Motivation and Context Feature branch PR containing all MEVD contributions ### Description <!-- Describe your changes, the overall approach, the underlying design. These notes will help understanding how your code works. Thanks! --> ### Contribution Checklist <!-- Before submitting this PR, please make sure: --> - [ ] 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 😄 --------- Co-authored-by: Shay Rojansky <roji@roji.org> Co-authored-by: Adam Sitnik <adam.sitnik@gmail.com> Co-authored-by: Dmytro Struk <13853051+dmytrostruk@users.noreply.github.com>
1 parent d427040 commit d72182f

File tree

844 files changed

+26054
-44782
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

844 files changed

+26054
-44782
lines changed

.github/workflows/dotnet-format.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ jobs:
2525
fail-fast: false
2626
matrix:
2727
include:
28-
- { dotnet: "8.0", configuration: Release, os: ubuntu-latest }
2928
- { dotnet: "9.0", configuration: Release, os: ubuntu-latest }
3029

3130
runs-on: ${{ matrix.os }}

dotnet/Directory.Packages.props

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@
141141
<PackageVersion Include="Docker.DotNet" Version="3.125.15" />
142142
<!-- Plugins -->
143143
<PackageVersion Include="DocumentFormat.OpenXml" Version="3.3.0" />
144-
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.0" />
144+
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.4" />
145145
<PackageVersion Include="DuckDB.NET.Data.Full" Version="1.2.0" />
146146
<PackageVersion Include="DuckDB.NET.Data" Version="1.1.3" />
147147
<PackageVersion Include="MongoDB.Driver" Version="2.30.0" />
@@ -157,8 +157,9 @@
157157
<PackageVersion Include="Fluid.Core" Version="2.11.1" />
158158
<!-- Memory stores -->
159159
<PackageVersion Include="Microsoft.Azure.Cosmos" Version="3.48.0-preview.0" />
160-
<PackageVersion Include="Pgvector" Version="0.2.0" />
161-
<PackageVersion Include="NRedisStack" Version="0.12.0" />
160+
<PackageVersion Include="Pgvector" Version="0.3.1" />
161+
<PackageVersion Include="sqlite-vec" Version="0.1.7-alpha.2.1" />
162+
<PackageVersion Include="NRedisStack" Version="1.0.0" />
162163
<PackageVersion Include="Milvus.Client" Version="2.3.0-preview.1" />
163164
<PackageVersion Include="Testcontainers" Version="4.4.0" />
164165
<PackageVersion Include="Testcontainers.Milvus" Version="4.4.0" />

dotnet/MEVD.slnf

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"solution": {
3+
"path": "SK-dotnet.sln",
4+
"projects":
5+
[
6+
"src/Connectors/Connectors.Memory.AzureAISearch/Connectors.Memory.AzureAISearch.csproj",
7+
"src/Connectors/Connectors.Memory.CosmosMongoDB/Connectors.Memory.CosmosMongoDB.csproj",
8+
"src/Connectors/Connectors.Memory.CosmosNoSql/Connectors.Memory.CosmosNoSql.csproj",
9+
"src/Connectors/Connectors.Memory.Chroma/Connectors.Memory.Chroma.csproj",
10+
"src/Connectors/Connectors.Memory.DuckDB/Connectors.Memory.DuckDB.csproj",
11+
"src/Connectors/Connectors.Memory.InMemory/Connectors.Memory.InMemory.csproj",
12+
"src/Connectors/Connectors.Memory.Kusto/Connectors.Memory.Kusto.csproj",
13+
"src/Connectors/Connectors.Memory.Milvus/Connectors.Memory.Milvus.csproj",
14+
"src/Connectors/Connectors.Memory.MongoDB/Connectors.Memory.MongoDB.csproj",
15+
"src/Connectors/Connectors.Memory.Pinecone/Connectors.Memory.Pinecone.csproj",
16+
"src/Connectors/Connectors.Memory.PgVector/Connectors.Memory.PgVector.csproj",
17+
"src/Connectors/Connectors.Memory.Qdrant/Connectors.Memory.Qdrant.csproj",
18+
"src/Connectors/Connectors.Memory.Redis/Connectors.Memory.Redis.csproj",
19+
"src/Connectors/Connectors.Memory.SqliteVec/Connectors.Memory.SqliteVec.csproj",
20+
"src/Connectors/Connectors.Memory.SqlServer/Connectors.Memory.SqlServer.csproj",
21+
"src/Connectors/Connectors.Memory.Weaviate/Connectors.Memory.Weaviate.csproj",
22+
23+
"src/Connectors/Connectors.AzureAISearch.UnitTests/Connectors.AzureAISearch.UnitTests.csproj",
24+
"src/Connectors/Connectors.CosmosMongoDB.UnitTests/Connectors.CosmosMongoDB.UnitTests.csproj",
25+
"src/Connectors/Connectors.CosmosNoSql.UnitTests/Connectors.CosmosNoSql.UnitTests.csproj",
26+
"src/Connectors/Connectors.InMemory.UnitTests/Connectors.InMemory.UnitTests.csproj",
27+
"src/Connectors/Connectors.MongoDB.UnitTests/Connectors.MongoDB.UnitTests.csproj",
28+
"src/Connectors/Connectors.Pinecone.UnitTests/Connectors.Pinecone.UnitTests.csproj",
29+
"src/Connectors/Connectors.PgVector.UnitTests/Connectors.PgVector.UnitTests.csproj",
30+
"src/Connectors/Connectors.Qdrant.UnitTests/Connectors.Qdrant.UnitTests.csproj",
31+
"src/Connectors/Connectors.Redis.UnitTests/Connectors.Redis.UnitTests.csproj",
32+
"src/Connectors/Connectors.SqliteVec.UnitTests/Connectors.SqliteVec.UnitTests.csproj",
33+
"src/Connectors/Connectors.Weaviate.UnitTests/Connectors.Weaviate.UnitTests.csproj",
34+
35+
"src/VectorDataIntegrationTests/AzureAISearchIntegrationTests/AzureAISearchIntegrationTests.csproj",
36+
"src/VectorDataIntegrationTests/CosmosMongoDBIntegrationTests/CosmosMongoDBIntegrationTests.csproj",
37+
"src/VectorDataIntegrationTests/CosmosNoSqlIntegrationTests/CosmosNoSqlIntegrationTests.csproj",
38+
"src/VectorDataIntegrationTests/InMemoryIntegrationTests/InMemoryIntegrationTests.csproj",
39+
"src/VectorDataIntegrationTests/MongoDBIntegrationTests/MongoDBIntegrationTests.csproj",
40+
"src/VectorDataIntegrationTests/PineconeIntegrationTests/PineconeIntegrationTests.csproj",
41+
"src/VectorDataIntegrationTests/PgVectorIntegrationTests/PgVectorIntegrationTests.csproj",
42+
"src/VectorDataIntegrationTests/QdrantIntegrationTests/QdrantIntegrationTests.csproj",
43+
"src/VectorDataIntegrationTests/RedisIntegrationTests/RedisIntegrationTests.csproj",
44+
"src/VectorDataIntegrationTests/SqliteVecIntegrationTests/SqliteVecIntegrationTests.csproj",
45+
"src/VectorDataIntegrationTests/SqlServerIntegrationTests/SqlServerIntegrationTests.csproj",
46+
"src/VectorDataIntegrationTests/WeaviateIntegrationTests/WeaviateIntegrationTests.csproj",
47+
48+
"src/VectorDataIntegrationTests/VectorDataIntegrationTests/VectorDataIntegrationTests.csproj"
49+
]
50+
}
51+
}

dotnet/SK-dotnet.sln

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.UnitTests", "src
5454
EndProject
5555
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.Qdrant", "src\Connectors\Connectors.Memory.Qdrant\Connectors.Memory.Qdrant.csproj", "{5DEBAA62-F117-496A-8778-FED3604B70E2}"
5656
EndProject
57-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.Sqlite", "src\Connectors\Connectors.Memory.Sqlite\Connectors.Memory.Sqlite.csproj", "{EC004F12-2F60-4EDD-B3CD-3A504900D929}"
57+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.SqliteVec", "src\Connectors\Connectors.Memory.SqliteVec\Connectors.Memory.SqliteVec.csproj", "{EC004F12-2F60-4EDD-B3CD-3A504900D929}"
5858
EndProject
59-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.Postgres", "src\Connectors\Connectors.Memory.Postgres\Connectors.Memory.Postgres.csproj", "{C9F957FA-A70F-4A6D-8F95-23FCD7F4FB87}"
59+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.PgVector", "src\Connectors\Connectors.Memory.PgVector\Connectors.Memory.PgVector.csproj", "{C9F957FA-A70F-4A6D-8F95-23FCD7F4FB87}"
6060
EndProject
6161
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.Redis", "src\Connectors\Connectors.Memory.Redis\Connectors.Memory.Redis.csproj", "{3720F5ED-FB4D-485E-8A93-CDE60DEF0805}"
6262
EndProject
@@ -177,7 +177,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Planners.OpenAI", "src\Plan
177177
EndProject
178178
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.MongoDB", "src\Connectors\Connectors.Memory.MongoDB\Connectors.Memory.MongoDB.csproj", "{6009CC87-32F1-4282-88BB-8E5A7BA12925}"
179179
EndProject
180-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.AzureCosmosDBMongoDB", "src\Connectors\Connectors.Memory.AzureCosmosDBMongoDB\Connectors.Memory.AzureCosmosDBMongoDB.csproj", "{8B62C632-9D70-4DC1-AEAB-82D057A09A19}"
180+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.CosmosMongoDB", "src\Connectors\Connectors.Memory.CosmosMongoDB\Connectors.Memory.CosmosMongoDB.csproj", "{8B62C632-9D70-4DC1-AEAB-82D057A09A19}"
181181
EndProject
182182
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PromptTemplates.Handlebars", "src\Extensions\PromptTemplates.Handlebars\PromptTemplates.Handlebars.csproj", "{B0646036-0C50-4F66-B479-ADA9C1166816}"
183183
EndProject
@@ -322,7 +322,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "QualityCheckWithFilters", "
322322
EndProject
323323
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TimePlugin", "samples\Demos\TimePlugin\TimePlugin.csproj", "{F312FCE1-12D7-4DEF-BC29-2FF6618509F3}"
324324
EndProject
325-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.AzureCosmosDBNoSQL", "src\Connectors\Connectors.Memory.AzureCosmosDBNoSQL\Connectors.Memory.AzureCosmosDBNoSQL.csproj", "{B0B3901E-AF56-432B-8FAA-858468E5D0DF}"
325+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Memory.CosmosNoSql", "src\Connectors\Connectors.Memory.CosmosNoSql\Connectors.Memory.CosmosNoSql.csproj", "{B0B3901E-AF56-432B-8FAA-858468E5D0DF}"
326326
EndProject
327327
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Amazon", "src\Connectors\Connectors.Amazon\Connectors.Amazon.csproj", "{E059E9B0-1302-474D-B1B5-10A6E0F1A769}"
328328
EndProject
@@ -336,15 +336,15 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Qdrant.UnitTests
336336
EndProject
337337
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Ollama", "src\Connectors\Connectors.Ollama\Connectors.Ollama.csproj", "{E7E60E1D-1A44-4DE9-A44D-D5052E809DDD}"
338338
EndProject
339-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.AzureCosmosDBMongoDB.UnitTests", "src\Connectors\Connectors.AzureCosmosDBMongoDB.UnitTests\Connectors.AzureCosmosDBMongoDB.UnitTests.csproj", "{2918478E-BC86-4D53-9D01-9C318F80C14F}"
339+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.CosmosMongoDB.UnitTests", "src\Connectors\Connectors.CosmosMongoDB.UnitTests\Connectors.CosmosMongoDB.UnitTests.csproj", "{2918478E-BC86-4D53-9D01-9C318F80C14F}"
340340
EndProject
341341
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AIModelRouter", "samples\Demos\AIModelRouter\AIModelRouter.csproj", "{E06818E3-00A5-41AC-97ED-9491070CDEA1}"
342342
EndProject
343343
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Ollama.UnitTests", "src\Connectors\Connectors.Ollama.UnitTests\Connectors.Ollama.UnitTests.csproj", "{924DB138-1223-4C99-B6E6-0938A3FA14EF}"
344344
EndProject
345345
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "StepwisePlannerMigration", "samples\Demos\StepwisePlannerMigration\StepwisePlannerMigration.csproj", "{38374C62-0263-4FE8-A18C-70FC8132912B}"
346346
EndProject
347-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.AzureCosmosDBNoSQL.UnitTests", "src\Connectors\Connectors.AzureCosmosDBNoSQL.UnitTests\Connectors.AzureCosmosDBNoSQL.UnitTests.csproj", "{385A8FE5-87E2-4458-AE09-35E10BD2E67F}"
347+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.CosmosNoSql.UnitTests", "src\Connectors\Connectors.CosmosNoSql.UnitTests\Connectors.CosmosNoSql.UnitTests.csproj", "{385A8FE5-87E2-4458-AE09-35E10BD2E67F}"
348348
EndProject
349349
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.OpenAI.UnitTests", "src\Connectors\Connectors.OpenAI.UnitTests\Connectors.OpenAI.UnitTests.csproj", "{36DDC119-C030-407E-AC51-A877E9E0F660}"
350350
EndProject
@@ -378,7 +378,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Process.UnitTests", "src\Ex
378378
EndProject
379379
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "GettingStartedWithProcesses", "samples\GettingStartedWithProcesses\GettingStartedWithProcesses.csproj", "{C057ACDF-DDD8-496B-BAF9-1C6E4E1248D7}"
380380
EndProject
381-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.Sqlite.UnitTests", "src\Connectors\Connectors.Sqlite.UnitTests\Connectors.Sqlite.UnitTests.csproj", "{0846F178-7EC3-4FE6-AC5C-7146E9FD9A3E}"
381+
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Connectors.SqliteVec.UnitTests", "src\Connectors\Connectors.SqliteVec.UnitTests\Connectors.SqliteVec.UnitTests.csproj", "{0846F178-7EC3-4FE6-AC5C-7146E9FD9A3E}"
382382
EndProject
383383
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "VectorData.Abstractions", "src\Connectors\VectorData.Abstractions\VectorData.Abstractions.csproj", "{CF09AE39-67BA-4FE0-A0CD-A49BED956311}"
384384
EndProject
@@ -443,13 +443,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VectorDataIntegrationTests"
443443
EndProject
444444
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RedisIntegrationTests", "src\VectorDataIntegrationTests\RedisIntegrationTests\RedisIntegrationTests.csproj", "{F7EA82A4-A626-4316-AA47-EAC3A0E85870}"
445445
EndProject
446-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PostgresIntegrationTests", "src\VectorDataIntegrationTests\PostgresIntegrationTests\PostgresIntegrationTests.csproj", "{3148FF01-38C7-4BEB-8CEC-9323EC7C593B}"
446+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PgVectorIntegrationTests", "src\VectorDataIntegrationTests\PgVectorIntegrationTests\PgVectorIntegrationTests.csproj", "{3148FF01-38C7-4BEB-8CEC-9323EC7C593B}"
447447
EndProject
448448
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InMemoryIntegrationTests", "src\VectorDataIntegrationTests\InMemoryIntegrationTests\InMemoryIntegrationTests.csproj", "{F5126690-0FD1-4777-9EDF-B3F5B7B3730B}"
449449
EndProject
450-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CosmosNoSQLIntegrationTests", "src\VectorDataIntegrationTests\CosmosNoSQLIntegrationTests\CosmosNoSQLIntegrationTests.csproj", "{E200425C-E501-430C-8A8B-BC0088BD94DB}"
450+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CosmosNoSqlIntegrationTests", "src\VectorDataIntegrationTests\CosmosNoSqlIntegrationTests\CosmosNoSqlIntegrationTests.csproj", "{E200425C-E501-430C-8A8B-BC0088BD94DB}"
451451
EndProject
452-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqliteIntegrationTests", "src\VectorDataIntegrationTests\SqliteIntegrationTests\SqliteIntegrationTests.csproj", "{709B3933-5286-4139-8D83-8C7AA5746FAE}"
452+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SqliteVecIntegrationTests", "src\VectorDataIntegrationTests\SqliteVecIntegrationTests\SqliteVecIntegrationTests.csproj", "{709B3933-5286-4139-8D83-8C7AA5746FAE}"
453453
EndProject
454454
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WeaviateIntegrationTests", "src\VectorDataIntegrationTests\WeaviateIntegrationTests\WeaviateIntegrationTests.csproj", "{E3CECC65-1B00-4E3A-90B6-FC7A2C64E41F}"
455455
EndProject
@@ -465,7 +465,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugins.AI", "src\Plugins\P
465465
EndProject
466466
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Plugins.AI.UnitTests", "src\Plugins\Plugins.AI.UnitTests\Plugins.AI.UnitTests.csproj", "{03ACF9DD-00C9-4F2B-80F1-537E2151AF5F}"
467467
EndProject
468-
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Connectors.Postgres.UnitTests", "src\Connectors\Connectors.Postgres.UnitTests\Connectors.Postgres.UnitTests.csproj", "{2A1EC0DA-AD01-4421-AADC-1DFF65C71CCC}"
468+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Connectors.PgVector.UnitTests", "src\Connectors\Connectors.PgVector.UnitTests\Connectors.PgVector.UnitTests.csproj", "{2A1EC0DA-AD01-4421-AADC-1DFF65C71CCC}"
469469
EndProject
470470
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Agents.Yaml", "src\Agents\Yaml\Agents.Yaml.csproj", "{29DF6278-06FC-4F1D-8555-D3E880AF3204}"
471471
EndProject

dotnet/samples/Concepts/Caching/SemanticCachingWithFilters.cs

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ public async Task RedisCacheAsync()
8282
/// How to setup Azure Cosmos DB for MongoDB cluster: https://learn.microsoft.com/en-gb/azure/cosmos-db/mongodb/vcore/quickstart-portal
8383
/// </summary>
8484
[Fact]
85-
public async Task AzureCosmosDBMongoDBCacheAsync()
85+
public async Task CosmosMongoDBCacheAsync()
8686
{
8787
var kernel = GetKernelWithCache(services =>
8888
{
89-
services.AddAzureCosmosDBMongoDBVectorStore(
90-
TestConfiguration.AzureCosmosDbMongoDb.ConnectionString,
91-
TestConfiguration.AzureCosmosDbMongoDb.DatabaseName);
89+
services.AddCosmosMongoVectorStore(
90+
TestConfiguration.CosmosMongo.ConnectionString,
91+
TestConfiguration.CosmosMongo.DatabaseName);
9292
});
9393

9494
var result1 = await ExecuteAsync(kernel, "First run", "What's the tallest building in New York?");
@@ -182,7 +182,7 @@ public class CacheBaseFilter
182182
/// </summary>
183183
public sealed class PromptCacheFilter(
184184
IEmbeddingGenerator<string, Embedding<float>> embeddingGenerator,
185-
IVectorStore vectorStore)
185+
VectorStore vectorStore)
186186
: CacheBaseFilter, IPromptRenderFilter
187187
{
188188
public async Task OnPromptRenderAsync(PromptRenderContext context, Func<PromptRenderContext, Task> next)
@@ -196,10 +196,10 @@ public async Task OnPromptRenderAsync(PromptRenderContext context, Func<PromptRe
196196
var promptEmbedding = await embeddingGenerator.GenerateAsync(prompt);
197197

198198
var collection = vectorStore.GetCollection<string, CacheRecord>(CollectionName);
199-
await collection.CreateCollectionIfNotExistsAsync();
199+
await collection.EnsureCollectionExistsAsync();
200200

201201
// Search for similar prompts in cache.
202-
var searchResult = (await collection.SearchEmbeddingAsync(promptEmbedding, top: 1, cancellationToken: context.CancellationToken)
202+
var searchResult = (await collection.SearchAsync(promptEmbedding, top: 1, cancellationToken: context.CancellationToken)
203203
.FirstOrDefaultAsync())?.Record;
204204

205205
// If result exists, return it.
@@ -219,7 +219,7 @@ public async Task OnPromptRenderAsync(PromptRenderContext context, Func<PromptRe
219219
/// </summary>
220220
public sealed class FunctionCacheFilter(
221221
IEmbeddingGenerator<string, Embedding<float>> embeddingGenerator,
222-
IVectorStore vectorStore)
222+
VectorStore vectorStore)
223223
: CacheBaseFilter, IFunctionInvocationFilter
224224
{
225225
public async Task OnFunctionInvocationAsync(Microsoft.SemanticKernel.FunctionInvocationContext context, Func<Microsoft.SemanticKernel.FunctionInvocationContext, Task> next)
@@ -241,7 +241,7 @@ public async Task OnFunctionInvocationAsync(Microsoft.SemanticKernel.FunctionInv
241241

242242
// Cache rendered prompt and LLM result.
243243
var collection = vectorStore.GetCollection<string, CacheRecord>(CollectionName);
244-
await collection.CreateCollectionIfNotExistsAsync();
244+
await collection.EnsureCollectionExistsAsync();
245245

246246
var cacheRecord = new CacheRecord
247247
{
@@ -284,16 +284,16 @@ private async Task<FunctionResult> ExecuteAsync(Kernel kernel, string title, str
284284

285285
private sealed class CacheRecord
286286
{
287-
[VectorStoreRecordKey]
287+
[VectorStoreKey]
288288
public string Id { get; set; }
289289

290-
[VectorStoreRecordData]
290+
[VectorStoreData]
291291
public string Prompt { get; set; }
292292

293-
[VectorStoreRecordData]
293+
[VectorStoreData]
294294
public string Result { get; set; }
295295

296-
[VectorStoreRecordVector(Dimensions: 1536)]
296+
[VectorStoreVector(Dimensions: 1536)]
297297
public ReadOnlyMemory<float> PromptEmbedding { get; set; }
298298
}
299299

0 commit comments

Comments
 (0)