diff --git a/src/backend/langflow/components/vectorstores/Chroma.py b/src/backend/langflow/components/vectorstores/Chroma.py index dd65e26c8..a7f8a200c 100644 --- a/src/backend/langflow/components/vectorstores/Chroma.py +++ b/src/backend/langflow/components/vectorstores/Chroma.py @@ -1,12 +1,12 @@ from typing import Optional, Union -from langflow import CustomComponent -from langchain.vectorstores import Chroma -from langchain.schema import Document -from langchain.vectorstores.base import VectorStore -from langchain.schema import BaseRetriever -from langchain.embeddings.base import Embeddings import chromadb # type: ignore +from langchain.embeddings.base import Embeddings +from langchain.schema import BaseRetriever, Document +from langchain.vectorstores import Chroma +from langchain.vectorstores.base import VectorStore + +from langflow import CustomComponent class ChromaComponent(CustomComponent): @@ -95,6 +95,10 @@ class ChromaComponent(CustomComponent): # If documents, then we need to create a Chroma instance using .from_documents if documents is not None and embedding is not None: + if len(documents) == 0: + raise ValueError( + "If documents are provided, there must be at" " least one document. Got {len(documents)}." + ) return Chroma.from_documents( documents=documents, # type: ignore persist_directory=persist_directory if persist else None, diff --git a/src/backend/langflow/graph/vertex/base.py b/src/backend/langflow/graph/vertex/base.py index b89e36ca4..01995c23e 100644 --- a/src/backend/langflow/graph/vertex/base.py +++ b/src/backend/langflow/graph/vertex/base.py @@ -3,12 +3,13 @@ import inspect import types from typing import TYPE_CHECKING, Any, Coroutine, Dict, List, Optional +from loguru import logger + from langflow.graph.utils import UnbuiltObject from langflow.interface.initialize import loading from langflow.interface.listing import lazy_load_dict from langflow.utils.constants import DIRECT_TYPES from langflow.utils.util import sync_to_async -from loguru import logger if TYPE_CHECKING: from langflow.graph.edge.base import Edge @@ -190,7 +191,7 @@ class Vertex: params[key] = float(val) except ValueError: params[key] = val - else: + elif val is not None and val != "": params[key] = val if not value.get("required") and params.get(key) is None: diff --git a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx index ce614414e..d035812f0 100644 --- a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx @@ -208,7 +208,7 @@ export default function Page({ return () => { clearInterval(interval); }; - }, []); + }, [flow, flow.data]); const onEdgesChangeMod = useCallback( (change: EdgeChange[]) => {