diff --git a/src/backend/base/langflow/api/utils.py b/src/backend/base/langflow/api/utils.py index a5dc2fa02..99d4d3681 100644 --- a/src/backend/base/langflow/api/utils.py +++ b/src/backend/base/langflow/api/utils.py @@ -13,8 +13,6 @@ from langflow.services.database.models.flow import Flow from langflow.services.store.schema import StoreComponentCreate from langflow.services.store.utils import get_lf_version_from_pypi -import uuid - if TYPE_CHECKING: from langflow.graph.vertex.base import Vertex from langflow.services.database.models.flow.model import Flow @@ -24,9 +22,7 @@ API_WORDS = ["api", "key", "token"] def has_api_terms(word: str): - return "api" in word and ( - "key" in word or ("token" in word and "tokens" not in word) - ) + return "api" in word and ("key" in word or ("token" in word and "tokens" not in word)) def remove_api_keys(flow: dict): @@ -36,11 +32,7 @@ def remove_api_keys(flow: dict): node_data = node.get("data").get("node") template = node_data.get("template") for value in template.values(): - if ( - isinstance(value, dict) - and has_api_terms(value["name"]) - and value.get("password") - ): + if isinstance(value, dict) and has_api_terms(value["name"]) and value.get("password"): value["value"] = None return flow @@ -61,9 +53,7 @@ def build_input_keys_response(langchain_object, artifacts): input_keys_response["input_keys"][key] = value # If the object has memory, that memory will have a memory_variables attribute # memory variables should be removed from the input keys - if hasattr(langchain_object, "memory") and hasattr( - langchain_object.memory, "memory_variables" - ): + if hasattr(langchain_object, "memory") and hasattr(langchain_object.memory, "memory_variables"): # Remove memory variables from input keys input_keys_response["input_keys"] = { key: value @@ -73,9 +63,7 @@ def build_input_keys_response(langchain_object, artifacts): # Add memory variables to memory_keys input_keys_response["memory_keys"] = langchain_object.memory.memory_variables - if hasattr(langchain_object, "prompt") and hasattr( - langchain_object.prompt, "template" - ): + if hasattr(langchain_object, "prompt") and hasattr(langchain_object.prompt, "template"): input_keys_response["template"] = langchain_object.prompt.template return input_keys_response @@ -114,11 +102,7 @@ def raw_frontend_data_is_valid(raw_frontend_data): def is_valid_data(frontend_node, raw_frontend_data): """Check if the data is valid for processing.""" - return ( - frontend_node - and "template" in frontend_node - and raw_frontend_data_is_valid(raw_frontend_data) - ) + return frontend_node and "template" in frontend_node and raw_frontend_data_is_valid(raw_frontend_data) def update_template_values(frontend_template, raw_template): @@ -192,9 +176,7 @@ async def check_langflow_version(component: StoreComponentCreate): langflow_version = get_lf_version_from_pypi() if langflow_version is None: - raise HTTPException( - status_code=500, detail="Unable to verify the latest version of Langflow" - ) + raise HTTPException(status_code=500, detail="Unable to verify the latest version of Langflow") elif langflow_version != component.last_tested_version: warnings.warn( f"Your version of Langflow ({component.last_tested_version}) is outdated. " @@ -224,16 +206,12 @@ def format_elapsed_time(elapsed_time: float) -> str: return f"{minutes} {minutes_unit}, {seconds} {seconds_unit}" -async def build_graph_from_db( - flow_id: str, session: Session, chat_service: "ChatService" -): +async def build_graph_from_db(flow_id: str, session: Session, chat_service: "ChatService"): """Build and cache the graph.""" flow: Optional[Flow] = session.get(Flow, flow_id) if not flow or not flow.data: raise ValueError("Invalid flow ID") - graph = Graph.from_payload( - flow.data, flow_id, flow_name=flow.name, user_id=str(flow.user_id) - ) + graph = Graph.from_payload(flow.data, flow_id, flow_name=flow.name, user_id=str(flow.user_id)) for vertex_id in graph._has_session_id_vertices: vertex = graph.get_vertex(vertex_id) if vertex is None: @@ -307,14 +285,10 @@ async def get_next_runnable_vertices( """ async with chat_service._cache_locks[flow_id] as lock: graph.remove_from_predecessors(vertex_id) - direct_successors_ready = [ - v for v in vertex.successors_ids if graph.is_vertex_runnable(v) - ] + direct_successors_ready = [v for v in vertex.successors_ids if graph.is_vertex_runnable(v)] if not direct_successors_ready: # No direct successors ready, look for runnable predecessors of successors - next_runnable_vertices = graph.find_runnable_predecessors_for_successors( - vertex_id - ) + next_runnable_vertices = graph.find_runnable_predecessors_for_successors(vertex_id) else: next_runnable_vertices = direct_successors_ready diff --git a/src/backend/base/langflow/components/vectorstores/Cassandra.py b/src/backend/base/langflow/components/vectorstores/Cassandra.py index 3a5953a4a..0ce933d43 100644 --- a/src/backend/base/langflow/components/vectorstores/Cassandra.py +++ b/src/backend/base/langflow/components/vectorstores/Cassandra.py @@ -5,7 +5,6 @@ from langchain_community.vectorstores import Cassandra from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data from langflow.io import ( - BoolInput, DropdownInput, HandleInput, IntInput, diff --git a/src/backend/base/langflow/components/vectorstores/Couchbase.py b/src/backend/base/langflow/components/vectorstores/Couchbase.py index 1355f7802..a25fa0479 100644 --- a/src/backend/base/langflow/components/vectorstores/Couchbase.py +++ b/src/backend/base/langflow/components/vectorstores/Couchbase.py @@ -5,7 +5,7 @@ from langchain_community.vectorstores import CouchbaseVectorStore from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data -from langflow.io import BoolInput, HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput +from langflow.io import HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput from langflow.schema import Data diff --git a/src/backend/base/langflow/components/vectorstores/Pinecone.py b/src/backend/base/langflow/components/vectorstores/Pinecone.py index 12e1118f3..bf5d0d546 100644 --- a/src/backend/base/langflow/components/vectorstores/Pinecone.py +++ b/src/backend/base/langflow/components/vectorstores/Pinecone.py @@ -5,7 +5,6 @@ from langchain_pinecone import Pinecone from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data from langflow.io import ( - BoolInput, DropdownInput, HandleInput, IntInput, diff --git a/src/backend/base/langflow/components/vectorstores/Qdrant.py b/src/backend/base/langflow/components/vectorstores/Qdrant.py index 07c01e55d..15282c033 100644 --- a/src/backend/base/langflow/components/vectorstores/Qdrant.py +++ b/src/backend/base/langflow/components/vectorstores/Qdrant.py @@ -5,7 +5,6 @@ from langchain_community.vectorstores import Qdrant from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data from langflow.io import ( - BoolInput, DropdownInput, HandleInput, IntInput, diff --git a/src/backend/base/langflow/components/vectorstores/Upstash.py b/src/backend/base/langflow/components/vectorstores/Upstash.py index 70a371fe0..951bea020 100644 --- a/src/backend/base/langflow/components/vectorstores/Upstash.py +++ b/src/backend/base/langflow/components/vectorstores/Upstash.py @@ -4,7 +4,7 @@ from langchain_community.vectorstores import UpstashVectorStore from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data -from langflow.io import BoolInput, HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput +from langflow.io import HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput from langflow.schema import Data diff --git a/src/backend/base/langflow/components/vectorstores/Vectara.py b/src/backend/base/langflow/components/vectorstores/Vectara.py index f5461c04c..674a35ff5 100644 --- a/src/backend/base/langflow/components/vectorstores/Vectara.py +++ b/src/backend/base/langflow/components/vectorstores/Vectara.py @@ -5,7 +5,7 @@ from langchain_community.vectorstores import Vectara from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data -from langflow.io import BoolInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput +from langflow.io import IntInput, StrInput, SecretStrInput, DataInput, MultilineInput from langflow.schema import Data diff --git a/src/backend/base/langflow/components/vectorstores/pgvector.py b/src/backend/base/langflow/components/vectorstores/pgvector.py index a078d67cf..e4f1211a5 100644 --- a/src/backend/base/langflow/components/vectorstores/pgvector.py +++ b/src/backend/base/langflow/components/vectorstores/pgvector.py @@ -4,7 +4,7 @@ from langchain_community.vectorstores import PGVector from langflow.base.vectorstores.model import LCVectorStoreComponent from langflow.helpers.data import docs_to_data -from langflow.io import BoolInput, HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput +from langflow.io import HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput from langflow.schema import Data