diff --git a/src/backend/langflow/components/utilities/JSONDocumentBuilder.py b/src/backend/langflow/components/utilities/JSONDocumentBuilder.py index 4880200da..7cd41751f 100644 --- a/src/backend/langflow/components/utilities/JSONDocumentBuilder.py +++ b/src/backend/langflow/components/utilities/JSONDocumentBuilder.py @@ -13,6 +13,7 @@ from langflow import CustomComponent from langchain.schema import Document +from langflow.database.models.base import orjson_dumps class JSONDocumentBuilder(CustomComponent): @@ -34,9 +35,18 @@ class JSONDocumentBuilder(CustomComponent): documents = None if isinstance(document, list): documents = [ - Document(page_content={key: doc.page_content}) for doc in document + Document( + page_content=orjson_dumps({key: doc.page_content}, indent_2=False) + ) + for doc in document ] + elif isinstance(document, Document): + documents = Document( + page_content=orjson_dumps({key: document.page_content}, indent_2=False) + ) else: - documents = Document(page_content={key: document.page_content}) + raise TypeError( + f"Expected Document or list of Documents, got {type(document)}" + ) self.repr_value = documents return documents