From a99f2b43655e512bccd3c726b8562e56ae30b771 Mon Sep 17 00:00:00 2001 From: Rodrigo Date: Tue, 18 Jun 2024 11:54:04 -0300 Subject: [PATCH] refactor: Update ParseDataComponent to include a separator option --- .../base/langflow/components/helpers/ParseData.py | 10 ++++++++-- src/backend/base/langflow/helpers/data.py | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/backend/base/langflow/components/helpers/ParseData.py b/src/backend/base/langflow/components/helpers/ParseData.py index 5af8aa459..375830a02 100644 --- a/src/backend/base/langflow/components/helpers/ParseData.py +++ b/src/backend/base/langflow/components/helpers/ParseData.py @@ -1,6 +1,6 @@ from langflow.custom import Component from langflow.helpers.data import data_to_text -from langflow.inputs import MultilineInput, DataInput +from langflow.inputs import MultilineInput, DataInput, StrInput from langflow.template import Output from langflow.schema.message import Message @@ -18,6 +18,12 @@ class ParseDataComponent(Component): info="The template to use for formatting the data. It can contain the keys {text}, {data} or any other key in the Data.", value="{text}" ), + StrInput( + name="sep", + display_name="Separator", + advanced=True, + value='---' + ) ] outputs = [ @@ -28,6 +34,6 @@ class ParseDataComponent(Component): data = self.data if isinstance(self.data, list) else [self.data] template = self.template - result_string = data_to_text(template, data) + result_string = data_to_text(template, data, sep=self.sep) self.status = result_string return Message(text=result_string) diff --git a/src/backend/base/langflow/helpers/data.py b/src/backend/base/langflow/helpers/data.py index 859cd57c1..381037078 100644 --- a/src/backend/base/langflow/helpers/data.py +++ b/src/backend/base/langflow/helpers/data.py @@ -19,7 +19,7 @@ def docs_to_data(documents: list[Document]) -> list[Data]: return [Data.from_document(document) for document in documents] -def data_to_text(template: str, data: Union[Data, list[Data]]) -> str: +def data_to_text(template: str, data: Union[Data, list[Data]], sep: str = "\n") -> str: """ Converts a list of Data to a list of texts. @@ -40,7 +40,7 @@ def data_to_text(template: str, data: Union[Data, list[Data]]) -> str: _data.append(value) formated_data = [template.format(data=value.data, **value.data) for value in _data] - return "\n".join(formated_data) + return sep.join(formated_data) def messages_to_text(template: str, messages: Union[Message, list[Message]]) -> str: