Refactor custom_component endpoint and

reload_custom_component endpoint
This commit is contained in:
Gabriel Luiz Freitas Almeida 2023-11-28 23:00:42 -03:00
commit 0d7e5992af

View file

@ -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("")