-
Notifications
You must be signed in to change notification settings - Fork 53
Add Semantic Kernel Vector Store Reaction #295
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Add Semantic Kernel Vector Store Reaction #295
Conversation
@@ -0,0 +1,67 @@ | |||
apiVersion: v1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should the reaction provider by included in the installer by default?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added
let signalrFixture; | ||
|
||
// Helper function to get vector store documents from reaction pods | ||
async function getInMemoryVectorStoreDocuments(reactionName, collectionName) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This function is called getInMemoryVectorStoreDocuments
, but it looks like it gets a pod name?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The InMemory vector store doesn't expose an external API for verification.
Removed this function, and added comments explaining the limited validation we do here.
Longer term we can add an extra debug endpoint that allows e2e tests to validate the contents of the in-memory store.
@@ -0,0 +1,20 @@ | |||
FROM mcr.microsoft.com/dotnet/aspnet:9.0 AS base |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll need the azure-linux and default variants. I think this changed after branching, the makefile will also need to be updated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed
{ | ||
httpClient.Timeout = TimeSpan.FromSeconds(waitSeconds + ClientSideExtraTimeoutSeconds); | ||
|
||
var requestUri = $"{_managementApiBaseUrl}/v1/continuousQueries/{queryId}/ready-wait?timeout={waitSeconds}"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we update the SDK with this and use the SDK here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, will need to make that as a separate change.
Signed-off-by: Aman Singh <[email protected]>
f9efbbc
to
5d15bdb
Compare
e2e-tests/07-sync-inmemory-vectorstore-scenario/inmemory-vectorstore.test.js
Dismissed
Show dismissed
Hide dismissed
e2e-tests/08-sync-qdrant-vectorstore-scenario/qdrant-vectorstore.test.js
Fixed
Show fixed
Hide fixed
e2e-tests/08-sync-qdrant-vectorstore-scenario/qdrant-vectorstore.test.js
Dismissed
Show dismissed
Hide dismissed
e2e-tests/08-sync-qdrant-vectorstore-scenario/qdrant-vectorstore.test.js
Dismissed
Show dismissed
Hide dismissed
...ore/Drasi.Reactions.SyncSemanticKernelVectorStore.Tests/Factories/VectorStoreFactoryTests.cs
Dismissed
Show dismissed
Hide dismissed
...ctorstore/Drasi.Reactions.SyncSemanticKernelVectorStore/Adapters/QdrantVectorStoreAdapter.cs
Fixed
Show fixed
Hide fixed
...ctorstore/Drasi.Reactions.SyncSemanticKernelVectorStore/Adapters/QdrantVectorStoreAdapter.cs
Fixed
Show fixed
Hide fixed
...nc-vectorstore/Drasi.Reactions.SyncSemanticKernelVectorStore/Factories/VectorStoreFactory.cs
Fixed
Show fixed
Hide fixed
...nc-vectorstore/Drasi.Reactions.SyncSemanticKernelVectorStore/Factories/VectorStoreFactory.cs
Fixed
Show fixed
Hide fixed
...ctorstore/Drasi.Reactions.SyncSemanticKernelVectorStore/Services/ExtendedManagementClient.cs
Dismissed
Show dismissed
Hide dismissed
Signed-off-by: Aman Singh <[email protected]>
d057ace
to
cbc81a3
Compare
Signed-off-by: Aman Singh <[email protected]>
Signed-off-by: Aman Singh <[email protected]>
connectionString: "Endpoint=qdrant.default.svc.cluster.local:6334" | ||
embeddingServiceType: AzureOpenAI | ||
embeddingEndpoint: "https://aman-eastus-resource.cognitiveservices.azure.com/" | ||
embeddingApiKey: "${AZURE_OPENAI_KEY}" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ruokun-niu : Add this to github repo secrets
vectorStoreType: Qdrant | ||
connectionString: "Endpoint=qdrant.default.svc.cluster.local:6334" | ||
embeddingServiceType: AzureOpenAI | ||
embeddingEndpoint: "https://aman-eastus-resource.cognitiveservices.azure.com/" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps we should create one for Drasi instead of using a personal one?
e9cbd88
to
f5e9c70
Compare
Signed-off-by: Aman Singh <[email protected]>
f5e9c70
to
bc245db
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should rename this to simply VectorStore-Reaction
and drop all the references to Semantic Kernel because it is only an internal implementation detail.
Summary
Adds a new Drasi reaction that synchronizes query results to vector stores using Microsoft Semantic Kernel, enabling real-time vector search capabilities on continuously updated data.
Here is a diagram explaining the overall flow:

Use Cases
What's New
Core Features
Implementation
Reaction:
reactions/semantickernel/sync-vectorstore/
SDK Integration: Built on Drasi Reaction SDK for .NET
Testing
Unit Tests:
E2E Tests: Two comprehensive test suites
07-sync-inmemory-vectorstore-scenario
: Tests with InMemory store08-sync-qdrant-vectorstore-scenario
: Tests with persistent Qdrant storeInternal Architecture
Configuration
Reaction Provider
Example Reaction