fix: rollback truncate values on transaction/vertex tables (#4078)

📝 (model.py): Add field serializers to truncate long strings in outputs, data, and artifacts fields for better data handling and readability.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This commit is contained in:
Cristhian Zanforlin Lousa 2024-10-09 13:27:23 -03:00 committed by GitHub
commit 90b2c9d577
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 17 additions and 1 deletions

View file

@ -2,12 +2,14 @@ from datetime import datetime, timezone
from typing import TYPE_CHECKING
from uuid import UUID, uuid4
from pydantic import field_validator
from pydantic import field_serializer, field_validator
from sqlmodel import JSON, Column, Field, Relationship, SQLModel
if TYPE_CHECKING:
from langflow.services.database.models.flow.model import Flow
from langflow.utils.util_strings import truncate_long_strings
class TransactionBase(SQLModel):
timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
@ -32,6 +34,10 @@ class TransactionBase(SQLModel):
value = UUID(value)
return value
@field_serializer("outputs")
def serialize_outputs(self, data) -> dict:
return truncate_long_strings(data)
class TransactionTable(TransactionBase, table=True): # type: ignore[call-arg]
__tablename__ = "transaction"

View file

@ -9,6 +9,8 @@ from sqlmodel import JSON, Column, Field, Relationship, SQLModel
if TYPE_CHECKING:
from langflow.services.database.models.flow.model import Flow
from langflow.utils.util_strings import truncate_long_strings
class VertexBuildBase(SQLModel):
timestamp: datetime = Field(default_factory=lambda: datetime.now(timezone.utc))
@ -39,6 +41,14 @@ class VertexBuildBase(SQLModel):
value = value.replace(tzinfo=timezone.utc)
return value
@field_serializer("data")
def serialize_data(self, data: dict) -> dict:
return truncate_long_strings(data)
@field_serializer("artifacts")
def serialize_artifacts(self, data) -> dict:
return truncate_long_strings(data)
class VertexBuildTable(VertexBuildBase, table=True): # type: ignore[call-arg]
__tablename__ = "vertex_build"