Source code for src.openCHA.response_generators.initialize_response_generator
from typing import Any
from openCHA.llms import BaseLLM
from openCHA.llms import LLM_TO_CLASS
from openCHA.llms import LLMType
from openCHA.response_generators import (
    BaseResponseGenerator,
)
from openCHA.response_generators import RESPONSE_GENERATOR_TO_CLASS
from openCHA.response_generators import (
    ResponseGeneratorType,
)
[docs]
def initialize_response_generator(
    llm: str = LLMType.OPENAI,
    response_generator: str = ResponseGeneratorType.BASE_GENERATOR,
    prefix: str = "",
    **kwargs: Any,
) -> BaseResponseGenerator:
    """
    This method provides a convenient way to initialize a response generator based on the specified language model type
    and response generator type. It handles the instantiation of the language model and the response generator class.
    Args:
        llm (str): Type of language model type to be used.
        response_generator (str): Type of response generator to be initialized.
        prefix (str): Prefix to be added to generated responses.
        **kwargs (Any): Additional keyword arguments.
    Return:
        BaseResponseGenerator: Initialized instance of the response generator.
    Example:
        .. code-block:: python
            from openCHA.llms import LLMType
            from openCHA.response_generators import ResponseGeneratorType
            response_generators = initialize_planner(llm=LLMType.OPENAI, response_generator=ResponseGeneratorType.BASE_GENERATOR)
    """
    if response_generator not in RESPONSE_GENERATOR_TO_CLASS:
        raise ValueError(
            f"Got unknown planner type: {response_generator}. "
            f"Valid types are: {RESPONSE_GENERATOR_TO_CLASS.keys()}."
        )
    if llm not in LLM_TO_CLASS:
        raise ValueError(
            f"Got unknown llm type: {llm}. "
            f"Valid types are: {LLM_TO_CLASS.keys()}."
        )
    response_generator_cls = RESPONSE_GENERATOR_TO_CLASS[
        response_generator
    ]
    llm_model = LLM_TO_CLASS[llm]()
    response_generator = response_generator_cls(
        llm_model=llm_model, prefix=prefix
    )
    return response_generator