From e76917b53efa4de4d4d6eaa7a3037caeefffc1df Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Thu, 15 Jun 2023 18:22:12 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7=20refactor(=5F=5Fmain=5F=5F.py):?= =?UTF-8?q?=20refactor=20update=5Fsettings=20function=20to=20accept=20save?= =?UTF-8?q?=5Fapi=5Fkeys=20parameter=20=E2=9C=A8=20feat(=5F=5Fmain=5F=5F.p?= =?UTF-8?q?y):=20add=20save=5Fapi=5Fkeys=20parameter=20to=20serve=20comman?= =?UTF-8?q?d=20to=20allow=20users=20to=20save=20API=20keys=20in=20their=20?= =?UTF-8?q?projects=20The=20update=5Fsettings=20function=20now=20accepts?= =?UTF-8?q?=20a=20save=5Fapi=5Fkeys=20parameter,=20which=20allows=20the=20?= =?UTF-8?q?user=20to=20specify=20whether=20or=20not=20to=20save=20API=20ke?= =?UTF-8?q?ys=20in=20their=20projects.=20The=20serve=20command=20now=20has?= =?UTF-8?q?=20a=20save=5Fapi=5Fkeys=20parameter=20that=20defaults=20to=20T?= =?UTF-8?q?rue,=20allowing=20users=20to=20save=20API=20keys=20in=20their?= =?UTF-8?q?=20projects.=20This=20feature=20improves=20the=20user=20experie?= =?UTF-8?q?nce=20by=20allowing=20them=20to=20save=20API=20keys=20for=20fut?= =?UTF-8?q?ure=20use.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/backend/langflow/__main__.py | 18 +++++++++++++++--- src/backend/langflow/settings.py | 11 +++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/backend/langflow/__main__.py b/src/backend/langflow/__main__.py index 9296a4c64..0a02fe376 100644 --- a/src/backend/langflow/__main__.py +++ b/src/backend/langflow/__main__.py @@ -27,12 +27,19 @@ def get_number_of_workers(workers=None): return workers -def update_settings(config: str, dev: bool = False, database_url: Optional[str] = None): +def update_settings( + config: str, + dev: bool = False, + database_url: Optional[str] = None, + save_api_keys: bool = True, +): """Update the settings from a config file.""" if config: settings.update_from_yaml(config, dev=dev) if database_url: - settings.update_database_url(database_url) + settings.update_settings(database_url=database_url) + if save_api_keys: + settings.update_settings(save_api_keys=save_api_keys) def serve_on_jcloud(): @@ -107,6 +114,9 @@ def serve( open_browser: bool = typer.Option( True, help="Open the browser after starting the server." ), + save_api_keys: bool = typer.Option( + True, help="Save API keys in your projects for future use." + ), ): """ Run the Langflow server. @@ -132,7 +142,9 @@ def serve( load_dotenv(env_file) configure(log_level=log_level, log_file=log_file) - update_settings(config, dev=dev, database_url=database_url) + update_settings( + config, dev=dev, database_url=database_url, save_api_keys=save_api_keys + ) app = create_app() # get the directory of the current file if not path: diff --git a/src/backend/langflow/settings.py b/src/backend/langflow/settings.py index 1f304b67d..400a1e3e1 100644 --- a/src/backend/langflow/settings.py +++ b/src/backend/langflow/settings.py @@ -1,5 +1,5 @@ import os -from typing import List, Optional +from typing import List import yaml from pydantic import BaseSettings, root_validator @@ -21,6 +21,7 @@ class Settings(BaseSettings): utilities: List[str] = [] dev: bool = False database_url: str = "sqlite:///./langflow.db" + save_api_keys: bool = True class Config: validate_assignment = True @@ -47,10 +48,12 @@ class Settings(BaseSettings): self.textsplitters = new_settings.textsplitters or [] self.utilities = new_settings.utilities or [] self.dev = dev + self.save_api_keys = new_settings.save_api_keys - def update_database_url(self, database_url: Optional[str] = None): - if database_url: - self.database_url = database_url + def update_settings(self, **kwargs): + for key, value in kwargs.items(): + if hasattr(self, key): + setattr(self, key, value) def save_settings_to_yaml(settings: Settings, file_path: str):