Chat_engine_configuration

This module contains functionality related to the the chat_engine_configuration module for augmentation.bootstrap.configuration.components.

Chat_engine_configuration

BaseChatEngineConfiguration

Bases: BaseConfiguration

Base configuration class for chat engines.

This class defines the standard configuration structure for all chat engines, including retriever, llm, and postprocessor components.

Source code in src/augmentation/bootstrap/configuration/components/chat_engine_configuration.py
 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
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
class BaseChatEngineConfiguration(BaseConfiguration):
    """Base configuration class for chat engines.

    This class defines the standard configuration structure for all chat engines,
    including retriever, llm, and postprocessor components.
    """

    retriever: Any = Field(
        ...,
        description="The retriever configuration for the augmentation pipeline.",
    )
    llm: Any = Field(
        ..., description="The llm configuration for the chat engine."
    )
    postprocessors: List[Any] = Field(
        ..., description="The list of postprocessors for the chat engine."
    )
    prompt_templates: ChatEnginePromptTemplates = Field(
        ...,
        description="The prompt templates configuration for the chat engine.",
        default_factory=ChatEnginePromptTemplates,
    )

    @field_validator("retriever")
    @classmethod
    def _validate_retriever(cls, value: Any, info: ValidationInfo) -> Any:
        """Validate retriever configuration against registered retriever types.

        Args:
            value: The retriever configuration to validate
            info: Validation context information

        Returns:
            Validated retriever configuration
        """
        return super()._validate(
            value,
            info=info,
            registry=RetrieverConfigurationRegistry,
        )

    @field_validator("llm")
    @classmethod
    def _validate_llm(cls, value: Any, info: ValidationInfo) -> Any:
        """Validate llm configuration against registered llm types.

        Args:
            value: The llm configuration to validate
            info: Validation context information

        Returns:
            Validated llm configuration
        """
        return super()._validate(
            value,
            info=info,
            registry=LLMConfigurationRegistry,
        )

    @field_validator("postprocessors")
    @classmethod
    def _validate_postprocessors(
        cls, value: Any, info: ValidationInfo
    ) -> List[Any]:
        """Validate postprocessors configuration against registered postprocessor types.

        Args:
            value: The postprocessor configurations to validate
            info: Validation context information

        Returns:
            List of validated postprocessor configurations
        """
        return super()._validate(
            value,
            info=info,
            registry=PostProcessorConfigurationRegistry,
        )

ChatEngineConfigurationRegistry

Bases: ConfigurationRegistry

Registry for chat engine configurations.

Maps chat engine names to their corresponding configuration classes to facilitate configuration validation and factory creation.

Attributes:
  • _key_class (Type) –

    The enumeration class for chat engine names.

Source code in src/augmentation/bootstrap/configuration/components/chat_engine_configuration.py
135
136
137
138
139
140
141
142
143
144
145
class ChatEngineConfigurationRegistry(ConfigurationRegistry):
    """Registry for chat engine configurations.

    Maps chat engine names to their corresponding configuration classes
    to facilitate configuration validation and factory creation.

    Attributes:
        _key_class: The enumeration class for chat engine names.
    """

    _key_class: Type = ChatEngineName

ChatEngineName

Bases: str, Enum

Enum defining available chat engine types.

Source code in src/augmentation/bootstrap/configuration/components/chat_engine_configuration.py
19
20
21
22
class ChatEngineName(str, Enum):
    """Enum defining available chat engine types."""

    LANGFUSE = "langfuse"