Coverage for haystack/components/joiners/string_joiner.py: 100%
8 statements
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-21 13:53 +0000
« prev ^ index » next coverage.py v7.15.4, created at 2026-08-21 13:53 +0000
1# SPDX-FileCopyrightText: 2022-present deepset GmbH <info@deepset.ai>
2#
3# SPDX-License-Identifier: Apache-2.0
6from haystack import component
7from haystack.core.component.types import Variadic
10@component
11class StringJoiner:
12 """
13 Component to join strings from different components to a list of strings.
15 ### Usage example
17 ```python
18 from haystack.components.joiners import StringJoiner
19 from haystack.components.builders import PromptBuilder
20 from haystack.core.pipeline import Pipeline
22 from haystack.components.generators.chat import OpenAIChatGenerator
23 from haystack.dataclasses import ChatMessage
25 string_1 = "What's Natural Language Processing?"
26 string_2 = "What is life?"
28 pipeline = Pipeline()
29 pipeline.add_component("prompt_builder_1", PromptBuilder("Builder 1: {{query}}"))
30 pipeline.add_component("prompt_builder_2", PromptBuilder("Builder 2: {{query}}"))
31 pipeline.add_component("string_joiner", StringJoiner())
33 pipeline.connect("prompt_builder_1.prompt", "string_joiner.strings")
34 pipeline.connect("prompt_builder_2.prompt", "string_joiner.strings")
36 print(pipeline.run(data={"prompt_builder_1": {"query": string_1}, "prompt_builder_2": {"query": string_2}}))
38 # >> {"string_joiner": {"strings": ["Builder 1: What's Natural Language Processing?", "Builder 2: What is life?"]}}
39 ```
40 """
42 @component.output_types(strings=list[str])
43 def run(self, strings: Variadic[str]) -> dict[str, list[str]]:
44 """
45 Joins strings into a list of strings
47 :param strings:
48 strings from different components
50 :returns:
51 A dictionary with the following keys:
52 - `strings`: Merged list of strings
53 """
55 out_strings = list(strings)
56 return {"strings": out_strings}