refactor: Update logs field type in ResultDataResponse schema

This commit is contained in:
ogabrielluiz 2024-06-12 17:36:25 -03:00
commit a562ae5b0b
3 changed files with 9 additions and 3 deletions

View file

@ -4,6 +4,7 @@ from collections import defaultdict, deque
from functools import partial from functools import partial
from itertools import chain from itertools import chain
from typing import TYPE_CHECKING, Callable, Coroutine, Dict, Generator, List, Optional, Tuple, Type, Union from typing import TYPE_CHECKING, Callable, Coroutine, Dict, Generator, List, Optional, Tuple, Type, Union
from loguru import logger from loguru import logger
from langflow.graph.edge.base import ContractEdge from langflow.graph.edge.base import ContractEdge

View file

@ -13,7 +13,7 @@ from langflow.graph.utils import UnbuiltObject, UnbuiltResult
from langflow.interface.initialize import loading from langflow.interface.initialize import loading
from langflow.interface.listing import lazy_load_dict from langflow.interface.listing import lazy_load_dict
from langflow.schema.artifact import ArtifactType from langflow.schema.artifact import ArtifactType
from langflow.schema.schema import INPUT_FIELD_NAME from langflow.schema.schema import INPUT_FIELD_NAME, Log, build_log_from_raw_and_type
from langflow.services.deps import get_storage_service from langflow.services.deps import get_storage_service
from langflow.services.monitor.utils import log_transaction from langflow.services.monitor.utils import log_transaction
from langflow.utils.constants import DIRECT_TYPES from langflow.utils.constants import DIRECT_TYPES
@ -77,6 +77,7 @@ class Vertex:
self.layer = None self.layer = None
self.result: Optional[ResultData] = None self.result: Optional[ResultData] = None
self.results: Dict[str, Any] = {} self.results: Dict[str, Any] = {}
self.logs: Dict[str, List[Log]] = {}
try: try:
self.is_interface_component = self.vertex_type in InterfaceComponentTypes self.is_interface_component = self.vertex_type in InterfaceComponentTypes
except ValueError: except ValueError:
@ -481,6 +482,7 @@ class Vertex:
result_dict = ResultData( result_dict = ResultData(
results=result_dict, results=result_dict,
artifacts=artifacts, artifacts=artifacts,
logs=self.logs,
messages=messages, messages=messages,
component_display_name=self.display_name, component_display_name=self.display_name,
component_id=self.id, component_id=self.id,
@ -660,6 +662,10 @@ class Vertex:
self._custom_component, self._built_object, self.artifacts = result self._custom_component, self._built_object, self.artifacts = result
self.artifacts_raw = self.artifacts.get("raw", None) self.artifacts_raw = self.artifacts.get("raw", None)
self.artifacts_type = self.artifacts.get("type", None) or ArtifactType.UNKNOWN.value self.artifacts_type = self.artifacts.get("type", None) or ArtifactType.UNKNOWN.value
self.logs[self.outputs[0]["name"]] = build_log_from_raw_and_type(
self.artifacts_raw, self.artifacts_type
)
else: else:
self._built_object = result self._built_object = result

View file

@ -10,7 +10,7 @@ from langflow.graph.utils import UnbuiltObject, serialize_field
from langflow.graph.vertex.base import Vertex from langflow.graph.vertex.base import Vertex
from langflow.schema import Record from langflow.schema import Record
from langflow.schema.artifact import ArtifactType from langflow.schema.artifact import ArtifactType
from langflow.schema.schema import INPUT_FIELD_NAME, Log, build_logs_from_artifacts from langflow.schema.schema import INPUT_FIELD_NAME, build_logs_from_artifacts
from langflow.services.monitor.utils import log_transaction, log_vertex_build from langflow.services.monitor.utils import log_transaction, log_vertex_build
from langflow.utils.schemas import ChatOutputResponse, RecordOutputResponse from langflow.utils.schemas import ChatOutputResponse, RecordOutputResponse
from langflow.utils.util import unescape_string from langflow.utils.util import unescape_string
@ -22,7 +22,6 @@ if TYPE_CHECKING:
class CustomComponentVertex(Vertex): class CustomComponentVertex(Vertex):
def __init__(self, data: Dict, graph): def __init__(self, data: Dict, graph):
super().__init__(data, graph=graph, base_type="custom_components") super().__init__(data, graph=graph, base_type="custom_components")
self.logs: Dict[str, Log] = {}
def _built_object_repr(self): def _built_object_repr(self):
if self.artifacts and "repr" in self.artifacts: if self.artifacts and "repr" in self.artifacts: