Embedding_model

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

Embedding_model

OpenAIEmbeddingModelFactory

Bases: SingletonFactory

Factory for creating configured OpenAI embedding models.

This factory creates singleton instances of OpenAI embedding models based on the provided configuration.

Source code in src/embedding/embedding_models/openai/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
class OpenAIEmbeddingModelFactory(SingletonFactory):
    """Factory for creating configured OpenAI embedding models.

    This factory creates singleton instances of OpenAI embedding models
    based on the provided configuration.
    """

    _configuration_class: Type = OpenAIEmbeddingModelConfiguration

    @classmethod
    def _create_instance(
        cls, configuration: OpenAIEmbeddingModelConfiguration
    ) -> OpenAIEmbedding:
        """Creates an OpenAI embedding model based on provided configuration.

        Args:
            configuration: OpenAI embedding model configuration.

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

OpenAIEmbeddingModelTokenizerFactory

Bases: SingletonFactory

Factory for creating OpenAI tokenizer functions.

This factory creates singleton instances of OpenAI tokenizer functions based on the provided configuration.

Source code in src/embedding/embedding_models/openai/embedding_model.py
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class OpenAIEmbeddingModelTokenizerFactory(SingletonFactory):
    """Factory for creating OpenAI tokenizer functions.

    This factory creates singleton instances of OpenAI tokenizer functions
    based on the provided configuration.
    """

    _configuration_class: Type = OpenAIEmbeddingModelConfiguration

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

        Args:
            configuration: OpenAI embedding model configuration.

        Returns:
            Callable: A tokenizer function that converts text to token IDs.
        """
        return tiktoken.encoding_for_model(configuration.tokenizer_name).encode