Adding Chroma to Semantic Kernel
Motivation and Context
Please help reviewers and future users, providing the following information:
-
Why is this change required? Add Chroma DB vector database into the Semantic Kernel
-
What problem does it solve? Adding Chroma DB vector database to persist Memory with Semantic Kernel
-
What scenario does it contribute to? Persistence Memory
-
If it fixes an open issue, please link to the issue here. N/A
Description
Currently this is not validated against a Chroma Service, but provides this base level functionality for Chroma vector DB. Upon creation of a ChromaDB server for validation slight changes may need to be made. Please review with the view for SK syntax and correctness. Notes to consider:
- Chroma does not currently have default batch features outside of core add, will review upon server implementation options. if repeating Add API will be sufficient.
- Chroma leverages an embedding function with search, will review upon server implementation if leaving this out of REST call still provides the correct Nearest search. This will be implemented with this PR shortly as validated against server.
- Server stand-up and validation is in progress.
Contribution Checklist
- [ ] The code builds clean without any errors or warnings
- [X ] The PR follows SK Contribution Guidelines (https://github.com/microsoft/semantic-kernel/blob/main/CONTRIBUTING.md)
- [X ] The code follows the .NET coding conventions (https://learn.microsoft.com/dotnet/csharp/fundamentals/coding-style/coding-conventions) verified with
dotnet format - [ ] All unit tests pass, and I have added new tests where possible
- [ X] I didn't break anyone :smile:
@tawalke make sure the dotnet-format is passing and publish this when it is ready for folks to review.
This PR is in draft, @dmytrostruk per our conversation. I'm going to close it and it can be resubmitted.