From 5a103f0f6f0b5dedb7dd38b81d65e84d011c10ce Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Mon, 5 Jun 2023 13:48:17 -0300 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A8=20refactor(base.py):=20extract=20m?= =?UTF-8?q?ethods=20to=20handle=20model-specific=20and=20API=20key-specifi?= =?UTF-8?q?c=20field=20values=20This=20commit=20refactors=20the=20Frontend?= =?UTF-8?q?Node=20class=20by=20extracting=20two=20methods=20to=20handle=20?= =?UTF-8?q?specific=20field=20values=20related=20to=20models=20and=20API?= =?UTF-8?q?=20keys.=20The=20=5Fhandle=5Fmodel=5Fspecific=5Ffield=5Fvalues?= =?UTF-8?q?=20method=20handles=20the=20options=20and=20is=5Flist=20propert?= =?UTF-8?q?ies=20for=20fields=20related=20to=20models,=20while=20the=20=5F?= =?UTF-8?q?handle=5Fapi=5Fkey=5Fspecific=5Ffield=5Fvalues=20method=20handl?= =?UTF-8?q?es=20the=20display=5Fname=20and=20required=20properties=20for?= =?UTF-8?q?=20fields=20related=20to=20API=20keys.=20This=20improves=20the?= =?UTF-8?q?=20readability=20and=20maintainability=20of=20the=20code.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../langflow/template/frontend_node/base.py | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/backend/langflow/template/frontend_node/base.py b/src/backend/langflow/template/frontend_node/base.py index a97c7b8b0..6d00cead0 100644 --- a/src/backend/langflow/template/frontend_node/base.py +++ b/src/backend/langflow/template/frontend_node/base.py @@ -117,17 +117,30 @@ class FrontendNode(BaseModel): ) -> None: """Handles specific field values for certain fields.""" if key == "headers": - field.value = """{'Authorization': - 'Bearer '}""" - if name == "OpenAI" and key == "model_name": - field.options = constants.OPENAI_MODELS - field.is_list = True - elif name == "ChatOpenAI" and key == "model_name": - field.options = constants.CHAT_OPENAI_MODELS - field.is_list = True - elif (name == "Anthropic" or name == "ChatAnthropic") and key == "model_name": - field.options = constants.ANTHROPIC_MODELS + field.value = """{'Authorization': 'Bearer '}""" + FrontendNode._handle_model_specific_field_values(field, key, name) + FrontendNode._handle_api_key_specific_field_values(field, key, name) + + @staticmethod + def _handle_model_specific_field_values( + field: TemplateField, key: str, name: Optional[str] = None + ) -> None: + """Handles specific field values related to models.""" + model_dict = { + "OpenAI": constants.OPENAI_MODELS, + "ChatOpenAI": constants.CHAT_OPENAI_MODELS, + "Anthropic": constants.ANTHROPIC_MODELS, + "ChatAnthropic": constants.ANTHROPIC_MODELS, + } + if name in model_dict and key == "model_name": + field.options = model_dict[name] field.is_list = True + + @staticmethod + def _handle_api_key_specific_field_values( + field: TemplateField, key: str, name: Optional[str] = None + ) -> None: + """Handles specific field values related to API keys.""" if "api_key" in key and "OpenAI" in str(name): field.display_name = "OpenAI API Key" field.required = False