_StringImageMessagePromptTemplate Class — langchain Architecture
Architecture documentation for the _StringImageMessagePromptTemplate class in chat.py from the langchain codebase.
Entity Profile
Dependency Diagram
graph TD 894611e5_5039_7621_4673_821d0b9b6f17["_StringImageMessagePromptTemplate"] 75bfc804_f68f_7b77_a169_0fd019f759a2["BaseMessagePromptTemplate"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|extends| 75bfc804_f68f_7b77_a169_0fd019f759a2 a3097815_cadb_7ebc_b29a_72117ccf6e27["StringPromptTemplate"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|extends| a3097815_cadb_7ebc_b29a_72117ccf6e27 6a465cb4_c33a_e368_ad81_def98b4d2da2["ImagePromptTemplate"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|extends| 6a465cb4_c33a_e368_ad81_def98b4d2da2 99b61388_a110_30d7_e5b6_3ec6b66bc790["DictPromptTemplate"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|extends| 99b61388_a110_30d7_e5b6_3ec6b66bc790 d735cdf0_4dd6_b10d_3d65_7f753809639d["chat.py"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|defined in| d735cdf0_4dd6_b10d_3d65_7f753809639d 48373769_1ea6_b4a1_72e7_07082679631b["from_template()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 48373769_1ea6_b4a1_72e7_07082679631b 2d45b52a_4608_cd37_32ee_8262977a52f4["from_template_file()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 2d45b52a_4608_cd37_32ee_8262977a52f4 294ab761_8d23_d66d_6743_cc31d8ac0289["format_messages()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 294ab761_8d23_d66d_6743_cc31d8ac0289 294ec36d_5c45_aa10_07c1_4936f16dc663["aformat_messages()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 294ec36d_5c45_aa10_07c1_4936f16dc663 38070047_2980_adb7_da5a_e41ca211b874["input_variables()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 38070047_2980_adb7_da5a_e41ca211b874 4d5e2501_6d84_a2a3_49d1_fa84af2fe2d1["format()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 4d5e2501_6d84_a2a3_49d1_fa84af2fe2d1 12501cb5_f260_9904_b738_b5abce848eb3["aformat()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 12501cb5_f260_9904_b738_b5abce848eb3 9774ca51_c1fb_c680_32ab_554a3b7f3c21["pretty_repr()"] 894611e5_5039_7621_4673_821d0b9b6f17 -->|method| 9774ca51_c1fb_c680_32ab_554a3b7f3c21
Relationship Graph
Source Code
libs/core/langchain_core/prompts/chat.py lines 396–660
class _StringImageMessagePromptTemplate(BaseMessagePromptTemplate):
"""Human message prompt template. This is a message sent from the user."""
prompt: (
StringPromptTemplate
| list[StringPromptTemplate | ImagePromptTemplate | DictPromptTemplate]
)
"""Prompt template."""
additional_kwargs: dict = Field(default_factory=dict)
"""Additional keyword arguments to pass to the prompt template."""
_msg_class: type[BaseMessage]
@classmethod
def from_template(
cls: type[Self],
template: str
| list[str | _TextTemplateParam | _ImageTemplateParam | dict[str, Any]],
template_format: PromptTemplateFormat = "f-string",
*,
partial_variables: dict[str, Any] | None = None,
**kwargs: Any,
) -> Self:
"""Create a class from a string template.
Args:
template: a template.
template_format: format of the template.
Options are: `'f-string'`, `'mustache'`, `'jinja2'`.
partial_variables: A dictionary of variables that can be used too partially.
**kwargs: Keyword arguments to pass to the constructor.
Returns:
A new instance of this class.
Raises:
ValueError: If the template is not a string or list of strings.
"""
if isinstance(template, str):
prompt: StringPromptTemplate | list = PromptTemplate.from_template(
template,
template_format=template_format,
partial_variables=partial_variables,
)
return cls(prompt=prompt, **kwargs)
if isinstance(template, list):
if (partial_variables is not None) and len(partial_variables) > 0:
msg = "Partial variables are not supported for list of templates."
raise ValueError(msg)
prompt = []
for tmpl in template:
if isinstance(tmpl, str) or (
isinstance(tmpl, dict)
and "text" in tmpl
and set(tmpl.keys()) <= {"type", "text"}
):
if isinstance(tmpl, str):
text: str = tmpl
else:
text = cast("_TextTemplateParam", tmpl)["text"] # type: ignore[assignment]
prompt.append(
PromptTemplate.from_template(
text, template_format=template_format
)
)
elif (
isinstance(tmpl, dict)
and "image_url" in tmpl
and set(tmpl.keys())
<= {
"type",
"image_url",
}
):
img_template = cast("_ImageTemplateParam", tmpl)["image_url"]
input_variables = []
if isinstance(img_template, str):
variables = get_template_variables(
img_template, template_format
Defined In
Source
Frequently Asked Questions
What is the _StringImageMessagePromptTemplate class?
_StringImageMessagePromptTemplate is a class in the langchain codebase, defined in libs/core/langchain_core/prompts/chat.py.
Where is _StringImageMessagePromptTemplate defined?
_StringImageMessagePromptTemplate is defined in libs/core/langchain_core/prompts/chat.py at line 396.
What does _StringImageMessagePromptTemplate extend?
_StringImageMessagePromptTemplate extends BaseMessagePromptTemplate, StringPromptTemplate, ImagePromptTemplate, DictPromptTemplate.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free