From dd7e5a7ab5f09ba9c646d848f7a0e4248bdbf8db Mon Sep 17 00:00:00 2001 From: Gabriel Luiz Freitas Almeida Date: Tue, 16 Apr 2024 13:22:31 -0300 Subject: [PATCH] Add from_lc_message method to Record class in schema.py --- src/backend/base/langflow/schema/schema.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/backend/base/langflow/schema/schema.py b/src/backend/base/langflow/schema/schema.py index a48e72339..dffa04dae 100644 --- a/src/backend/base/langflow/schema/schema.py +++ b/src/backend/base/langflow/schema/schema.py @@ -2,6 +2,7 @@ import copy from typing import Literal, Optional from langchain_core.documents import Document +from langchain_core.messages import BaseMessage from pydantic import BaseModel, model_validator @@ -54,6 +55,21 @@ class Record(BaseModel): data["text"] = document.page_content return cls(data=data, text_key="text") + @classmethod + def from_lc_message(cls, message: BaseMessage) -> "Record": + """ + Converts a BaseMessage to a Record. + + Args: + message (BaseMessage): The BaseMessage to convert. + + Returns: + Record: The converted Record. + """ + data = {"text": message.content} + data["metadata"] = message.to_json() + return cls(data=data, text_key="text") + def __add__(self, other: "Record") -> "Record": """ Combines the data of two records by attempting to add values for overlapping keys