From 0d7e5992af274d9c029ee17dfc6876d5082a4a8d Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Tue, 28 Nov 2023 23:00:42 -0300 Subject: [PATCH] Refactor custom_component endpoint and reload_custom_component endpoint --- src/backend/langflow/api/v1/endpoints.py | 31 +++++++++++++----------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/backend/langflow/api/v1/endpoints.py b/src/backend/langflow/api/v1/endpoints.py index c915c51ac..fc013c01a 100644 --- a/src/backend/langflow/api/v1/endpoints.py +++ b/src/backend/langflow/api/v1/endpoints.py @@ -3,22 +3,22 @@ from typing import Annotated, Optional, Union import sqlalchemy as sa from fastapi import APIRouter, Body, Depends, HTTPException, UploadFile, status -from langflow.api.v1.schemas import ( - CustomComponentCode, - ProcessResponse, - TaskResponse, - TaskStatusResponse, - UploadFileResponse, -) +from langflow.api.utils import replace_existing_field_values +from langflow.api.v1.schemas import (CustomComponentCode, ProcessResponse, + TaskResponse, TaskStatusResponse, + UploadFileResponse) from langflow.interface.custom.custom_component import CustomComponent from langflow.interface.custom.directory_reader import DirectoryReader -from langflow.interface.types import build_langchain_template_custom_component, create_and_validate_component +from langflow.interface.types import ( + build_langchain_template_custom_component, create_and_validate_component) from langflow.processing.process import process_graph_cached, process_tweaks -from langflow.services.auth.utils import api_key_security, get_current_active_user +from langflow.services.auth.utils import (api_key_security, + get_current_active_user) from langflow.services.cache.utils import save_uploaded_file from langflow.services.database.models.flow import Flow from langflow.services.database.models.user.model import User -from langflow.services.deps import get_session, get_session_service, get_settings_service, get_task_service +from langflow.services.deps import (get_session, get_session_service, + get_settings_service, get_task_service) from loguru import logger try: @@ -213,15 +213,18 @@ async def custom_component( ): component = create_and_validate_component(raw_code.code) - extractor = CustomComponent(code=raw_code.code) - extractor.validate() - return build_langchain_template_custom_component(extractor, user_id=user.id) + + built_frontend_node = build_langchain_template_custom_component(component, user_id=user.id) + + built_frontend_node = replace_existing_field_values(built_frontend_node, raw_code) + return built_frontend_node @router.post("/custom_component/reload", status_code=HTTPStatus.OK) async def reload_custom_component(path: str, user: User = Depends(get_current_active_user)): - from langflow.interface.types import build_langchain_template_custom_component + from langflow.interface.types import \ + build_langchain_template_custom_component try: reader = DirectoryReader("")