Client

This module contains functionality related to the the client module for embedding.vector_stores.chroma.

Client

ChromaVectorStoreClientFactory

Bases: SingletonFactory

Factory for creating and managing Chroma vector store client instances.

This factory implements the Singleton pattern, ensuring only one client instance exists per unique configuration. It creates HTTP clients for connecting to Chroma DB vector store services.

Source code in src/embedding/vector_stores/chroma/client.py
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class ChromaVectorStoreClientFactory(SingletonFactory):
    """
    Factory for creating and managing Chroma vector store client instances.

    This factory implements the Singleton pattern, ensuring only one client
    instance exists per unique configuration. It creates HTTP clients for
    connecting to Chroma DB vector store services.
    """

    _configuration_class: Type = ChromaVectorStoreConfiguration

    @classmethod
    def _create_instance(
        cls, configuration: ChromaVectorStoreConfiguration
    ) -> ChromaClient:
        """
        Create a new Chroma client instance based on the provided configuration.

        Args:
            configuration (ChromaVectorStoreConfiguration): Configuration containing
                connection details for the Chroma vector store.

        Returns:
            ChromaClient: An HTTP client connected to the specified Chroma service.
        """
        return ChromaHttpClient(
            host=configuration.host,
            port=configuration.port,
        )