Skip to content

LangChainChatModelFactory

autogen.interop.LangChainChatModelFactory #

Bases: ABC

create_base_chat_model classmethod #

create_base_chat_model(llm_config)
Source code in autogen/interop/langchain/langchain_chat_model_factory.py
@classmethod
def create_base_chat_model(cls, llm_config: dict[str, Any]) -> "BaseChatModel":  # type: ignore [no-any-unimported]
    first_llm_config = get_first_llm_config(llm_config)
    for factory in LangChainChatModelFactory._factories:
        if factory.accepts(first_llm_config):
            return factory.create(first_llm_config)

    raise ValueError("Could not find a factory for the given config.")

register_factory classmethod #

register_factory()
Source code in autogen/interop/langchain/langchain_chat_model_factory.py
@classmethod
def register_factory(cls) -> Callable[[type[T]], type[T]]:
    def decorator(factory: type[T]) -> type[T]:
        cls._factories.add(factory())
        return factory

    return decorator

prepare_config classmethod #

prepare_config(first_llm_config)
Source code in autogen/interop/langchain/langchain_chat_model_factory.py
@classmethod
def prepare_config(cls, first_llm_config: dict[str, Any]) -> dict[str, Any]:
    for pop_keys in ["api_type", "response_format"]:
        first_llm_config.pop(pop_keys, None)
    return first_llm_config

create abstractmethod classmethod #

create(first_llm_config)
Source code in autogen/interop/langchain/langchain_chat_model_factory.py
@classmethod
@abstractmethod
def create(cls, first_llm_config: dict[str, Any]) -> "BaseChatModel":  # type: ignore [no-any-unimported]
    ...

get_api_type abstractmethod classmethod #

get_api_type()
Source code in autogen/interop/langchain/langchain_chat_model_factory.py
@classmethod
@abstractmethod
def get_api_type(cls) -> str: ...

accepts classmethod #

accepts(first_llm_config)
Source code in autogen/interop/langchain/langchain_chat_model_factory.py
@classmethod
def accepts(cls, first_llm_config: dict[str, Any]) -> bool:
    return first_llm_config.get("api_type", "openai") == cls.get_api_type()  # type: ignore [no-any-return]