🚀 feat(__main__.py): add support for cache configuration

The `update_settings` function now accepts a `cache` parameter that allows the user to specify the type of cache to use. The `cache` parameter is set to a default value of `SQLiteCache` and can be overridden by setting the `LANGCHAIN_CACHE` environment variable. This feature improves the flexibility of the application as it allows the user to choose the type of cache that best suits their needs.
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-06-25 18:20:21 -03:00
commit 5f56384dce

View file

@ -30,6 +30,7 @@ def get_number_of_workers(workers=None):
def update_settings( def update_settings(
config: str, config: str,
cache: str,
dev: bool = False, dev: bool = False,
database_url: Optional[str] = None, database_url: Optional[str] = None,
remove_api_keys: bool = False, remove_api_keys: bool = False,
@ -41,6 +42,8 @@ def update_settings(
settings.update_settings(database_url=database_url) settings.update_settings(database_url=database_url)
if remove_api_keys: if remove_api_keys:
settings.update_settings(remove_api_keys=remove_api_keys) settings.update_settings(remove_api_keys=remove_api_keys)
if cache:
settings.update_settings(cache=cache)
def serve_on_jcloud(): def serve_on_jcloud():
@ -102,6 +105,11 @@ def serve(
), ),
log_level: str = typer.Option("critical", help="Logging level."), log_level: str = typer.Option("critical", help="Logging level."),
log_file: Path = typer.Option("logs/langflow.log", help="Path to the log file."), log_file: Path = typer.Option("logs/langflow.log", help="Path to the log file."),
cache: str = typer.Argument(
envvar="LANGCHAIN_CACHE",
help="Type of cache to use. (InMemoryCache, SQLiteCache)",
default="SQLiteCache",
),
jcloud: bool = typer.Option(False, help="Deploy on Jina AI Cloud"), jcloud: bool = typer.Option(False, help="Deploy on Jina AI Cloud"),
dev: bool = typer.Option(False, help="Run in development mode (may contain bugs)"), dev: bool = typer.Option(False, help="Run in development mode (may contain bugs)"),
database_url: str = typer.Option( database_url: str = typer.Option(
@ -130,7 +138,11 @@ def serve(
configure(log_level=log_level, log_file=log_file) configure(log_level=log_level, log_file=log_file)
update_settings( update_settings(
config, dev=dev, database_url=database_url, remove_api_keys=remove_api_keys config,
dev=dev,
database_url=database_url,
remove_api_keys=remove_api_keys,
cache=cache,
) )
# get the directory of the current file # get the directory of the current file
if not path: if not path: