From 899a8fbb3313b5a0590c5ee0be61edce8897a142 Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Mon, 11 Sep 2023 14:05:35 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20chore(=5F=5Fmain=5F=5F.py):=20ch?= =?UTF-8?q?ange=20default=20value=20of=20cache=20option=20to=20None=20for?= =?UTF-8?q?=20better=20flexibility=20=F0=9F=90=9B=20fix(utils.py):=20handl?= =?UTF-8?q?e=20ImportError=20when=20importing=20cache=20class=20and=20log?= =?UTF-8?q?=20a=20warning=20message=20=F0=9F=94=A7=20chore(settings.py):?= =?UTF-8?q?=20change=20default=20value=20of=20CACHE=20option=20to=20None?= =?UTF-8?q?=20for=20better=20flexibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #880 --- src/backend/langflow/__main__.py | 4 ++-- src/backend/langflow/interface/utils.py | 15 ++++++++++----- src/backend/langflow/settings.py | 2 +- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index fa167f188..b67bc70f4 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -117,10 +117,10 @@ def serve( log_file: Path = typer.Option( "logs/langflow.log", help="Path to the log file.", envvar="LANGFLOW_LOG_FILE" ), - cache: str = typer.Option( + cache: Optional[str] = typer.Option( envvar="LANGFLOW_LANGCHAIN_CACHE", help="Type of cache to use. (InMemoryCache, SQLiteCache)", - default="SQLiteCache", + default=None, ), jcloud: bool = typer.Option(False, help="Deploy on Jina AI Cloud"), dev: bool = typer.Option(False, help="Run in development mode (may contain bugs)"), diff --git a/src/backend/langflow/interface/utils.py b/src/backend/langflow/interface/utils.py index d6c7b9023..2f971bb97 100644 --- a/src/backend/langflow/interface/utils.py +++ b/src/backend/langflow/interface/utils.py @@ -78,9 +78,14 @@ def set_langchain_cache(settings): import langchain from langflow.interface.importing.utils import import_class - cache_type = os.getenv("LANGFLOW_LANGCHAIN_CACHE") - cache_class = import_class(f"langchain.cache.{cache_type or settings.CACHE}") + if cache_type := os.getenv("LANGFLOW_LANGCHAIN_CACHE"): + try: + cache_class = import_class( + f"langchain.cache.{cache_type or settings.CACHE}" + ) - logger.debug(f"Setting up LLM caching with {cache_class.__name__}") - langchain.llm_cache = cache_class() - logger.info(f"LLM caching setup with {cache_class.__name__}") + logger.debug(f"Setting up LLM caching with {cache_class.__name__}") + langchain.llm_cache = cache_class() + logger.info(f"LLM caching setup with {cache_class.__name__}") + except ImportError: + logger.warning(f"Could not import {cache_type}. ") diff --git a/src/backend/langflow/settings.py b/src/backend/langflow/settings.py index abb391446..e28e90eea 100644 --- a/src/backend/langflow/settings.py +++ b/src/backend/langflow/settings.py @@ -32,7 +32,7 @@ class Settings(BaseSettings): DEV: bool = False DATABASE_URL: Optional[str] = None - CACHE: str = "InMemoryCache" + CACHE: Optional[str] = None REMOVE_API_KEYS: bool = False COMPONENTS_PATH: List[str] = []