diff --git a/src/backend/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py b/src/backend/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py index fd04b0642..751d2518c 100644 --- a/src/backend/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py +++ b/src/backend/langflow/components/textsplitters/RecursiveCharacterTextSplitter.py @@ -1,6 +1,7 @@ from typing import Optional from langflow import CustomComponent from langchain.schema import Document +from langflow.utils.util import build_loader_repr_from_documents class RecursiveCharacterTextSplitterComponent(CustomComponent): @@ -74,5 +75,5 @@ class RecursiveCharacterTextSplitterComponent(CustomComponent): ) docs = splitter.split_documents(documents) - self.repr_value = separators + self.repr_value = build_loader_repr_from_documents(docs) return docs diff --git a/src/backend/langflow/utils/util.py b/src/backend/langflow/utils/util.py index 2c8f92ee1..921f913c6 100644 --- a/src/backend/langflow/utils/util.py +++ b/src/backend/langflow/utils/util.py @@ -2,12 +2,13 @@ import re import inspect import importlib from functools import wraps -from typing import Optional, Dict, Any, Union +from typing import List, Optional, Dict, Any, Union from docstring_parser import parse from langflow.template.frontend_node.constants import FORCE_SHOW_FIELDS from langflow.utils import constants +from langchain.schema import Document def build_template_from_function( @@ -456,3 +457,12 @@ def add_options_to_field( value["options"] = options_map[class_name] value["list"] = True value["value"] = options_map[class_name][0] + + +def build_loader_repr_from_documents(documents: List[Document]) -> str: + if documents: + avg_length = sum(len(doc.page_content) for doc in documents) / len(documents) + return f"""{len(documents)} documents + \nAvg. Document Length (characters): {int(avg_length)} + Documents: {documents[:3]}...""" + return "0 documents"