.Net: Add Mssql Server connector, using vector search with plain tables
Motivation and Context
Adding MSSQL Server connector.
Description
SQL server connector works when vector search capability is enabled in SQL server (In azure it works), but in on prem scenarios, vector search is not accessible. This PR uses plain tables to provide vector search using SQL features.
Contribution Checklist
- [x] The code builds clean without any errors or warnings
- [x] The PR follows the SK Contribution Guidelines and the pre-submission formatting script raises no violations
- [x] All unit tests pass, and I have added new tests where possible
- [x] I didn't break anyone :smile:
Since we also have a connector using the native vector functions (here: https://github.com/microsoft/semantic-kernel/tree/main/dotnet/src/Connectors/Connectors.Memory.SqlServer) can we call this connector Microsoft.SemanticKernel.Connectors.SqlServer.Classic instead of Microsoft.SemanticKernel.Connectors.MssqlServer.
That would help to bring clarity and have a clear differentiation between the one supporting native vectors functions and the one using a "classic" approach.
@RogerBarreto and @yorek as discussed internally, I renamed the connector to "classic" to match the clarity objectives regarding native approach...
Thank you!
@kbeaugrand Can you run dotnet format and commit the resulting changes
@kbeaugrand Can you run
dotnet formatand commit the resulting changes
yes done !
@RogerBarreto @cincuranet @markwallace-microsoft just checking if we're ready to release this PR. Looking forward to blog about this
I think we are (minus the failures from CI).
@kbeaugrand Apologies for the delay in getting back to you. Can you resolve the merge conflict and run dotnet format. I'll do a second review early next week with the plan to get this merged soonest.
@kbeaugrand we recently announced support for the new Microsoft.Extensions.VectorData.Abstractions. Our plan is to obsolete the old memory store abstractions so we're closing PR's that use those. If you are interested in updating to use the new Microsoft.Extensions.VectorData.Abstractions, we can consider this for additional the Semantic Kernel.