mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-17 15:35:14 +00:00
implement
This commit is contained in:
@@ -1243,6 +1243,16 @@ class ChatPromptTemplate(BaseChatPromptTemplate):
|
||||
raise ValueError(msg) # noqa:TRY004
|
||||
return result
|
||||
|
||||
def to_messages(self) -> list[BaseMessage]:
|
||||
"""Convert template into a list of messages.
|
||||
|
||||
This method fills in the template variables with placeholder values.
|
||||
|
||||
Returns:
|
||||
List of messages.
|
||||
"""
|
||||
return self.format_messages(**{k: "{" + k + "}" for k in self.input_variables})
|
||||
|
||||
def partial(self, **kwargs: Any) -> ChatPromptTemplate:
|
||||
"""Get a new ChatPromptTemplate with some input variables already filled in.
|
||||
|
||||
|
@@ -1236,3 +1236,46 @@ def test_dict_message_prompt_template_errors_on_jinja2() -> None:
|
||||
_ = ChatPromptTemplate.from_messages(
|
||||
[("human", [prompt])], template_format="jinja2"
|
||||
)
|
||||
|
||||
|
||||
def test_to_messages() -> None:
|
||||
prompt = ChatPromptTemplate(
|
||||
[
|
||||
{"role": "system", "content": "{foo} and {bar}"},
|
||||
{"role": "user", "content": "{baz} qux"},
|
||||
]
|
||||
)
|
||||
result = prompt.to_messages()
|
||||
expected = [SystemMessage("{foo} and {bar}"), HumanMessage("{baz} qux")]
|
||||
assert result == expected
|
||||
|
||||
prompt = ChatPromptTemplate(
|
||||
[
|
||||
{
|
||||
"role": "system",
|
||||
"content": "Describe the image provided.",
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": [
|
||||
{
|
||||
"type": "image",
|
||||
"url": "{url}",
|
||||
},
|
||||
],
|
||||
},
|
||||
]
|
||||
)
|
||||
result = prompt.to_messages()
|
||||
expected = [
|
||||
SystemMessage("Describe the image provided."),
|
||||
HumanMessage(
|
||||
content=[
|
||||
{
|
||||
"type": "image",
|
||||
"url": "{url}",
|
||||
}
|
||||
]
|
||||
),
|
||||
]
|
||||
assert result == expected
|
||||
|
Reference in New Issue
Block a user