Skip to content
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

.Net: Where is IVectorSearch? #9280

Closed
lilhoser opened this issue Oct 15, 2024 · 3 comments
Closed

.Net: Where is IVectorSearch? #9280

lilhoser opened this issue Oct 15, 2024 · 3 comments
Assignees
Labels
memory .NET Issue or Pull requests regarding .NET code

Comments

@lilhoser
Copy link

This page states:

The VectorizedSearchAsync method allows searching using data that has already been vectorized.

This method takes a vector and an optional VectorSearchOptions class as input. This method is available on the following interfaces:

IVectorizedSearch<TRecord>
IVectorStoreRecordCollection<TKey, TRecord>
Note that IVectorStoreRecordCollection<TKey, TRecord> inherits from IVectorizedSearch<TRecord>.

And this unit test confirms that by grabbing IVectorSearch off the collection interface:

var collection = kernel.Services.GetRequiredService<IVectorStoreRecordCollection<ulong, TestRecord>>();
Assert.NotNull(collection);
Assert.IsType<QdrantVectorStoreRecordCollection<TestRecord>>(collection);
var vectorizedSearch = kernel.Services.GetRequiredService<IVectorizedSearch<TestRecord>>();

However, I'm using Microsoft.SemanticKernel.Connectors.Qdrant version 1.22.0-alpha and the reference is not resolved:

Image

And the source does not show IVectorStoreRecordCollection inheriting from IVectorizedSearch:

[Experimental("SKEXP0001")]
#pragma warning disable CA1711 // Identifiers should not have incorrect suffix
public interface IVectorStoreRecordCollection<TKey, TRecord>
#pragma warning restore CA1711 // Identifiers should not have incorrect suffix
    where TKey : notnull
    where TRecord : class
{
@markwallace-microsoft markwallace-microsoft added .NET Issue or Pull requests regarding .NET code triage labels Oct 15, 2024
@github-actions github-actions bot changed the title Where is IVectorSearch? .Net: Where is IVectorSearch? Oct 15, 2024
@lilhoser
Copy link
Author

Dupe of #9141

Not sure why docs are released before the code is ready.

@evchaki evchaki added the memory label Oct 16, 2024
@markwallace-microsoft
Copy link
Member

@lilhoser Apologies for the confusion we had a last minute issue publishing the packages. We expect they will be published today.

@westey-m
Copy link
Contributor

@lilhoser, the packages are now published and contains the new vector search capabilities. Apologies again for the delay and confusion.
Check out version 1.24.1 of any of the out of the box connectors, e.g.

https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.InMemory/1.24.1-preview
https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.AzureAISearch/1.24.1-preview
https://www.nuget.org/packages/Microsoft.SemanticKernel.Connectors.Redis/1.24.1-preview
etc.

Also, see here for a full list:
https://learn.microsoft.com/en-us/semantic-kernel/concepts/vector-store-connectors/out-of-the-box-connectors/

Note that the Pinecone connector is the only one that doesn't have VectorSearch implemented yet, as documented in limitations here, but this will follow soon.

@evchaki evchaki closed this as completed Oct 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
memory .NET Issue or Pull requests regarding .NET code
Projects
None yet
Development

No branches or pull requests

4 participants