LangChain.Databases.Chroma 0.17.0, the latest stable on NuGet, does not work with Chroma 1.x. It talks to the v1 API of Chroma through Microsoft.SemanticKernel.Connectors.Chroma, and Chroma 1.x serves only the v2 API. Against chromadb/chroma:1.5.9:
CreateCollectionAsync: HttpOperationException: Response status code does not indicate success: 405 (Method Not Allowed).
IsCollectionExistsAsync: HttpOperationException: ... 410 (Gone).
GetCollectionAsync: InvalidOperationException: Collection not found, with the same 410 Gone inside.
The same code works against Chroma 0.5.15, the last release with only the v1 API.
Since LangChain.Databases moved to Microsoft.Extensions.VectorData, Chroma can come back through a Microsoft.Extensions.VectorData provider for Chroma, with the existing tests. A pull request that does this, with the tests passing on Chroma 1.5.9, follows. The old package could then be deprecated on NuGet in favor of that provider.
LangChain.Databases.Chroma 0.17.0, the latest stable on NuGet, does not work with Chroma 1.x. It talks to the v1 API of Chroma through Microsoft.SemanticKernel.Connectors.Chroma, and Chroma 1.x serves only the v2 API. Against
chromadb/chroma:1.5.9:CreateCollectionAsync:HttpOperationException: Response status code does not indicate success: 405 (Method Not Allowed).IsCollectionExistsAsync:HttpOperationException: ... 410 (Gone).GetCollectionAsync:InvalidOperationException: Collection not found, with the same 410 Gone inside.The same code works against Chroma 0.5.15, the last release with only the v1 API.
Since LangChain.Databases moved to Microsoft.Extensions.VectorData, Chroma can come back through a Microsoft.Extensions.VectorData provider for Chroma, with the existing tests. A pull request that does this, with the tests passing on Chroma 1.5.9, follows. The old package could then be deprecated on NuGet in favor of that provider.