Skip to content

result_utils

Class info

Classes

Name Children Inherits
InlineResponseDefinition
llmling_agent.models.result_types
Inline definition of an agent's response structure.

    🛈 DocStrings

    Response utilities.

    resolve_response_type

    resolve_response_type(
        type_name: str | InlineResponseDefinition, context: AgentContext | None
    ) -> type[BaseModel]
    

    Resolve response type from string name to actual type.

    Parameters:

    Name Type Description Default
    type_name str | InlineResponseDefinition

    Name of the response type

    required
    context AgentContext | None

    Agent context containing response definitions

    required

    Returns:

    Type Description
    type[BaseModel]

    Resolved Pydantic model type

    Raises:

    Type Description
    ValueError

    If type cannot be resolved

    Source code in src/llmling_agent/utils/result_utils.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
    def resolve_response_type(
        type_name: str | InlineResponseDefinition,
        context: AgentContext | None,
    ) -> type[BaseModel]:
        """Resolve response type from string name to actual type.
    
        Args:
            type_name: Name of the response type
            context: Agent context containing response definitions
    
        Returns:
            Resolved Pydantic model type
    
        Raises:
            ValueError: If type cannot be resolved
        """
        from llmling_agent.models.result_types import (
            ImportedResponseDefinition,
            InlineResponseDefinition,
        )
    
        match type_name:
            case str() if context and type_name in context.definition.responses:
                # Get from shared responses
                response_def = context.definition.responses[type_name]
                match response_def:
                    case ImportedResponseDefinition():
                        return response_def.resolve_model()
                    case InlineResponseDefinition():
                        return response_def.create_model()
            case InlineResponseDefinition():
                # Handle inline definition
                return type_name.create_model()
            case _:
                msg = f"Invalid result type: {type_name}"
                raise ValueError(msg)