diff --git a/src/backend/langflow/api/v1/chat.py b/src/backend/langflow/api/v1/chat.py index 512f64341..6ae9cd145 100644 --- a/src/backend/langflow/api/v1/chat.py +++ b/src/backend/langflow/api/v1/chat.py @@ -1,22 +1,18 @@ import time -from fastapi import (APIRouter, Depends, HTTPException, Query, WebSocket, - WebSocketException, status) +from fastapi import APIRouter, Depends, HTTPException, Query, WebSocket, WebSocketException, status from fastapi.responses import StreamingResponse from loguru import logger from sqlmodel import Session from langflow.api.utils import build_input_keys_response, format_elapsed_time -from langflow.api.v1.schemas import (BuildStatus, BuiltResponse, InitResponse, - StreamData) +from langflow.api.v1.schemas import BuildStatus, BuiltResponse, InitResponse, StreamData from langflow.graph.graph.base import Graph -from langflow.services.auth.utils import (get_current_active_user, - get_current_user_by_jwt) +from langflow.services.auth.utils import get_current_active_user, get_current_user_by_jwt from langflow.services.cache.service import BaseCacheService from langflow.services.cache.utils import update_build_status from langflow.services.chat.service import ChatService -from langflow.services.deps import (get_cache_service, get_chat_service, - get_session) +from langflow.services.deps import get_cache_service, get_chat_service, get_session router = APIRouter(tags=["Chat"]) diff --git a/src/backend/langflow/components/llms/AnthropicLLM.py b/src/backend/langflow/components/llms/AnthropicLLM.py index 82fba24fb..2b9c758e5 100644 --- a/src/backend/langflow/components/llms/AnthropicLLM.py +++ b/src/backend/langflow/components/llms/AnthropicLLM.py @@ -19,7 +19,7 @@ class AnthropicLLM(CustomComponent): "claude-2.1", "claude-2.0", "claude-instant-1.2", - "claude-instant-1" + "claude-instant-1", # Add more models as needed ], "info": "https://python.langchain.com/docs/integrations/chat/anthropic", diff --git a/src/backend/langflow/components/vectorstores/Faiss.py b/src/backend/langflow/components/vectorstores/Faiss.py index fd7c99bf2..cf014beaa 100644 --- a/src/backend/langflow/components/vectorstores/Faiss.py +++ b/src/backend/langflow/components/vectorstores/Faiss.py @@ -48,9 +48,7 @@ class FAISSComponent(CustomComponent): # Load if persistence is LocalDirectory if documents is None and folder_path is not None: - return FAISS.load_local( - folder_path=folder_path, embeddings=embeddings, index_name=index_name - ) + return FAISS.load_local(folder_path=folder_path, embeddings=embeddings, index_name=index_name) if documents is None: raise ValueError("Documents must be provided in the params") diff --git a/src/backend/langflow/field_typing/__init__.py b/src/backend/langflow/field_typing/__init__.py index d90087838..46ea20111 100644 --- a/src/backend/langflow/field_typing/__init__.py +++ b/src/backend/langflow/field_typing/__init__.py @@ -1,11 +1,29 @@ from typing import Any -from .constants import (AgentExecutor, BaseChatMemory, BaseLanguageModel, - BaseLLM, BaseLoader, BaseMemory, BaseOutputParser, - BasePromptTemplate, BaseRetriever, Callable, Chain, - ChatPromptTemplate, Data, Document, Embeddings, - NestedDict, Object, Prompt, PromptTemplate, - TextSplitter, Tool, VectorStore) +from .constants import ( + AgentExecutor, + BaseChatMemory, + BaseLanguageModel, + BaseLLM, + BaseLoader, + BaseMemory, + BaseOutputParser, + BasePromptTemplate, + BaseRetriever, + Callable, + Chain, + ChatPromptTemplate, + Data, + Document, + Embeddings, + NestedDict, + Object, + Prompt, + PromptTemplate, + TextSplitter, + Tool, + VectorStore, +) from .range_spec import RangeSpec diff --git a/src/backend/langflow/interface/agents/custom.py b/src/backend/langflow/interface/agents/custom.py index 58c4166f8..158723572 100644 --- a/src/backend/langflow/interface/agents/custom.py +++ b/src/backend/langflow/interface/agents/custom.py @@ -1,29 +1,25 @@ from typing import Any, List, Optional -from langchain.agents import (AgentExecutor, AgentType, Tool, ZeroShotAgent, - initialize_agent) -from langchain.agents.agent_toolkits import (SQLDatabaseToolkit, - VectorStoreInfo, - VectorStoreRouterToolkit, - VectorStoreToolkit) -from langchain.agents.agent_toolkits.json.prompt import (JSON_PREFIX, - JSON_SUFFIX) +from langchain.agents import AgentExecutor, AgentType, Tool, ZeroShotAgent, initialize_agent +from langchain.agents.agent_toolkits import ( + SQLDatabaseToolkit, + VectorStoreInfo, + VectorStoreRouterToolkit, + VectorStoreToolkit, +) +from langchain.agents.agent_toolkits.json.prompt import JSON_PREFIX, JSON_SUFFIX from langchain.agents.agent_toolkits.json.toolkit import JsonToolkit from langchain.agents.agent_toolkits.sql.prompt import SQL_PREFIX, SQL_SUFFIX -from langchain.agents.agent_toolkits.vectorstore.prompt import \ - PREFIX as VECTORSTORE_PREFIX -from langchain.agents.agent_toolkits.vectorstore.prompt import \ - ROUTER_PREFIX as VECTORSTORE_ROUTER_PREFIX +from langchain.agents.agent_toolkits.vectorstore.prompt import PREFIX as VECTORSTORE_PREFIX +from langchain.agents.agent_toolkits.vectorstore.prompt import ROUTER_PREFIX as VECTORSTORE_ROUTER_PREFIX from langchain.agents.mrkl.prompt import FORMAT_INSTRUCTIONS from langchain.base_language import BaseLanguageModel from langchain.chains.llm import LLMChain from langchain.memory.chat_memory import BaseChatMemory from langchain.sql_database import SQLDatabase from langchain.tools.sql_database.prompt import QUERY_CHECKER -from langchain_experimental.agents.agent_toolkits.pandas.prompt import \ - PREFIX as PANDAS_PREFIX -from langchain_experimental.agents.agent_toolkits.pandas.prompt import \ - SUFFIX_WITH_DF as PANDAS_SUFFIX +from langchain_experimental.agents.agent_toolkits.pandas.prompt import PREFIX as PANDAS_PREFIX +from langchain_experimental.agents.agent_toolkits.pandas.prompt import SUFFIX_WITH_DF as PANDAS_SUFFIX from langchain_experimental.tools.python.tool import PythonAstREPLTool from langflow.interface.base import CustomAgentExecutor @@ -178,10 +174,12 @@ class SQLAgent(CustomAgentExecutor): # related to `OPENAI_API_KEY` # return create_sql_agent(llm=llm, toolkit=toolkit, verbose=True) from langchain.prompts import PromptTemplate - from langchain.tools.sql_database.tool import (InfoSQLDatabaseTool, - ListSQLDatabaseTool, - QuerySQLCheckerTool, - QuerySQLDataBaseTool) + from langchain.tools.sql_database.tool import ( + InfoSQLDatabaseTool, + ListSQLDatabaseTool, + QuerySQLCheckerTool, + QuerySQLDataBaseTool, + ) llmchain = LLMChain( llm=llm, diff --git a/src/backend/langflow/interface/custom/custom_component.py b/src/backend/langflow/interface/custom/custom_component.py index f857f3887..c2a7c4c74 100644 --- a/src/backend/langflow/interface/custom/custom_component.py +++ b/src/backend/langflow/interface/custom/custom_component.py @@ -10,7 +10,8 @@ from langflow.interface.custom.component import Component from langflow.interface.custom.directory_reader import DirectoryReader from langflow.interface.custom.utils import ( extract_inner_type_from_generic_alias, - extract_union_types_from_generic_alias) + extract_union_types_from_generic_alias, +) from langflow.services.database.models.flow import Flow from langflow.services.database.utils import session_getter from langflow.services.deps import get_credential_service, get_db_service @@ -217,8 +218,7 @@ class CustomComponent(Component): return validate.create_function(self.code, self.function_entrypoint_name) async def load_flow(self, flow_id: str, tweaks: Optional[dict] = None) -> Any: - from langflow.processing.process import (build_sorted_vertices, - process_tweaks) + from langflow.processing.process import build_sorted_vertices, process_tweaks db_service = get_db_service() with session_getter(db_service) as session: diff --git a/src/backend/langflow/interface/types.py b/src/backend/langflow/interface/types.py index f13db2ba7..b6e4250f9 100644 --- a/src/backend/langflow/interface/types.py +++ b/src/backend/langflow/interface/types.py @@ -31,8 +31,7 @@ from langflow.interface.utilities.base import utility_creator from langflow.interface.vector_store.base import vectorstore_creator from langflow.interface.wrappers.base import wrapper_creator from langflow.template.field.base import TemplateField -from langflow.template.frontend_node.custom_components import \ - CustomComponentFrontendNode +from langflow.template.frontend_node.custom_components import CustomComponentFrontendNode from langflow.utils.util import get_base_classes diff --git a/src/backend/langflow/processing/base.py b/src/backend/langflow/processing/base.py index 0af84ed14..d34fb4410 100644 --- a/src/backend/langflow/processing/base.py +++ b/src/backend/langflow/processing/base.py @@ -4,8 +4,7 @@ from langchain.agents.agent import AgentExecutor from langchain.callbacks.base import BaseCallbackHandler from loguru import logger -from langflow.api.v1.callback import (AsyncStreamingLLMCallbackHandler, - StreamingLLMCallbackHandler) +from langflow.api.v1.callback import AsyncStreamingLLMCallbackHandler, StreamingLLMCallbackHandler from langflow.processing.process import fix_memory_inputs, format_actions from langflow.services.deps import get_plugins_service diff --git a/src/backend/langflow/processing/process.py b/src/backend/langflow/processing/process.py index 11e43e049..c2e153846 100644 --- a/src/backend/langflow/processing/process.py +++ b/src/backend/langflow/processing/process.py @@ -11,8 +11,7 @@ from loguru import logger from pydantic import BaseModel from langflow.graph import Graph -from langflow.interface.run import (build_sorted_vertices, get_memory_key, - update_memory_keys) +from langflow.interface.run import build_sorted_vertices, get_memory_key, update_memory_keys from langflow.services.deps import get_session_service diff --git a/src/backend/langflow/services/utils.py b/src/backend/langflow/services/utils.py index cbba3add7..65781911b 100644 --- a/src/backend/langflow/services/utils.py +++ b/src/backend/langflow/services/utils.py @@ -5,8 +5,7 @@ from langflow.services.auth.utils import create_super_user, verify_password from langflow.services.database.utils import initialize_database from langflow.services.manager import service_manager from langflow.services.schema import ServiceType -from langflow.services.settings.constants import (DEFAULT_SUPERUSER, - DEFAULT_SUPERUSER_PASSWORD) +from langflow.services.settings.constants import DEFAULT_SUPERUSER, DEFAULT_SUPERUSER_PASSWORD from .deps import get_db_service, get_session, get_settings_service @@ -18,8 +17,7 @@ def get_factories_and_deps(): from langflow.services.credentials import factory as credentials_factory from langflow.services.database import factory as database_factory from langflow.services.plugins import factory as plugins_factory - from langflow.services.session import \ - factory as session_service_factory # type: ignore + from langflow.services.session import factory as session_service_factory # type: ignore from langflow.services.settings import factory as settings_factory from langflow.services.store import factory as store_factory from langflow.services.task import factory as task_factory @@ -176,8 +174,7 @@ def initialize_session_service(): Initialize the session manager. """ from langflow.services.cache import factory as cache_factory - from langflow.services.session import \ - factory as session_service_factory # type: ignore + from langflow.services.session import factory as session_service_factory # type: ignore initialize_settings_service() diff --git a/src/backend/langflow/template/frontend_node/prompts.py b/src/backend/langflow/template/frontend_node/prompts.py index 956114cc6..03445f753 100644 --- a/src/backend/langflow/template/frontend_node/prompts.py +++ b/src/backend/langflow/template/frontend_node/prompts.py @@ -38,6 +38,7 @@ class PromptFrontendNode(FrontendNode): # All prompt fields should be password=False field.password = False + field.dynamic = True class PromptTemplateNode(FrontendNode):