diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 885b10621..1c13c588c 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -12,8 +12,7 @@ from dotenv import load_dotenv from langflow.main import setup_app from langflow.services.database.utils import session_getter from langflow.services.deps import get_db_service, get_settings_service -from langflow.services.utils import (initialize_services, - initialize_settings_service) +from langflow.services.utils import initialize_services, initialize_settings_service from langflow.utils.logger import configure, logger from multiprocess import Process, cpu_count # type: ignore from rich import box @@ -97,19 +96,22 @@ def update_settings( settings_service.settings.update_settings(STORE=False) - def version_callback(value: bool): """ Show the version and exit. """ from langflow import __version__ + if value: typer.echo(f"Langflow Version: {__version__}") raise typer.Exit() + @app.callback() def main_entry_point( - version: bool = typer.Option(None, "--version", callback=version_callback, is_eager=True, help="Show the version and exit.") + version: bool = typer.Option( + None, "--version", callback=version_callback, is_eager=True, help="Show the version and exit." + ), ): """ Main entry point for the Langflow CLI. @@ -117,7 +119,6 @@ def main_entry_point( pass - @app.command() def run( host: str = typer.Option("127.0.0.1", help="Host to bind the server to.", envvar="LANGFLOW_HOST"), diff --git a/src/backend/langflow/api/v1/chat.py b/src/backend/langflow/api/v1/chat.py index 870773997..f47eaef91 100644 --- a/src/backend/langflow/api/v1/chat.py +++ b/src/backend/langflow/api/v1/chat.py @@ -1,17 +1,13 @@ -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 langflow.api.utils import build_input_keys_response -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 from loguru import logger from sqlmodel import Session diff --git a/src/backend/langflow/main.py b/src/backend/langflow/main.py index b4acdedf9..ea33acb61 100644 --- a/src/backend/langflow/main.py +++ b/src/backend/langflow/main.py @@ -22,6 +22,7 @@ async def lifespan(app: FastAPI): yield teardown_services() + def create_app(): """Create the FastAPI app and include the router.""" @@ -52,10 +53,8 @@ def create_app(): def health(): return {"status": "ok"} - app.include_router(router) - return app diff --git a/src/backend/langflow/processing/base.py b/src/backend/langflow/processing/base.py index 4bcbb3e7e..06dc0a063 100644 --- a/src/backend/langflow/processing/base.py +++ b/src/backend/langflow/processing/base.py @@ -2,8 +2,7 @@ from typing import TYPE_CHECKING, List, Union from langchain.agents.agent import AgentExecutor from langchain.callbacks.base import BaseCallbackHandler -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 from loguru import logger diff --git a/src/backend/langflow/services/deps.py b/src/backend/langflow/services/deps.py index 5c961446a..1ac06738b 100644 --- a/src/backend/langflow/services/deps.py +++ b/src/backend/langflow/services/deps.py @@ -16,26 +16,26 @@ if TYPE_CHECKING: def get_credential_service() -> "CredentialService": - return service_manager.get(ServiceType.CREDENTIAL_SERVICE) # type: ignore + return service_manager.get(ServiceType.CREDENTIAL_SERVICE) # type: ignore def get_plugins_service() -> "PluginService": - return service_manager.get(ServiceType.PLUGIN_SERVICE) # type: ignore + return service_manager.get(ServiceType.PLUGIN_SERVICE) # type: ignore def get_settings_service() -> "SettingsService": try: - return service_manager.get(ServiceType.SETTINGS_SERVICE) # type: ignore + return service_manager.get(ServiceType.SETTINGS_SERVICE) # type: ignore except ValueError: # initialize settings service from langflow.services.manager import initialize_settings_service initialize_settings_service() - return service_manager.get(ServiceType.SETTINGS_SERVICE) # type: ignore + return service_manager.get(ServiceType.SETTINGS_SERVICE) # type: ignore def get_db_service() -> "DatabaseService": - return service_manager.get(ServiceType.DATABASE_SERVICE) # type: ignore + return service_manager.get(ServiceType.DATABASE_SERVICE) # type: ignore def get_session() -> Generator["Session", None, None]: @@ -44,20 +44,20 @@ def get_session() -> Generator["Session", None, None]: def get_cache_service() -> "BaseCacheService": - return service_manager.get(ServiceType.CACHE_SERVICE) # type: ignore + return service_manager.get(ServiceType.CACHE_SERVICE) # type: ignore def get_session_service() -> "SessionService": - return service_manager.get(ServiceType.SESSION_SERVICE) # type: ignore + return service_manager.get(ServiceType.SESSION_SERVICE) # type: ignore def get_task_service() -> "TaskService": - return service_manager.get(ServiceType.TASK_SERVICE) # type: ignore + return service_manager.get(ServiceType.TASK_SERVICE) # type: ignore def get_chat_service() -> "ChatService": - return service_manager.get(ServiceType.CHAT_SERVICE) # type: ignore + return service_manager.get(ServiceType.CHAT_SERVICE) # type: ignore def get_store_service() -> "StoreService": - return service_manager.get(ServiceType.STORE_SERVICE) # type: ignore + return service_manager.get(ServiceType.STORE_SERVICE) # type: ignore diff --git a/src/backend/langflow/services/factory.py b/src/backend/langflow/services/factory.py index fd99ae20e..874d7374c 100644 --- a/src/backend/langflow/services/factory.py +++ b/src/backend/langflow/services/factory.py @@ -1,13 +1,12 @@ - from typing import TYPE_CHECKING if TYPE_CHECKING: from langflow.services.base import Service + class ServiceFactory: def __init__(self, service_class): self.service_class = service_class def create(self, *args, **kwargs) -> "Service": - raise NotImplementedError diff --git a/src/backend/langflow/services/manager.py b/src/backend/langflow/services/manager.py index 51da1fc42..0adeefd29 100644 --- a/src/backend/langflow/services/manager.py +++ b/src/backend/langflow/services/manager.py @@ -134,8 +134,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/services/plugins/base.py b/src/backend/langflow/services/plugins/base.py index d91705b1b..a5ab14e54 100644 --- a/src/backend/langflow/services/plugins/base.py +++ b/src/backend/langflow/services/plugins/base.py @@ -12,7 +12,6 @@ class BasePlugin: pass - class CallbackPlugin(BasePlugin): def get_callback(self, _id=None): - pass \ No newline at end of file + pass diff --git a/src/backend/langflow/services/plugins/langfuse_plugin.py b/src/backend/langflow/services/plugins/langfuse_plugin.py index 1009d70dd..424279342 100644 --- a/src/backend/langflow/services/plugins/langfuse_plugin.py +++ b/src/backend/langflow/services/plugins/langfuse_plugin.py @@ -68,7 +68,6 @@ class LangfusePlugin(CallbackPlugin): logger.debug("Initializing langfuse callback") - try: langfuse_instance = self.get() if langfuse_instance is not None and hasattr(langfuse_instance, "trace"): diff --git a/src/backend/langflow/services/plugins/service.py b/src/backend/langflow/services/plugins/service.py index 8c9ea76d0..f7b2895ec 100644 --- a/src/backend/langflow/services/plugins/service.py +++ b/src/backend/langflow/services/plugins/service.py @@ -31,7 +31,11 @@ class PluginService(Service): mod = importlib.import_module(module_path) for attr_name in dir(mod): attr = getattr(mod, attr_name) - if inspect.isclass(attr) and issubclass(attr, BasePlugin) and attr not in [CallbackPlugin, BasePlugin]: + if ( + inspect.isclass(attr) + and issubclass(attr, BasePlugin) + and attr not in [CallbackPlugin, BasePlugin] + ): self.register_plugin(plugin_name, attr()) except Exception as exc: logger.error(f"Error loading plugin {plugin_name}: {exc}") @@ -60,5 +64,3 @@ class PluginService(Service): if callback: callbacks.append(callback) return callbacks - - diff --git a/src/backend/langflow/services/utils.py b/src/backend/langflow/services/utils.py index 2c4288e1e..850c1c683 100644 --- a/src/backend/langflow/services/utils.py +++ b/src/backend/langflow/services/utils.py @@ -1,10 +1,8 @@ - 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 loguru import logger from sqlmodel import Session, select @@ -18,8 +16,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 +173,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/frontend/src/CustomNodes/GenericNode/index.tsx b/src/frontend/src/CustomNodes/GenericNode/index.tsx index c405e0e2f..d9a821ec8 100644 --- a/src/frontend/src/CustomNodes/GenericNode/index.tsx +++ b/src/frontend/src/CustomNodes/GenericNode/index.tsx @@ -164,7 +164,7 @@ export default function GenericNode({ )}