Spaces:
Running
Running
from typing import Any | |
from langflow.schema.data import Data | |
def convert_to_langchain_type(value): | |
from langflow.schema.message import Message | |
if isinstance(value, dict): | |
value = {key: convert_to_langchain_type(val) for key, val in value.items()} | |
elif isinstance(value, list): | |
value = [convert_to_langchain_type(v) for v in value] | |
elif isinstance(value, Message): | |
if "prompt" in value: | |
value = value.load_lc_prompt() | |
elif value.sender: | |
value = value.to_lc_message() | |
else: | |
value = value.to_lc_document() | |
elif isinstance(value, Data): | |
value = value.to_lc_document() if "text" in value.data else value.data | |
return value | |
def convert_to_langchain_types(io_dict: dict[str, Any]): | |
converted = {} | |
for key, value in io_dict.items(): | |
converted[key] = convert_to_langchain_type(value) | |
return converted | |