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])
Defined In
Extends
Source
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