From 2eca4d9e32367d752fd906449d567ae0433dede5 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 22 Aug 2024 11:56:36 -0300 Subject: [PATCH] refactor: move import statement inside function to avoid unnecessary imports (#3505) * fix: Add exception handling for missing langchain_anthropic package * refactor: Move import statement for get_starter_projects_dump in get_starter_projects * chore: Modify logger to use error level for exception in directory_reader --- src/backend/base/langflow/api/v1/starter_projects.py | 6 +++--- .../base/langflow/components/models/AnthropicModel.py | 7 ++++++- .../langflow/custom/directory_reader/directory_reader.py | 2 +- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/backend/base/langflow/api/v1/starter_projects.py b/src/backend/base/langflow/api/v1/starter_projects.py index 215e76175..c429759c6 100644 --- a/src/backend/base/langflow/api/v1/starter_projects.py +++ b/src/backend/base/langflow/api/v1/starter_projects.py @@ -4,10 +4,8 @@ from fastapi import APIRouter, Depends, HTTPException from loguru import logger from langflow.graph.graph.schema import GraphDump -from langflow.services.database.models.user.model import User from langflow.services.auth.utils import get_current_active_user -from langflow.initial_setup.load import get_starter_projects_dump - +from langflow.services.database.models.user.model import User router = APIRouter(prefix="/starter-projects", tags=["Flows"]) @@ -18,6 +16,8 @@ def get_starter_projects( current_user: User = Depends(get_current_active_user), ): """Get a list of starter projects.""" + from langflow.initial_setup.load import get_starter_projects_dump + try: flows = get_starter_projects_dump() return flows diff --git a/src/backend/base/langflow/components/models/AnthropicModel.py b/src/backend/base/langflow/components/models/AnthropicModel.py index e41b401d1..8f6b2f131 100644 --- a/src/backend/base/langflow/components/models/AnthropicModel.py +++ b/src/backend/base/langflow/components/models/AnthropicModel.py @@ -1,4 +1,3 @@ -from langchain_anthropic.chat_models import ChatAnthropic from pydantic.v1 import SecretStr from langflow.base.models.model import LCModelComponent @@ -53,6 +52,12 @@ class AnthropicModelComponent(LCModelComponent): ] def build_model(self) -> LanguageModel: # type: ignore[type-var] + try: + from langchain_anthropic.chat_models import ChatAnthropic + except ImportError: + raise ImportError( + "langchain_anthropic is not installed. Please install it with `pip install langchain_anthropic`." + ) model = self.model anthropic_api_key = self.anthropic_api_key max_tokens = self.max_tokens diff --git a/src/backend/base/langflow/custom/directory_reader/directory_reader.py b/src/backend/base/langflow/custom/directory_reader/directory_reader.py index 3e5d432f4..e9e74a9ac 100644 --- a/src/backend/base/langflow/custom/directory_reader/directory_reader.py +++ b/src/backend/base/langflow/custom/directory_reader/directory_reader.py @@ -348,7 +348,7 @@ class DirectoryReader: try: output_types = await self.get_output_types_from_code_async(result_content) except Exception as exc: - logger.exception(f"Error while getting output types from code: {str(exc)}") + logger.error(f"Error while getting output types from code: {str(exc)}") output_types = [component_name_camelcase] else: output_types = [component_name_camelcase]