Home / Class/ BaseMessagePromptTemplate Class — langchain Architecture

BaseMessagePromptTemplate Class — langchain Architecture

Architecture documentation for the BaseMessagePromptTemplate class in message.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  75bfc804_f68f_7b77_a169_0fd019f759a2["BaseMessagePromptTemplate"]
  f3658565_d05c_7f49_b7f8_622b7ef34f33["Serializable"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|extends| f3658565_d05c_7f49_b7f8_622b7ef34f33
  593c0a14_f867_7cd3_9fea_9cdefbda6270["message.py"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|defined in| 593c0a14_f867_7cd3_9fea_9cdefbda6270
  d8e008a2_edd9_8e06_7c78_6675555f6061["is_lc_serializable()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| d8e008a2_edd9_8e06_7c78_6675555f6061
  ec2d5777_2fd0_2d63_18fd_bdf51cdb5d7f["get_lc_namespace()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| ec2d5777_2fd0_2d63_18fd_bdf51cdb5d7f
  2ac671db_d079_0bd5_2dab_2b28a46cb57d["format_messages()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| 2ac671db_d079_0bd5_2dab_2b28a46cb57d
  f0e9dfcf_b1c5_505e_4e4e_eb4345198868["aformat_messages()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| f0e9dfcf_b1c5_505e_4e4e_eb4345198868
  bfb24498_c13f_5dfa_89ce_121248ff6f48["input_variables()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| bfb24498_c13f_5dfa_89ce_121248ff6f48
  ed53e4d2_3b32_5b99_51e6_0c8be6c94152["pretty_repr()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| ed53e4d2_3b32_5b99_51e6_0c8be6c94152
  566dc29f_da6c_18a8_0aa7_e8f133820528["pretty_print()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| 566dc29f_da6c_18a8_0aa7_e8f133820528
  821126fe_9ba5_ceb5_d801_26c5206a87be["__add__()"]
  75bfc804_f68f_7b77_a169_0fd019f759a2 -->|method| 821126fe_9ba5_ceb5_d801_26c5206a87be

Relationship Graph

Source Code

libs/core/langchain_core/prompts/message.py lines 16–97

class BaseMessagePromptTemplate(Serializable, ABC):
    """Base class for message prompt templates."""

    @classmethod
    def is_lc_serializable(cls) -> bool:
        """Return `True` as this class is serializable."""
        return True

    @classmethod
    def get_lc_namespace(cls) -> list[str]:
        """Get the namespace of the LangChain object.

        Returns:
            `["langchain", "prompts", "chat"]`
        """
        return ["langchain", "prompts", "chat"]

    @abstractmethod
    def format_messages(self, **kwargs: Any) -> list[BaseMessage]:
        """Format messages from kwargs.

        Should return a list of `BaseMessage` objects.

        Args:
            **kwargs: Keyword arguments to use for formatting.

        Returns:
            List of `BaseMessage` objects.
        """

    async def aformat_messages(self, **kwargs: Any) -> list[BaseMessage]:
        """Async format messages from kwargs.

        Args:
            **kwargs: Keyword arguments to use for formatting.

        Returns:
            List of `BaseMessage` objects.
        """
        return self.format_messages(**kwargs)

    @property
    @abstractmethod
    def input_variables(self) -> list[str]:
        """Input variables for this prompt template.

        Returns:
            List of input variables.
        """

    def pretty_repr(
        self,
        html: bool = False,  # noqa: FBT001,FBT002
    ) -> str:
        """Human-readable representation.

        Args:
            html: Whether to format as HTML.

        Returns:
            Human-readable representation.
        """
        raise NotImplementedError

    def pretty_print(self) -> None:
        """Print a human-readable representation."""
        print(self.pretty_repr(html=is_interactive_env()))  # noqa: T201

    def __add__(self, other: Any) -> ChatPromptTemplate:
        """Combine two prompt templates.

        Args:
            other: Another prompt template.

        Returns:
            Combined prompt template.
        """
        # Import locally to avoid circular import.
        from langchain_core.prompts.chat import ChatPromptTemplate  # noqa: PLC0415

        prompt = ChatPromptTemplate(messages=[self])

Extends

Frequently Asked Questions

What is the BaseMessagePromptTemplate class?
BaseMessagePromptTemplate is a class in the langchain codebase, defined in libs/core/langchain_core/prompts/message.py.
Where is BaseMessagePromptTemplate defined?
BaseMessagePromptTemplate is defined in libs/core/langchain_core/prompts/message.py at line 16.
What does BaseMessagePromptTemplate extend?
BaseMessagePromptTemplate extends Serializable.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free