Skip to content

Commit

Permalink
fix: ChatPromptBuilder from_dict if template is None (#8165)
Browse files Browse the repository at this point in the history
* fix ChatPromptBuilder from dict if template=None

* fix ChatPromptBuilder from dict if template=None

* leave template None

---------

Co-authored-by: Marie-Luise Klaus <marieluise.klaus@deepset.ai>
  • Loading branch information
faymarie and Marie-Luise Klaus committed Aug 6, 2024
1 parent 2e2f5f1 commit 031b0bf
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
5 changes: 3 additions & 2 deletions haystack/components/builders/chat_prompt_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,8 @@ def from_dict(cls, data: Dict[str, Any]) -> "ChatPromptBuilder":
The deserialized component.
"""
init_parameters = data["init_parameters"]
template = init_parameters.get("template", [])
init_parameters["template"] = [ChatMessage.from_dict(d) for d in template]
template = init_parameters.get("template")
if template:
init_parameters["template"] = [ChatMessage.from_dict(d) for d in template]

return default_from_dict(cls, data)
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
---
fixes:
- |
Fix ChatPromptBuilder from_dict method when template value is None.
12 changes: 12 additions & 0 deletions test/components/builders/test_chat_prompt_builder.py
Original file line number Diff line number Diff line change
Expand Up @@ -535,3 +535,15 @@ def test_from_dict(self):
]
assert component._variables == ["var", "required_var"]
assert component._required_variables == ["required_var"]

def test_from_dict_template_none(self):
component = ChatPromptBuilder.from_dict(
data={
"type": "haystack.components.builders.chat_prompt_builder.ChatPromptBuilder",
"init_parameters": {"template": None},
}
)

assert component.template is None
assert component._variables is None
assert component._required_variables is None

0 comments on commit 031b0bf

Please sign in to comment.