_convert_to_message_template() — langchain Function Reference
Architecture documentation for the _convert_to_message_template() function in chat.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 0a946d27_710a_f7ff_e9e4_87561079dc25["_convert_to_message_template()"] d735cdf0_4dd6_b10d_3d65_7f753809639d["chat.py"] 0a946d27_710a_f7ff_e9e4_87561079dc25 -->|defined in| d735cdf0_4dd6_b10d_3d65_7f753809639d fd4d40b2_9f02_c4c9_852d_d998c70f1d1e["__init__()"] fd4d40b2_9f02_c4c9_852d_d998c70f1d1e -->|calls| 0a946d27_710a_f7ff_e9e4_87561079dc25 51e4c8c4_03c1_4bf3_6d35_36e10545e164["append()"] 51e4c8c4_03c1_4bf3_6d35_36e10545e164 -->|calls| 0a946d27_710a_f7ff_e9e4_87561079dc25 a7addf49_35b7_d70e_edec_9401bf339038["extend()"] a7addf49_35b7_d70e_edec_9401bf339038 -->|calls| 0a946d27_710a_f7ff_e9e4_87561079dc25 dee074bd_3404_de66_dbc9_422f215993ec["_create_template_from_message_type()"] 0a946d27_710a_f7ff_e9e4_87561079dc25 -->|calls| dee074bd_3404_de66_dbc9_422f215993ec 6966af16_ade2_de3e_4f06_f97eca43d8e0["from_template()"] 0a946d27_710a_f7ff_e9e4_87561079dc25 -->|calls| 6966af16_ade2_de3e_4f06_f97eca43d8e0 style 0a946d27_710a_f7ff_e9e4_87561079dc25 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
libs/core/langchain_core/prompts/chat.py lines 1407–1480
def _convert_to_message_template(
message: MessageLikeRepresentation,
template_format: PromptTemplateFormat = "f-string",
) -> BaseMessage | BaseMessagePromptTemplate | BaseChatPromptTemplate:
"""Instantiate a message from a variety of message formats.
A message can be represented using the following formats:
1. `BaseMessagePromptTemplate`
2. `BaseMessage`
3. 2-tuple of `(message type, template)`; e.g., `('human', '{user_input}')`
4. 2-tuple of `(message class, template)`
5. A string which is shorthand for `('human', template)`; e.g., `'{user_input}'`
Args:
message: A representation of a message in one of the supported formats.
template_format: Format of the template.
Returns:
An instance of a message or a message template.
Raises:
ValueError: If unexpected message type.
ValueError: If 2-tuple does not have 2 elements.
"""
if isinstance(message, (BaseMessagePromptTemplate, BaseChatPromptTemplate)):
message_: BaseMessage | BaseMessagePromptTemplate | BaseChatPromptTemplate = (
message
)
elif isinstance(message, BaseMessage):
message_ = message
elif isinstance(message, str):
message_ = _create_template_from_message_type(
"human", message, template_format=template_format
)
elif isinstance(message, (tuple, dict)):
if isinstance(message, dict):
if set(message.keys()) != {"content", "role"}:
msg = (
"Expected dict to have exact keys 'role' and 'content'."
f" Got: {message}"
)
raise ValueError(msg)
message_type_str = message["role"]
template = message["content"]
else:
if len(message) != 2: # noqa: PLR2004
msg = f"Expected 2-tuple of (role, template), got {message}"
raise ValueError(msg)
message_type_str, template = message
if isinstance(message_type_str, str):
message_ = _create_template_from_message_type(
message_type_str, template, template_format=template_format
)
elif (
hasattr(message_type_str, "model_fields")
and "type" in message_type_str.model_fields
):
message_type = message_type_str.model_fields["type"].default
message_ = _create_template_from_message_type(
message_type, template, template_format=template_format
)
else:
message_ = message_type_str(
prompt=PromptTemplate.from_template(
cast("str", template), template_format=template_format
)
)
else:
msg = f"Unsupported message type: {type(message)}"
raise NotImplementedError(msg)
return message_
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does _convert_to_message_template() do?
_convert_to_message_template() is a function in the langchain codebase, defined in libs/core/langchain_core/prompts/chat.py.
Where is _convert_to_message_template() defined?
_convert_to_message_template() is defined in libs/core/langchain_core/prompts/chat.py at line 1407.
What does _convert_to_message_template() call?
_convert_to_message_template() calls 2 function(s): _create_template_from_message_type, from_template.
What calls _convert_to_message_template()?
_convert_to_message_template() is called by 3 function(s): __init__, append, extend.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free