Retriever

This module contains functionality related to the the retriever module for augmentation.components.retrievers.auto.

Retriever

AutoRetrieverFactory

Bases: Factory

Factory class for creating VectorIndexAutoRetriever instances.

This factory builds auto-retriever components that utilize LLMs to dynamically construct queries for vector store retrieval based on user inputs.

Attributes:
  • _configuration_class (Type) –

    The configuration class for the auto retriever.

Source code in src/augmentation/components/retrievers/auto/retriever.py
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
class AutoRetrieverFactory(Factory):
    """
    Factory class for creating VectorIndexAutoRetriever instances.

    This factory builds auto-retriever components that utilize LLMs to dynamically
    construct queries for vector store retrieval based on user inputs.

    Attributes:
        _configuration_class: The configuration class for the auto retriever.
    """

    _configuration_class: Type = AugmentationConfiguration

    @classmethod
    def _create_instance(
        cls, configuration: AugmentationConfiguration
    ) -> VectorIndexAutoRetriever:
        """
        Creates a VectorIndexAutoRetriever instance based on the provided configuration.

        This method:
        1. Sets up the vector store using the configuration
        2. Initializes the embedding model
        3. Creates a VectorStoreIndex from the vector store and embedding model
        4. Configures the LLM for the retriever
        5. Returns a fully configured VectorIndexAutoRetriever

        Args:
            configuration: AugmentationConfiguration object containing all necessary settings
                          for creating the retriever component

        Returns:
            VectorIndexAutoRetriever: A configured auto-retriever for dynamic query processing
        """
        vector_store_configuration = configuration.embedding.vector_store
        vector_store = VectorStoreRegistry.get(
            vector_store_configuration.name
        ).create(vector_store_configuration)
        embedding_model_config = configuration.embedding.embedding_model
        embedding_model = EmbeddingModelRegistry.get(
            embedding_model_config.provider
        ).create(embedding_model_config)
        index = VectorStoreIndex.from_vector_store(
            vector_store=vector_store,
            embed_model=embedding_model,
        )
        retriever_configuration = (
            configuration.augmentation.chat_engine.retriever
        )
        llm = LLMRegistry.get(retriever_configuration.llm.provider).create(
            retriever_configuration.llm
        )

        return VectorIndexAutoRetriever(
            index=index,
            similarity_top_k=retriever_configuration.similarity_top_k,
            llm=llm,
            vector_store_info=VectorStoreInfo(
                content_info="Knowledge base of FELD M company used for retrieval process in RAG system.",
                metadata_info=[
                    MetadataInfo(
                        name="creation_date",
                        type="date",
                        description=(
                            "Date of creation of the chunk's document"
                        ),
                    ),
                    MetadataInfo(
                        name="last_update_date",
                        type="date",
                        description=(
                            "Date of the last update of the chunk's document."
                        ),
                    ),
                ],
            ),
        )