Skip to main contentIn LLM Controls , objects are Pydantic models that serve as structured, functional representations of data.
Data object
The Data object is a Pydantic model that serves as a container for storing and manipulating data. It carries data—a dictionary that can be accessed as attributes—and uses text_key to specify which key in the dictionary should be considered the primary text content.
- Main Attributes:
text_key: Specifies the key to retrieve the primary text data.
data: A dictionary to store additional data.
default_value: default value when the text_key is not present in the data dictionary.
Create a Data Object
Create a Data object by directly assigning key-value pairs to it.
The text_key specifies which key in the data dictionary should be considered the primary text content. The default_value provides a fallback if the text_key is not present.
The Data object is also convenient for visualization of outputs, since the output preview has visual elements to inspect data as a table and its cells as pop-ups for basic types. The idea is to create a unified way to work and visualize complex information in LLM Controls.
To receive Data objects in a component input, use the DataInput input type.
Message object
The Message object extends the functionality of Data and includes additional attributes and methods for chat interactions.
- Core message data:
text: The main text content of the message
sender: Identifier for the sender (“User” or “AI”)
sender_name: Name of the sender
session_id: Identifier for the chat session (string or UUID)
timestamp: Timestamp when the message was created (UTC)
flow_id: Identifier for the flow (string or UUID)
id: Unique identifier for the message
- Content and files:
files: List of files or images associated with the message
content_blocks: List of structured content block objects
properties: Additional properties, including visual styling and source information
- Message state:
error: Boolean indicating if there was an error
edit: Boolean indicating if the message was edited
category: Message category (“message”, “error”, “warning”, “info”)
The Message object can be used to send, store, and manipulate chat messages within LLM Controls.
Create a Message object
You can create a Message object by directly assigning key-value pairs to it.
To receive Message objects in a component input, you can use the MessageInput input type or MessageTextInput when the goal is to extract just the text field of the Message object.
ContentBlock object
The ContentBlock object is a list of multiple ContentTypes. It allows you to include multiple types of content within a single Message, including images, videos, and text.
Content types are Pydantic base classes constructed from the types in content_types.py.
Each content type has specific fields related to its data type. For example:
TextContent has a text field for storing strings of text
MediaContent has a urls field for storing media file URLs
CodeContent has code and language fields for code snippets
JSONContent has a data field for storing arbitrary JSON data
ToolContent has a tool_input field for storing input parameters for the tool
Create a ContentBlock object
Create a ContentBlock object with a list of different content types.
Add ContentBlocks objects to a message
In this example, a text and a media ContentBlock are added to a message.
DataFrame object
The DataFrame class is a custom extension of the Pandas DataFrame class, specifically designed to work seamlessly with LLM Controls’ Data objects. The class includes methods for converting between DataFrame and lists of Data objects.
A DataFrame object accepts various input formats, including lists of Data objects, dictionaries, and existing DataFrames.
Create a DataFrame object
You can create a DataFrame object using different data formats
To use DataFrame objects in a component input, use the DataFrameInput input type.