Embedding_model

This module contains functionality related to the the embedding_model module for embedding.embedding_models.voyage.

Embedding_model

VoyageEmbeddingModelFactory

Bases: SingletonFactory

Factory for creating configured Voyage embedding models.

This factory ensures only one instance of a Voyage embedding model is created for each configuration.

Attributes:
  • _configuration_class (Type) –

    The configuration class for the Voyage embedding model.

Source code in src/embedding/embedding_models/voyage/embedding_model.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 VoyageEmbeddingModelFactory(SingletonFactory):
    """Factory for creating configured Voyage embedding models.

    This factory ensures only one instance of a Voyage embedding model
    is created for each configuration.

    Attributes:
        _configuration_class (Type): The configuration class for the Voyage embedding model.
    """

    _configuration_class: Type = VoyageEmbeddingModelConfiguration

    @classmethod
    def _create_instance(
        cls, configuration: VoyageEmbeddingModelConfiguration
    ) -> VoyageEmbedding:
        """Creates a Voyage embedding model based on provided configuration.

        Args:
            configuration: Voyage embedding model configuration with API key and settings.

        Returns:
            VoyageEmbedding: Configured Voyage embedding model instance.
        """
        return VoyageEmbedding(
            voyage_api_key=configuration.secrets.api_key.get_secret_value(),
            model_name=configuration.name,
            embed_batch_size=configuration.batch_size,
        )

VoyageEmbeddingModelTokenizerFactory

Bases: SingletonFactory

Factory for creating tokenizers for Voyage embedding models.

Provides a singleton tokenizer function based on the configuration.

Source code in src/embedding/embedding_models/voyage/embedding_model.py
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
class VoyageEmbeddingModelTokenizerFactory(SingletonFactory):
    """Factory for creating tokenizers for Voyage embedding models.

    Provides a singleton tokenizer function based on the configuration.
    """

    _configuration_class: Type = VoyageEmbeddingModelConfiguration

    @classmethod
    def _create_instance(
        cls, configuration: VoyageEmbeddingModelConfiguration
    ) -> Callable:
        """Creates a tokenizer function based on provided configuration.

        Args:
            configuration: Voyage embedding model configuration containing tokenizer name.

        Returns:
            Callable: A tokenizer function that can be used to tokenize input text.
        """
        return AutoTokenizer.from_pretrained(
            configuration.tokenizer_name
        ).tokenize