fix: ruff checker on github format
This commit is contained in:
parent
4ec69a7af0
commit
55c6168bc7
8 changed files with 14 additions and 43 deletions
|
|
@ -13,8 +13,6 @@ from langflow.services.database.models.flow import Flow
|
||||||
from langflow.services.store.schema import StoreComponentCreate
|
from langflow.services.store.schema import StoreComponentCreate
|
||||||
from langflow.services.store.utils import get_lf_version_from_pypi
|
from langflow.services.store.utils import get_lf_version_from_pypi
|
||||||
|
|
||||||
import uuid
|
|
||||||
|
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from langflow.graph.vertex.base import Vertex
|
from langflow.graph.vertex.base import Vertex
|
||||||
from langflow.services.database.models.flow.model import Flow
|
from langflow.services.database.models.flow.model import Flow
|
||||||
|
|
@ -24,9 +22,7 @@ API_WORDS = ["api", "key", "token"]
|
||||||
|
|
||||||
|
|
||||||
def has_api_terms(word: str):
|
def has_api_terms(word: str):
|
||||||
return "api" in word and (
|
return "api" in word and ("key" in word or ("token" in word and "tokens" not in word))
|
||||||
"key" in word or ("token" in word and "tokens" not in word)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def remove_api_keys(flow: dict):
|
def remove_api_keys(flow: dict):
|
||||||
|
|
@ -36,11 +32,7 @@ def remove_api_keys(flow: dict):
|
||||||
node_data = node.get("data").get("node")
|
node_data = node.get("data").get("node")
|
||||||
template = node_data.get("template")
|
template = node_data.get("template")
|
||||||
for value in template.values():
|
for value in template.values():
|
||||||
if (
|
if isinstance(value, dict) and has_api_terms(value["name"]) and value.get("password"):
|
||||||
isinstance(value, dict)
|
|
||||||
and has_api_terms(value["name"])
|
|
||||||
and value.get("password")
|
|
||||||
):
|
|
||||||
value["value"] = None
|
value["value"] = None
|
||||||
|
|
||||||
return flow
|
return flow
|
||||||
|
|
@ -61,9 +53,7 @@ def build_input_keys_response(langchain_object, artifacts):
|
||||||
input_keys_response["input_keys"][key] = value
|
input_keys_response["input_keys"][key] = value
|
||||||
# If the object has memory, that memory will have a memory_variables attribute
|
# If the object has memory, that memory will have a memory_variables attribute
|
||||||
# memory variables should be removed from the input keys
|
# memory variables should be removed from the input keys
|
||||||
if hasattr(langchain_object, "memory") and hasattr(
|
if hasattr(langchain_object, "memory") and hasattr(langchain_object.memory, "memory_variables"):
|
||||||
langchain_object.memory, "memory_variables"
|
|
||||||
):
|
|
||||||
# Remove memory variables from input keys
|
# Remove memory variables from input keys
|
||||||
input_keys_response["input_keys"] = {
|
input_keys_response["input_keys"] = {
|
||||||
key: value
|
key: value
|
||||||
|
|
@ -73,9 +63,7 @@ def build_input_keys_response(langchain_object, artifacts):
|
||||||
# Add memory variables to memory_keys
|
# Add memory variables to memory_keys
|
||||||
input_keys_response["memory_keys"] = langchain_object.memory.memory_variables
|
input_keys_response["memory_keys"] = langchain_object.memory.memory_variables
|
||||||
|
|
||||||
if hasattr(langchain_object, "prompt") and hasattr(
|
if hasattr(langchain_object, "prompt") and hasattr(langchain_object.prompt, "template"):
|
||||||
langchain_object.prompt, "template"
|
|
||||||
):
|
|
||||||
input_keys_response["template"] = langchain_object.prompt.template
|
input_keys_response["template"] = langchain_object.prompt.template
|
||||||
|
|
||||||
return input_keys_response
|
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):
|
def is_valid_data(frontend_node, raw_frontend_data):
|
||||||
"""Check if the data is valid for processing."""
|
"""Check if the data is valid for processing."""
|
||||||
|
|
||||||
return (
|
return frontend_node and "template" in frontend_node and raw_frontend_data_is_valid(raw_frontend_data)
|
||||||
frontend_node
|
|
||||||
and "template" in frontend_node
|
|
||||||
and raw_frontend_data_is_valid(raw_frontend_data)
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def update_template_values(frontend_template, raw_template):
|
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()
|
langflow_version = get_lf_version_from_pypi()
|
||||||
if langflow_version is None:
|
if langflow_version is None:
|
||||||
raise HTTPException(
|
raise HTTPException(status_code=500, detail="Unable to verify the latest version of Langflow")
|
||||||
status_code=500, detail="Unable to verify the latest version of Langflow"
|
|
||||||
)
|
|
||||||
elif langflow_version != component.last_tested_version:
|
elif langflow_version != component.last_tested_version:
|
||||||
warnings.warn(
|
warnings.warn(
|
||||||
f"Your version of Langflow ({component.last_tested_version}) is outdated. "
|
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}"
|
return f"{minutes} {minutes_unit}, {seconds} {seconds_unit}"
|
||||||
|
|
||||||
|
|
||||||
async def build_graph_from_db(
|
async def build_graph_from_db(flow_id: str, session: Session, chat_service: "ChatService"):
|
||||||
flow_id: str, session: Session, chat_service: "ChatService"
|
|
||||||
):
|
|
||||||
"""Build and cache the graph."""
|
"""Build and cache the graph."""
|
||||||
flow: Optional[Flow] = session.get(Flow, flow_id)
|
flow: Optional[Flow] = session.get(Flow, flow_id)
|
||||||
if not flow or not flow.data:
|
if not flow or not flow.data:
|
||||||
raise ValueError("Invalid flow ID")
|
raise ValueError("Invalid flow ID")
|
||||||
graph = Graph.from_payload(
|
graph = Graph.from_payload(flow.data, flow_id, flow_name=flow.name, user_id=str(flow.user_id))
|
||||||
flow.data, flow_id, flow_name=flow.name, user_id=str(flow.user_id)
|
|
||||||
)
|
|
||||||
for vertex_id in graph._has_session_id_vertices:
|
for vertex_id in graph._has_session_id_vertices:
|
||||||
vertex = graph.get_vertex(vertex_id)
|
vertex = graph.get_vertex(vertex_id)
|
||||||
if vertex is None:
|
if vertex is None:
|
||||||
|
|
@ -307,14 +285,10 @@ async def get_next_runnable_vertices(
|
||||||
"""
|
"""
|
||||||
async with chat_service._cache_locks[flow_id] as lock:
|
async with chat_service._cache_locks[flow_id] as lock:
|
||||||
graph.remove_from_predecessors(vertex_id)
|
graph.remove_from_predecessors(vertex_id)
|
||||||
direct_successors_ready = [
|
direct_successors_ready = [v for v in vertex.successors_ids if graph.is_vertex_runnable(v)]
|
||||||
v for v in vertex.successors_ids if graph.is_vertex_runnable(v)
|
|
||||||
]
|
|
||||||
if not direct_successors_ready:
|
if not direct_successors_ready:
|
||||||
# No direct successors ready, look for runnable predecessors of successors
|
# No direct successors ready, look for runnable predecessors of successors
|
||||||
next_runnable_vertices = graph.find_runnable_predecessors_for_successors(
|
next_runnable_vertices = graph.find_runnable_predecessors_for_successors(vertex_id)
|
||||||
vertex_id
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
next_runnable_vertices = direct_successors_ready
|
next_runnable_vertices = direct_successors_ready
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from langchain_community.vectorstores import Cassandra
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
from langflow.helpers.data import docs_to_data
|
||||||
from langflow.io import (
|
from langflow.io import (
|
||||||
BoolInput,
|
|
||||||
DropdownInput,
|
DropdownInput,
|
||||||
HandleInput,
|
HandleInput,
|
||||||
IntInput,
|
IntInput,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ from langchain_community.vectorstores import CouchbaseVectorStore
|
||||||
|
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
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
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from langchain_pinecone import Pinecone
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
from langflow.helpers.data import docs_to_data
|
||||||
from langflow.io import (
|
from langflow.io import (
|
||||||
BoolInput,
|
|
||||||
DropdownInput,
|
DropdownInput,
|
||||||
HandleInput,
|
HandleInput,
|
||||||
IntInput,
|
IntInput,
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,6 @@ from langchain_community.vectorstores import Qdrant
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
from langflow.helpers.data import docs_to_data
|
||||||
from langflow.io import (
|
from langflow.io import (
|
||||||
BoolInput,
|
|
||||||
DropdownInput,
|
DropdownInput,
|
||||||
HandleInput,
|
HandleInput,
|
||||||
IntInput,
|
IntInput,
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ from langchain_community.vectorstores import UpstashVectorStore
|
||||||
|
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
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
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,7 @@ from langchain_community.vectorstores import Vectara
|
||||||
|
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
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
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ from langchain_community.vectorstores import PGVector
|
||||||
|
|
||||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||||
from langflow.helpers.data import docs_to_data
|
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
|
from langflow.schema import Data
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue